给图片加自定义字体水印

本文介绍如何使用DrawString方法在图片上添加水印,包括使用FileStream读取图片、Image从Stream创建、获取自定义字体、以及如何在图片上添加文字水印的详细步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

处理前:
处理后:

代码:
加水印可以用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);
                }
            }
        }

转载于:https://www.cnblogs.com/zhangjiang/archive/2013/01/21/2869951.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值