我们看到或创建了很多图像来获取视觉信息。有时您需要以其他人无法修改该文本的方式在图像上添加或绘制文本。图像水印是最常见的例子之一。同样,标记或查看图像也可能需要绘制文本。让我们探索在图像上绘制文本的进一步用途:
在图像上添加、插入或绘制格式化文本 – C# API 安装
Aspose.Drawing for .NET API 是一个与 System.Drawing 包兼容的 2D 图形库。它支持在图像上渲染矩形、曲线、线条、文本和其他图形。它不依赖于任何 3rd 方库,因此可以在任何环境中使用。例如,它还可用于在不支持 System.Drawing 库的 Linux 或 Azure Functions V2 中渲染图形。您可以通过从 Downloads 部分下载 Aspose.Drawing for .NET API 或通过以下安装命令安装 Aspose.Drawing:
PM> Install-Package Aspose.Drawing
使用 C# 以编程方式在现有图像上绘制文本作为水印
图片上的文字水印通常用于显示图片的所有权、从属关系或用途。您可以通过以下步骤在现有图像上添加或绘制文本作为水印:
- 加载现有的输入图像
- 初始化 Graphics 类对象
- 设置文本格式和文本
- 绘制文本
- 保存输出图像
以下代码显示了如何使用 C# 以编程方式在现有图像上绘制文本作为水印:
// 加载现有的输入图像
Bitmap bitmap = new Bitmap(dataDir + @"Test.png");
// 初始化图形类对象
Graphics graphics = Graphics.FromImage(bitmap);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
Brush brush = new SolidBrush(Color.FromKnownColor(KnownColor.Black));
// 在指定颜色时声明画笔
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 1);
// 设置文本字体
Font arial = new Font("Arial", 20, FontStyle.Regular);
// 设置文本
string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sapien tellus, mattis et condimentum eget, commodo ut ipsum. Maecenas elit sapien, tempus sit amet mauris sit amet, hendrerit laoreet nisi. Nulla facilisi. Sed commodo, mauris eget porta commodo, nunc tellus volutpat mi, eu auctor diam libero vel neque. Vestibulum nec mattis dui, nec molestie nisl. Etiam in magna felis. Praesent non nulla tortor. Integer nec convallis purus. Fusce vitae mollis mauris. Cras efficitur dui at mi viverra scelerisque. Morbi quis magna elit. Nulla facilisis id ante sit amet fringilla. Sed iaculis consectetur lectus a interdum. Etiam ut sollicitudin lectus, et congue lectus.";
Rectangle rectangle = new Rectangle(100, 100, 800, 600);
graphics.DrawRectangle(pen, rectangle);
// 绘制文本
graphics.DrawString(text, arial, brush, rectangle);
// 保存输出图像
bitmap.Save(RunExamples.GetDataDir() + @"TextFonts\DrawText_out.png");
在 C# 中以编程方式从头开始在新图像上绘制文本
您可能需要以图像格式绘制一些文本以用于不同目的。就像您可能希望阻止其他人修改或复制文本内容一样。您需要按照以下步骤在新图像上绘制文本:
- 从头开始初始化新图像
- 初始化 Brush 类对象
- 设置字体样式、大小等。
- 绘制文本 on the image
- 保存输出图像
下面的代码片段演示了如何使用 C# 语言以编程方式从头开始在新图像上绘制文本:
// 从头开始初始化新图像
Bitmap bitmap = new Bitmap(1000, 800, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(bitmap);
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
graphics.Clear(Color.FromKnownColor(KnownColor.White));
// 初始化画笔类对象
Brush brush = new SolidBrush(Color.FromKnownColor(KnownColor.Black));
Pen pen = new Pen(Color.FromKnownColor(KnownColor.Blue), 1);
// 设置字体样式、大小等。
Font arial = new Font("Arial", 20, FontStyle.Regular);
string text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Maecenas sapien tellus, mattis et condimentum eget, commodo ut ipsum. Maecenas elit sapien, tempus sit amet mauris sit amet, hendrerit laoreet nisi. Nulla facilisi. Sed commodo, mauris eget porta commodo, nunc tellus volutpat mi, eu auctor diam libero vel neque. Vestibulum nec mattis dui, nec molestie nisl. Etiam in magna felis. Praesent non nulla tortor. Integer nec convallis purus. Fusce vitae mollis mauris. Cras efficitur dui at mi viverra scelerisque. Morbi quis magna elit. Nulla facilisis id ante sit amet fringilla. Sed iaculis consectetur lectus a interdum. Etiam ut sollicitudin lectus, et congue lectus.";
Rectangle rectangle = new Rectangle(100, 100, 800, 600);
graphics.DrawRectangle(pen, rectangle);
// 在图像上绘制文本
graphics.DrawString(text, arial, brush, rectangle);
// 保存输出图像
bitmap.Save(RunExamples.GetDataDir() + @"TextFonts\DrawText_out.png");
结论
在本文中,我们学习了如何在图像上添加或绘制文本。您可以从头开始在现有图像和新图像中绘制文本水印,而无需安装任何 3rd 方应用程序。此外,您可以处理多种图像格式,包括 JPG、PNG、BMP、Icon、Tiff 等。API 提供了多种功能,可根据您的要求处理绘图和图形。您可以访问我们为不同场景设计的示例项目。如有任何疑问,请随时通过 免费支持论坛 与我们联系。干杯!
也可以看看
信息:Aspose 最近开发了一个免费的 Text to GIF Converter。