C# 图片处理 - 图片水印

摘要


在图像处理中,图片水印是一种常见的技术,它可以在图像上添加文本或图形,用于标识、保护或美化图像。在本文中,我们将介绍如何使用 C# 来实现图片水印,包括常用的属性和方法,以及一些示例代码。

正文


添加文本水印

添加文本水印是一种简单且常用的方式,下面是一些常用的属性和方法:

属性

  • Text:水印文本内容。

  • Font:水印文本的字体。

  • Color:水印文本的颜色。

  • Opacity:水印文本的透明度。

方法

  • AddTextWatermark(string imagePath, string watermarkText, Font font, Color color, float opacity):将文本水印添加到指定的图像文件中。

 下面是一个示例代码,演示如何添加文本水印:

public string AddTextWatermark(string imagePath, string watermarkText, Font font, Color color, float opacity)
{    
    string decImage = imagePath + "_watermarked.jpg";    
    using (Image image = Image.FromFile(imagePath))    
    using (Graphics graphics = Graphics.FromImage(image))    
    {        
       // 创建一个画刷,用于设置文本颜色和透明度        
       SolidBrush brush = new SolidBrush(Color.FromArgb((int)(opacity * 255), color));
       // 创建一个 StringFormat 对象,用于设置文本对齐方式        
       StringFormat format = new StringFormat();        
       format.Alignment = StringAlignment.Center;        
       format.LineAlignment = StringAlignment.Center;
        // 绘制文本水印        
       graphics.DrawString(watermarkText, font, brush, new Point(image.Width / 2, image.Height / 2), format);
        // 保存图像        
       image.Save(decImage, ImageFormat.Png);    
      }    
     return decImage;
}



// 使用示例
WatermarkProcessor watermarkProcessor = new WatermarkProcessor();
string img= watermarkProcessor.AddTextWatermark("D:\\BaiduSyncdisk\\11Test\\promo.png"    , "hello world", new Font("Arial", 24), Color.Red, 0.5f);
pictureBox1.Image=Image.FromFile(img);

在上面的示例中,我们使用 Graphics.DrawString 方法将文本水印绘制在图像中心位置。可以根据需要调整文本的字体、颜色和透明度等参数。

添加图形水印

除了文本水印,我们还可以添加图形水印,例如公司标志或图标。下面是一些常用的属性和方法:

属性

  • Image:水印图形。

  • Opacity:水印图形的透明度。

方法

  • AddImageWatermark(string imagePath, Image watermarkImage, float opacity):将图形水印添加到指定的图像文件中。

public string AddImageWatermark(string imagePath, Image watermarkImage, float opacity)
{    
    string decImage = imagePath + "_watermarked.jpg";    
    using (Image image = Image.FromFile(imagePath))    
    using (Graphics graphics = Graphics.FromImage(image))    
    {        
       // 创建一个 ImageAttributes 对象,用于设置图像透明度        
       ImageAttributes attributes = new ImageAttributes();        
       ColorMatrix matrix = new ColorMatrix();        
       matrix.Matrix33 = opacity;        
       attributes.SetColorMatrix(matrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap);
        // 绘制图形水印        
       graphics.DrawImage(watermarkImage, new Rectangle(0, 0, watermarkImage.Width, watermarkImage.Height), 0, 0, watermarkImage.Width, watermarkImage.Height, GraphicsUnit.Pixel, attributes);
        // 保存图像        
       image.Save(decImage, ImageFormat.Png);    
    }    
    return decImage;
}

下面是一个示例代码,演示如何添加图形水印:

总结

在本文中,我们介绍了如何使用 C# 来实现图片水印。通过添加文本水印或图形水印,我们可以标识、保护或美化图像。我们通过示例代码演示了如何使用常用的属性和方法来实现图片水印功能。

  转载于公众号技术老小子!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

创可贴治愈心灵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值