ASP.NET中实现在图片上打水印
2009-12-09 17:16
585 查看
/** * 来自网络,稍微进行了一下改动 * 修改时间:2009-12-9 17:30 * 交流qq:914229451 */ //命名空间 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; using System.Drawing; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strfilename = Server.MapPath("testimage/5.bmp");//未加水印前的图片 string outfilename = Server.MapPath("testimage/7.jpg");//加水印后生成的的图片文件,文件名可自行设置,扩展名可以为.bmp.jpg等任一种图片格式,均可 string copyfilename = Server.MapPath("testimage/done.gif");//水印图片 string strplace = "2";//水印图片在要加水印图片的位置 CreateCopyRightImage(strfilename, outfilename, copyfilename, strplace, false); } /// <summary> /// 在图片上加入图片版权信息 /// </summary> /// <param name="strFileName">输入图片(绝对路径)</param> /// <param name="outfilename">输出图片(绝对路径)</param> /// <param name="strCopyRightFile">水印图片(绝对路径)</param> /// <param name="strPlace">水印位置</param> /// <param name="bFileName">是否删除输入图片</param> public static void CreateCopyRightImage(string strFileName,string outfilename,string strCopyRightFile,string strPlace,bool bFileName) { System.Drawing.Image image = System.Drawing.Image.FromFile(strFileName); System.Drawing.Image copyimage = System.Drawing.Image.FromFile(strCopyRightFile); System.Drawing.Bitmap output = new Bitmap(image); System.Drawing.Graphics gimage = System.Drawing.Graphics.FromImage(output); int IntX = 0; int IntY = 0; if (strPlace == "1") // 在左上 { IntX = 0; IntY = 0; } else if (strPlace == "2") // 在正上 { IntX = (image.Width-copyimage.Width)/2; IntY = 0; } else if (strPlace == "3") // 在右上 { IntX = image.Width-copyimage.Width; IntY = 0; } else if (strPlace == "4") // 在正左 { IntX = 0; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "5") // 在中间 { IntX = (image.Width-copyimage.Width)/2; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "6") // 在正右 { IntX = image.Width-copyimage.Width; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "7") // 在左下 { IntX = 0; IntY = image.Height-copyimage.Height; } else if (strPlace == "8") // 在正下 { IntX = (image.Width-copyimage.Width)/2; IntY = image.Height-copyimage.Height; } else if (strPlace == "9") // 在右下 { IntX = image.Width-copyimage.Width; IntY = image.Height-copyimage.Height; } else { IntX = image.Width-copyimage.Width-10; IntY = image.Height-copyimage.Height-10; } gimage.DrawImage(copyimage, IntX, IntY, copyimage.Width, copyimage.Height); string strExtend = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower(); switch (strExtend) { case "bmp": output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Bmp); break; case "": break; case "jpg" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Jpeg); break; case "gif" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Gif); break; case "icon" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Icon); break; case "png" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Png); break; case "tif" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Tiff); break; default : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Jpeg); break; } gimage.Dispose(); output.Dispose(); image.Dispose(); copyimage.Dispose(); if (bFileName)//是否删除未加水印的图片 File.Delete(strFileName); } }
/** * 来自网络,稍微进行了一下改动 * 修改时间:2009-12-9 17:30 * 交流qq:914229451 */ //命名空间 using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; using System.Drawing; public partial class _Default : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { string strfilename = Server.MapPath("testimage/5.bmp");//未加水印前的图片 string outfilename = Server.MapPath("testimage/7.jpg");//加水印后生成的的图片文件,文件名可自行设置,扩展名可以为.bmp.jpg等任一种图片格式,均可 string copyfilename = Server.MapPath("testimage/done.gif");//水印图片 string strplace = "2";//水印图片在要加水印图片的位置 CreateCopyRightImage(strfilename, outfilename, copyfilename, strplace, false); } /// <summary> /// 在图片上加入图片版权信息 /// </summary> /// <param name="strFileName">输入图片(绝对路径)</param> /// <param name="outfilename">输出图片(绝对路径)</param> /// <param name="strCopyRightFile">水印图片(绝对路径)</param> /// <param name="strPlace">水印位置</param> /// <param name="bFileName">是否删除输入图片</param> public static void CreateCopyRightImage(string strFileName,string outfilename,string strCopyRightFile,string strPlace,bool bFileName) { System.Drawing.Image image = System.Drawing.Image.FromFile(strFileName); System.Drawing.Image copyimage = System.Drawing.Image.FromFile(strCopyRightFile); System.Drawing.Bitmap output = new Bitmap(image); System.Drawing.Graphics gimage = System.Drawing.Graphics.FromImage(output); int IntX = 0; int IntY = 0; if (strPlace == "1") // 在左上 { IntX = 0; IntY = 0; } else if (strPlace == "2") // 在正上 { IntX = (image.Width-copyimage.Width)/2; IntY = 0; } else if (strPlace == "3") // 在右上 { IntX = image.Width-copyimage.Width; IntY = 0; } else if (strPlace == "4") // 在正左 { IntX = 0; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "5") // 在中间 { IntX = (image.Width-copyimage.Width)/2; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "6") // 在正右 { IntX = image.Width-copyimage.Width; IntY = (image.Height-copyimage.Height)/2; } else if (strPlace == "7") // 在左下 { IntX = 0; IntY = image.Height-copyimage.Height; } else if (strPlace == "8") // 在正下 { IntX = (image.Width-copyimage.Width)/2; IntY = image.Height-copyimage.Height; } else if (strPlace == "9") // 在右下 { IntX = image.Width-copyimage.Width; IntY = image.Height-copyimage.Height; } else { IntX = image.Width-copyimage.Width-10; IntY = image.Height-copyimage.Height-10; } gimage.DrawImage(copyimage, IntX, IntY, copyimage.Width, copyimage.Height); string strExtend = strFileName.Substring(strFileName.LastIndexOf('.') + 1).ToLower(); switch (strExtend) { case "bmp": output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Bmp); break; case "": break; case "jpg" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Jpeg); break; case "gif" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Gif); break; case "icon" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Icon); break; case "png" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Png); break; case "tif" : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Tiff); break; default : output.Save(outfilename, System.Drawing.Imaging.ImageFormat.Jpeg); break; } gimage.Dispose(); output.Dispose(); image.Dispose(); copyimage.Dispose(); if (bFileName)//是否删除未加水印的图片 File.Delete(strFileName); } }
相关文章推荐
- ASP.NET 图片加水印防盗链实现代码
- Asp.net简单实现给图片增加文字水印
- ASP.NET百度Ueditor编辑器实现上传图片添加水印效果
- ASP.NET图片加水印的实现代码(C#)
- ASP.NET 图片加水印防盗链实现代码
- asp .net实现给图片添加图片水印方法示例
- asp.net实现图片添加文字及图片水印
- Asp.net全站图片加水印:实现IHttpHandler接口
- Asp.Net中动态实现图片水印
- 在MVC3或asp.net中修改KindEditor实现上传图片时添加水印
- asp.net如何在图片上加水印文字具体实现
- Asp.Net图片数字水印的实现
- asp.net继承IHttpHandler接口实现给网站图片添加水印功能实例
- Asp.net简单实现给图片增加文字水印
- asp.net如何在图片上加水印文字具体实现
- ASP.NET 图片加水印防盗链实现代码
- asp.net如何在图片上加水印文字具体实现
- Asp.net 实现图片缩放 无水印(方法一)
- Asp.net开发之webform图片水印和图片验证码的实现方法