/// <summary> /// 设置水印 /// </summary> /// <param name="original"></param> /// <param name="watermark"></param> /// <returns></returns> public Image MakeWatermark(Image original, Watermark watermark) { //Bitmap b = new Bitmap(original.Width, original.Height, PixelFormat.Format24bppRgb); //b.SetResolution(original.HorizontalResolution, original.VerticalResolution); // 不加水印 if (watermark.Ratio < 0) { return(original); } //当ratio大于1时,加的部分水印会在图片外面(不显示) Size markSize = new Size((int)Math.Round(watermark.Ratio * original.Width), (int)Math.Round(watermark.Ratio * original.Height)); watermark.SetSize(markSize); switch (watermark.WatermarkType) { case WatermarkType.Text: //添加文字水印 var textWm = watermark as TextWatermark; if (!string.IsNullOrEmpty(textWm.Text)) { textWm.HorizontalResolution = original.HorizontalResolution; // b.HorizontalResolution; textWm.VerticalResolution = original.VerticalResolution; // b.VerticalResolution; var textMark = this.CreateTextWatermark(textWm); ImageWatermark imageWm = new ImageWatermark() { Alignment = textWm.Alignment, Alpha = textWm.Alpha, Image = textMark, MarginPercentage = textWm.MarginPercentage, Ratio = textWm.Ratio, }; imageWm.SetSize(textWm.Size); return(MakeImageWatermark(original, imageWm)); } break; case WatermarkType.Image: return(MakeImageWatermark(original, watermark as ImageWatermark)); break; default: break; } return(original); }