using System; using System.Drawing; namespace ImageClient { public class WaterMarkHelper { /// /// 添加水印 /// /// 原图片地址 /// 水印图片地址 /// resMsg[0] 成功,失败 public static string[] AddWaterMark(string imgPath, string sImgPath, string text, string color, int fontSize, int left, int top) { string[] resMsg = new[] { "成功", sImgPath }; using (Image image = Image.FromFile(imgPath)) { try { Bitmap bitmap = new Bitmap(image); int width = bitmap.Width, height = bitmap.Height; Graphics g = Graphics.FromImage(bitmap); g.DrawImage(bitmap, 0, 0); g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; g.DrawImage(image, new Rectangle(0, 0, width, height), 0, 0, width, height, GraphicsUnit.Pixel); Font crFont = new Font("微软雅黑", fontSize, FontStyle.Bold); SizeF crSize = new SizeF(); crSize = g.MeasureString(text, crFont); //背景位置(去掉了. 如果想用可以自己调一调 位置.) //graphics.FillRectangle(new SolidBrush(Color.FromArgb(200, 255, 255, 255)), (width - crSize.Width) / 2, (height - crSize.Height) / 2, crSize.Width, crSize.Height); //SolidBrush semiTransBrush = new SolidBrush(Color.FromArgb(120, 0, 0, 0)); SolidBrush semiTransBrush = new SolidBrush(ColorTranslator.FromHtml(color)); //将原点移动 到图片中点 g.TranslateTransform(left, top); //以原点为中心 转 -45度 // g.RotateTransform(-45); g.DrawString(text, crFont, semiTransBrush, new PointF(0, 0)); //保存文件 bitmap.Save(sImgPath, System.Drawing.Imaging.ImageFormat.Jpeg); } catch (Exception e) { resMsg[0] = "失败"; resMsg[1] = e.Message; } } return resMsg; } } }