当前位置:编程学习 > C#/ASP.NET >>

C#图片水印代码整理

这一段公司有个项目,客户要求上传的图片要带上自定义的水印。以前也经常和朋友讨论C#图片水印方面的问题,但是从来没有实际操作过。所以,借这次项目的机会也研究了一下C#图片水印的功能!本人参考的是discuz论坛中的代码。这种方法是直接把要上传的图片先转化成System.Drawing.Image,而不用保存到服务器端的磁盘上,然后加上水印重新绘制,再保存到服务器端的磁盘上,下面就拿出来晒晒:

 

1 /// <summary>
2 /// 加图片水印
3 /// </summary>
4 /// <param name="img">要加水印的原图(System.Drawing)</param>
5 /// <param name="filename">文件名</param>
6 /// <param name="watermarkFilename">水印文件名</param>
7 /// <param name="watermarkStatus">图片水印位置1=左上 2=中上 3=右上 4=左中 5=中中 6=右中 7=左下 8=右中 9=右下</param>
8 /// <param name="quality">加水印后的质量0~100,数字越大质量越高</param>
9 /// <param name="watermarkTransparency">水印图片的透明度1~10,数字越小越透明,10为不透明</param>
10   public static void ImageWaterMarkPic(Image img, string filename, string watermarkFilename, int watermarkStatus, int quality, int watermarkTransparency)
11 {
12 Graphics g = Graphics.FromImage(img);
13 //设置高质量插值法
14 //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High;
15 //设置高质量,低速度呈现平滑程度
16 //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
17 Image watermark = new Bitmap(watermarkFilename);
18
19 if (watermark.Height >= img.Height || watermark.Width >= img.Width)
20 return;
21
22 ImageAttributes imageAttributes = new ImageAttributes();
23 ColorMap colorMap = new ColorMap();
24
25 colorMap.OldColor = Color.FromArgb(255, 0, 255, 0);
26 co
补充:软件开发 , C# ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,