asp.net如何在图片上加水印文字
程序员文章站
2022-05-07 21:14:09
第一步,添加一个一般处理程序(Handler),本例是ImageHandler
using System;
using System.Data;
using System.Conf...
第一步,添加一个一般处理程序(Handler),本例是ImageHandler
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.Net.Mime; using System.IO; using System.Drawing; using System.Drawing.Imaging; using System.Drawing.Drawing2D; /// /// Summary description for ImageHandler /// public class ImageHandler : IHttpHandler { public ImageHandler() { } public string GetContentType(String path) { switch (Path.GetExtension(path)) { case ".bmp": return "Image/bmp"; case ".gif": return "Image/gif"; case ".jpg": return "Image/jpeg"; case ".png": return "Image/png"; default: break; } return String.Empty; } public ImageFormat GetImageFormat(String path) { switch (Path.GetExtension(path).ToLower()) { case ".bmp": return ImageFormat.Bmp; case ".gif": return ImageFormat.Gif; case ".jpg": return ImageFormat.Jpeg; case ".png": return ImageFormat.Png; default: return null; } } protected byte[] WatermarkImage(HttpContext context) { byte[] imageBytes = null; if (File.Exists(context.Request.PhysicalPath)) { // Normally you'd put this in a config file somewhere. string watermark = "世复检测"; Image image = Image.FromFile(context.Request.PhysicalPath); Graphics graphic; if (image.PixelFormat != PixelFormat.Indexed && image.PixelFormat != PixelFormat.Format8bppIndexed && image.PixelFormat != PixelFormat.Format4bppIndexed && image.PixelFormat != PixelFormat.Format1bppIndexed) { // Graphic is not a Indexed (GIF) image graphic = Graphics.FromImage(image); } else { /* Cannot create a graphics object from an indexed (GIF) image. * So we're going to copy the image into a new bitmap so * we can work with it. */ Bitmap indexedImage = new Bitmap(image); graphic = Graphics.FromImage(indexedImage); // Draw the contents of the original bitmap onto the new bitmap. graphic.DrawImage(image, 0, 0, image.Width, image.Height); image = indexedImage; } graphic.SmoothingMode = SmoothingMode.AntiAlias & SmoothingMode.HighQuality; Font myFont = new Font("Arial", 15); SolidBrush brush = new SolidBrush(Color.FromArgb(255, Color.Red)); /* This gets the size of the graphic so we can determine * the loop counts and placement of the watermarked text. */ SizeF textSize = graphic.MeasureString(watermark, myFont); //// Write the text across the image. //for (int y = 0; y
第二步,在web.config里添加如下代码:
-->
第三步,调试在每一个图片的右下角显示红色的“世复检测”四个字,具体显示请查看如下连接:
点击打开链接
上一篇: WPF(附加属性 Slider)