ASP.NET 画图与图像处理-加水印(图片叠加)

作者:vkvi 来源:ITPOW(原创) 日期:2007-8-30

加水印和 ASP.NET 画图-生成高质量缩略图一文的方法差不多。

System.Drawing.Image watermark = System.Drawing.Image.FromFile(Server.MapPath("watermark.gif"));
Bitmap srcImg = new Bitmap(Server.MapPath("example.jpg"));
Graphics graphics = Graphics.FromImage(srcImg);

graphics.DrawImage(watermark,
    srcImg.Width - watermark.Width,
    srcImg.Height - watermark.Height,
    watermark.Width,
    watermark.Height);
srcImg.Save(Server.MapPath("example_marked.jpg"));

graphics.Dispose();
srcImg.Dispose();
watermark.Dispose();

Image、Bitmap、Graphics 的名称空间是

System.Drawing

但是这里我们却不能在导入名称空间后使用 Image 时省略 System.Drawing,因为这会和 System.Web.UI.WebControls 的 Image 产生混淆。

这里,DrawImage 的第二个参数表示在横坐标上从哪里开始画,第三个参数表示在纵坐标上从哪里开始画(纵坐标是从上到下),第四个参数是 srcImg 的缩放宽度,第五个参数是 srcImg 的缩放高度。我在省略第四、五个参数后,发现水印大小不符合的情况,所以不建议省略这两个参数。

相关文章