在图像中添加文本是添加上下文、品牌甚至只是一点点乐趣的好方法。它可用于创建模因、社交媒体帖子、营销材料等。在这篇博文中,我们将学习如何在 C# 中向图像添加文本。我们将逐步指导您如何在 JPG 或 PNG 格式的照片或其他图像上书写。那么让我们开始吧!
本文涵盖以下主题:
用于向图像添加文本的 C# API
我们将使用 Aspose.Drawing for .NET 向图像添加文本。它是一个功能强大且多功能的 2D 图形库,允许开发人员在各种应用程序中创建和操作图形。 Aspose.Drawing for .NET 支持广泛的图像处理操作,例如裁剪、调整大小、旋转、翻转和水印。对于需要为其 .NET 应用程序提供跨平台、高性能图形库的开发人员来说,它是一个不错的选择。
请下载 API 的 DLL 或使用 NuGet 安装它。
PM> Install-Package Aspose.Drawing
在 C# 中向 JPG 图像添加文本
我们可以按照以下步骤向 JPG 图像添加文本:
- 使用 Bitmap 类加载 JPG 图像。
- 使用 FromImage() 方法从 Bitmap 对象创建一个新的 Graphics 对象。
- 使用指定的文本颜色初始化 SolidBrush 类对象。
- 使用所需的文本字体系列、样式和大小定义 Font 类对象。
- (可选)初始化一个 Rectangle 对象。
- 之后,使用要显示的文本、Font、Brush 和 Rectangle 类对象作为参数调用 DrawString() 方法。
- 最后,使用 Save() 方法保存输出图像。
以下代码示例演示如何使用 C# 将文本添加到 JPG 图像。
// 加载图像
Bitmap bitmap = new Bitmap("C:\\Files\\Sample_JPG.jpg");
Graphics graphics = Graphics.FromImage(bitmap);
// 定义文本颜色
Brush brush = new SolidBrush(Color.DarkBlue);
// 定义文本字体
Font arial = new Font("Arial", 25, FontStyle.Regular);
// 要显示的文本
string text = "Hello, this is a sample text!";
// 定义矩形
Rectangle rectangle = new Rectangle(100, 100, 450, 100);
// 在图像上绘制文本
graphics.DrawString(text, arial, brush, rectangle);
// 保存输出文件
bitmap.Save("C:\\Files\\DrawTextOnJpg.jpg");
在 C# 中将文本添加到 PNG 图像
同样,我们可以按照前面提到的步骤向 PNG 图像添加文本。但是,我们需要在第一步加载 PNG 图像。
以下代码示例演示如何使用 C# 将文本添加到 PNG 图像。
// 加载图像
Bitmap bitmap = new Bitmap("C:\\Files\\Sample_PNG.png");
Graphics graphics = Graphics.FromImage(bitmap);
// 定义文本颜色
Brush brush = new SolidBrush(Color.Red);
// 定义文本字体
Font arial = new Font("Arial", 30, FontStyle.Regular);
// 要显示的文本
string text = "Hello, this is a sample text!";
// 定义矩形
Rectangle rectangle = new Rectangle(400, 1500, 1600, 150);
// 指定矩形边框
Pen pen = new Pen(Color.White, 2);
// 绘制矩形
graphics.DrawRectangle(pen, rectangle);
// 在图像上绘制文本
graphics.DrawString(text, arial, brush, rectangle);
// 保存输出文件
bitmap.Save("C:\\Files\\DrawText.png");
为照片添加标题 - 为照片添加文字
我们还可以按照以下步骤为照片添加标题:
- 使用 Bitmap 类加载照片图像。
- 使用加载图像的大小创建一个新位图,并添加标题的矩形大小。
- 使用 FromImage() 方法从 Bitmap 对象创建一个新的 Graphics 对象。
- 使用 DrawImage() 方法在新创建的图像上绘制加载的图像。
- 为标题框绘制一个填充矩形。
- 使用 StringFormat 类指定文本字符串格式。
- 定义文本、颜色和字体
- 之后,使用要显示的文本、Font、Brush 和 Rectangle 类对象作为参数调用 DrawString() 方法。
- 最后,使用 Save() 方法保存输出图像。
以下代码示例展示了如何使用 C# 为照片添加标题。
// 加载图像
Bitmap bitmap = new Bitmap("C:\\Files\\tower.jpg");
var imageHeight = bitmap.Height;
var imageWidth = bitmap.Width;
var textHeight = 50;
// 创建一个新位图,其大小为加载图像+标题矩形
Bitmap img = new Bitmap(imageWidth, imageHeight + textHeight, System.Drawing.Imaging.PixelFormat.Format32bppPArgb);
Graphics graphics = Graphics.FromImage(img);
// 在新创建的图像上绘制加载的图像
graphics.DrawImage(bitmap, 0, 0);
// 画一个矩形作为标题框
Rectangle rectangle = new Rectangle(0, imageHeight, imageWidth, textHeight);
Brush fillColor = new SolidBrush(Color.White);
Pen pen = new Pen(Color.White, 2);
graphics.DrawRectangle(pen, rectangle);
graphics.FillRectangle(fillColor, rectangle);
// 指定文本字符串格式
StringFormat stringFormat = new StringFormat();
stringFormat.Alignment = StringAlignment.Center;
stringFormat.LineAlignment = StringAlignment.Center;
// 文字颜色
Brush textColor = new SolidBrush(Color.Black);
// 文字字体
Font arial = new Font("Arial", 18, FontStyle.Regular);
// 要显示的文本
string text = "Hello, this is a sample text!";
// 绘制文字
graphics.TextRenderingHint = TextRenderingHint.AntiAliasGridFit;
graphics.DrawString(text, arial, textColor, rectangle, stringFormat);
// 保存输出
img.Save("C:\\Files\\DrawTextOnPhoto.jpg");
获取免费许可证
您可以获得免费的临时许可证来尝试 Aspose.Drawing for .NET,而不受评估限制。
在线在图像上写入文字
您还可以尝试免费的在线添加文本到图像网络应用程序。其用户友好的界面使您可以轻松简单地在图像上写入文本,而无需安装任何额外的软件、创建帐户或订阅任何内容。
将文本添加到图像 – 免费学习资源
您可以使用以下资源了解有关向图像添加文本和在光栅图像上显示矢量图形以及该库的各种其他功能的更多信息:
结论
在这篇博文中,我们向您展示了如何在 C# 中向图像添加文本。我们介绍了以编程方式在照片和图像上编写文本的基础知识以及一些更高级的技术。此外,我们还推出了一个免费的在线工具,可以随时随地向图像添加文本。如有任何疑问,请随时通过我们的免费支持论坛与我们联系。