处理前:
处理后:
代码:
加水印可以用DrawString 方法
FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read); Image image = Image.FromStream(fs); fs.Close(); Bitmap b = new Bitmap(image); Graphics graphics = Graphics.FromImage(b); Font font = GetFont(72); Color cl = Color.FromArgb(0, 64, 128); SolidBrush myBrush = new SolidBrush(cl); //加名字 graphics.DrawString(name, font, myBrush, 450, 225);
GetFont方法载入自定义字体文件
private Font GetFont(int size) { System.Drawing.Font fn = this.Font; FontFamily ff = pfc.Families[0]; if (ff.IsStyleAvailable(FontStyle.Regular)) { fn = new Font(ff, size, FontStyle.Regular); } if (ff.IsStyleAvailable(FontStyle.Bold)) { fn = new Font(ff, size, FontStyle.Bold); } if (ff.IsStyleAvailable(FontStyle.Italic)) { fn = new Font(ff, size, FontStyle.Italic); } return fn; }
如果字体文件(TTF格式)没安装,那么需要在程序启动时候载入
private void LoadFont() { Stream fontStream = this.GetType().Assembly.GetManifestResourceStream("WindowsFormsApplication1.SaginawBold.ttf"); byte[] fontdata = new byte[fontStream.Length]; fontStream.Read(fontdata, 0, (int)fontStream.Length); fontStream.Close(); unsafe { fixed (byte* pFontData = fontdata) { pfc.AddMemoryFont((System.IntPtr)pFontData, fontdata.Length); } } }