当我们在处理图片时,有时需要在图片上添加文字,以标注或说明图片的内容。使用 C# 可以通过在图像上显示文字来实现这一功能。接下来,我们将提供一份“c#给图片添加文字的代码小结”的完整攻略。
1. 引用名称空间
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Windows.Forms;
在添加文本到图片中之前,我们需要先引用 System.Drawing
、System.Drawing.Imaging
、System.IO
、System.Windows.Forms
等命名空间。
2. 定义方法添加文本
public Bitmap AddTextToImage(string path, string text)
{
Bitmap bmp = new Bitmap(path);
// 新建图片画布
Graphics g = Graphics.FromImage(bmp);
// 设置文字信息
Font font = new Font("Arial", 16);
Color color = Color.Red;
PointF p = new PointF(10, 10);
// 添加文字
g.DrawString(text, font, new SolidBrush(color), p);
// 返回添加了文字的 Bitmap
return bmp;
}
path
:图片路径。text
:要添加到图像上的文本。
这个方法接受两个参数,图像路径和要添加的文本,它会返回添加了文本的 Bitmap
。我们首先从指定路径打开一个图像文件,并将其加载到 Bitmap
对象中。接下来,我们使用名称空间中的 Graphics
类从 Bitmap
新建一个画布,设置将要添加到图像中的文本信息,并使用 DrawString()
方法将文本绘制在 Bitmap 上。最后,返回添加了文字的 Bitmap。
3. 保存添加了文本的图片
public void SaveImage(Bitmap image, string outputPath)
{
using (MemoryStream memoryStream = new MemoryStream())
{
image.Save(memoryStream, ImageFormat.Jpeg);
byte[] bytes = memoryStream.ToArray();
using (FileStream fs = new FileStream(outputPath, FileMode.CreateNew))
{
fs.Write(bytes, 0, bytes.Length);
}
}
}
这个方法接受两个参数,一个是我们在第二步中返回的 Bitmap
对象,以及要保存图像的输出路径。它使用 MemoryStream
将图像保存为字节数组,并使用 FileStream
将其写入磁盘上的新文件。
示例说明
以下示例演示了如何将文本添加到图像中。
string imagePath = "image.jpg";
string text = "C# 添加文本到图像中";
string outputPath = "image-with-text.jpg";
Bitmap image = AddTextToImage(imagePath, text);
SaveImage(image, outputPath);
MessageBox.Show("图片添加文本完成!");
这个示例将加载 image.jpg
,将 C# 添加文本到图像中
文本添加到该图像并将其保存为 image-with-text.jpg
。
我们再来看另一个示例,这个示例展示了如何直接将文本写入图像当中。
string imagePath = "image.jpg";
string text = "C# 添加文本到图像中";
string outputPath = "image-with-text.jpg";
Bitmap image = new Bitmap(imagePath);
using (Graphics g = Graphics.FromImage(image))
{
Font font = new Font("Arial", 16);
Color color = Color.Red;
PointF p = new PointF(10, 10);
// 添加文字
g.DrawString(text, font, new SolidBrush(color), p);
}
image.Save(outputPath);
MessageBox.Show("图片添加文本完成!");
这个示例和上一个示例相似,唯一的区别在于该示例直接在原始的 Bitmap
对象上写入文本,而不是新建一个 Bitmap
对象。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#给图片添加文字的代码小结 - Python技术站