【IT168技术文档】
asp.net生成缩略图,打水印得类,代码如下:
using System; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; namespace BLL { public class ImageUtil { public static void addWatermarkImage(Graphics picture, string WaterMarkPicPath, string _watermarkPosition, int _width, int _height) { Image image = new Bitmap(WaterMarkPicPath); int x = 0; int y = 0; int width = image.Width; int height = image.Height; string str = _watermarkPosition; if (str != null) { if (!(str == "WM_TOP_LEFT")) { if (str == "WM_TOP_RIGHT") { x = (_width - width) - 10; y = 10; } else if (str == "WM_BOTTOM_RIGHT") { x = (_width - width) - 10; y = (_height - height) - 10; } else if (str == "WM_BOTTOM_LEFT") { x = 10; y = (_height - height) - 10; } else if (str == "WM_BOTTOM_MIDDLE") { x = (_width / 2) - (width / 2); y = (_height - height) - 10; } else if (str == "WM_TOP_MIDDLE") { x = (_width / 2) - (width / 2); y = 10; } } else { x = 10; y = 10; } } picture.DrawImage(image, x, y, width, height); image.Dispose(); } public static void MakeThumbnail(string originalImagePath, string thumbnailPath, int width, int height, string mode) { string str; Image image = Image.FromFile(originalImagePath); int num = width; int num2 = height; int x = 0; int y = 0; int num5 = image.Width; int num6 = image.Height; if (((str = mode) != null) && (str != "HW")) { if (!(str == "W")) { if (str == "H") { num = (image.Width * height) / image.Height; } else if (str == "Cut") { if ((((double)image.Width) / ((double)image.Height)) > (((double)num) / ((double)num2))) { num6 = image.Height; num5 = (image.Height * num) / num2; y = 0; x = (image.Width - num5) / 2; } else { num5 = image.Width; num6 = (image.Width * height) / num; x = 0; y = (image.Height - num6) / 2; } } } else { num2 = (image.Height * width) / image.Width; } } Image image2 = new Bitmap(num, num2); Graphics graphics = Graphics.FromImage(image2); graphics.InterpolationMode = InterpolationMode.High; graphics.SmoothingMode = SmoothingMode.HighQuality; graphics.Clear(Color.Transparent); graphics.DrawImage(image, new Rectangle(0, 0, num, num2), new Rectangle(x, y, num5, num6), GraphicsUnit.Pixel); try { image2.Save(thumbnailPath, ImageFormat.Jpeg); } catch (Exception exception) { throw exception; } finally { image.Dispose(); image2.Dispose(); graphics.Dispose(); } } } }