图像中的水印通常用于声明内容的所有权。另一方面,图像被加水印以避免未经授权的使用或伪造。在各种情况下,您可能需要在 Web 或桌面应用程序中自动添加水印功能。对于此类场景,本文介绍了如何使用 C# 以编程方式向图像添加水印。当您需要一次性为一批图像添加水印时,这也很有用。那么让我们开始吧。
C# API 为图像添加水印
为了给图像添加水印,我们将使用 Aspose.Imaging for .NET。它是一个强大的图像处理 API,支持多种图像格式。此外,API 使您可以更轻松地操作图像。您可以 下载 API 的二进制文件或使用 NuGet 安装它。
PM> Install-Package Aspose.Imaging
在 C# 中为图像添加水印
以下是使用 C# 向图像添加水印的步骤。
- 使用 Image 类加载图像。
- 创建 Graphics 类的实例并使用 Image 对象对其进行初始化。
- 使用 Font 类设置字体系列、大小和字体。
- 创建 SolidBrush 类的实例并设置其属性,例如颜色等。
- 实例化 StringFormat 类以设置文本对齐方式。
- 使用 Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 方法为图像添加水印。
- 使用 Image.Save(String) 方法保存图像。
以下代码示例展示了如何在 C# 中为图像添加水印。
// 加载现有的 PNG 图像
using (Image image = Image.Load("image.png"))
{
// 使用水印文本声明一个字符串对象
string theString = "This is watermark";
// 创建并初始化 Graphics 类的实例并初始化 SizeF 的对象以存储图像大小
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// 创建一个 Font 实例,使用 Font Face、Size 和 Style 对其进行初始化
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// 创建 SolidBrush 实例并设置其各种属性
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// 初始化 StringFormat 类的对象并设置其各种属性
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 将图像保存输出上的字符串绘制到磁盘
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.jpg");
}
在 C# 中为图像添加对角线水印
在各种情况下,水印对角线应用于图像。为此,Aspose.Imaging for .NET 允许您以特定角度转换水印文本。以下是向图像添加对角线水印的步骤。
- 使用 Image 类加载图像。
- 创建 Graphics 类的实例并使用 Image 对象对其进行初始化。
- 使用 Font 类设置字体系列、大小和字体。
- 创建 SolidBrush 类的实例并设置其属性,例如颜色等。
- 实例化 StringFormat 类以设置文本对齐方式。
- 创建 Matrix 类的实例并设置变换角度。
- 将 Matrix 对象分配给 Graphics.Transform 属性。
- 使用 Graphics.DrawString(String, Font, SolidBrush, 0, 0, StringFormat) 方法添加水印。
- 使用 Image.Save(String) 方法保存图像。
以下代码示例展示了如何使用 C# 向图像添加对角线水印。
// 加载现有的 PNG 图像
using (Image image = Image.Load("Image.png"))
{
// 使用水印文本声明一个字符串对象
string theString = "45 Degree Rotated Text";
// 创建并初始化 Graphics 类的实例并初始化 SizeF 的对象以存储图像大小
Graphics graphics = new Graphics(image);
SizeF sz = graphics.Image.Size;
// 创建一个 Font 实例,使用 Font Face、Size 和 Style 对其进行初始化
Font font = new Font("Times New Roman", 20, FontStyle.Bold);
// 创建 SolidBrush 实例并设置其各种属性
SolidBrush brush = new SolidBrush();
brush.Color = Color.Red;
brush.Opacity = 0;
// 初始化 StringFormat 类的对象并设置其各种属性
StringFormat format = new StringFormat();
format.Alignment = StringAlignment.Center;
format.FormatFlags = StringFormatFlags.MeasureTrailingSpaces;
// 创建 Matrix 类的对象进行转换
Matrix matrix = new Matrix();
// 先平移后旋转
matrix.Translate(sz.Width / 2, sz.Height / 2);
matrix.Rotate(-45.0f);
// 通过矩阵设置变换
graphics.Transform = matrix;
// 将图像保存输出上的字符串绘制到磁盘
graphics.DrawString(theString, font, brush, 0, 0, format);
image.Save("watermarked.png");
}
获取免费 API 许可证
如果您想在没有评估限制的情况下试用 API,您可以获得免费的临时许可证。
结论
在本文中,您学习了如何使用 C# 为图像添加水印。此外,您还了解了如何将水印文本转换为特定角度。您可以使用 documentation 探索有关 C# 图像处理 API 的更多信息。如果您有任何问题或疑问,请通过我们的 论坛 联系我们。