摘要
在图像处理中,图片水印是一种常见的技术,它可以在图像上添加文本或图形,用于标识、保护或美化图像。在本文中,我们将介绍如何使用 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# 来实现图片水印。通过添加文本水印或图形水印,我们可以标识、保护或美化图像。我们通过示例代码演示了如何使用常用的属性和方法来实现图片水印功能。
转载于公众号技术老小子!!!