C#实现图片动态添加文字并保存

需积分: 25 4 下载量 10 浏览量 更新于2024-09-12 收藏 2KB TXT 举报
在C#编程中,向图片中写入字符串并生成新的图片是一个常见的图像处理任务,特别是在需要动态定制或添加文字到图片背景的应用场景中。本文将详细介绍如何通过按钮点击事件实现这一功能。 首先,我们从事件处理函数`button2_Click`开始,该函数的主要目的是读取并操作一个名为"BackGroundTH.jpg"的背景图片。通过`System.IO.Directory.GetCurrentDirectory()`获取当前工作目录,然后使用`Substring`方法定位资源文件夹的位置。接着,根据文件名的最后一位分隔符,创建一个新的文件名,如"BackGroundTH.jpg-New.jpg",用于保存带有添加文字的新图片。 接下来,创建`FileInfo`对象来操作原始图片文件,并使用`CopyTo`方法将其复制到新文件名指定的位置。然后,通过`Bitmap`类加载新图片,以便后续进行图形处理。 利用`Graphics.FromImage(image)`创建一个`Graphics`对象,这个对象是针对图像的图形上下文,允许我们在图片上绘制各种元素。在这里,我们设置了两个变量`str1`和`str2`分别存储要写入图片的文字,以及`Font`(使用Arial字体,大小为14像素)和`SolidBrush`(红色填充)用于文本的绘制。 `PointF`类表示二维平面上的点,`drawPoint`变量被设置为(50, 200)和(50, 230),用于确定字符串1和字符串2在图片中的位置。使用`g.DrawString`方法,我们将这两个字符串按照设置的字体和颜色在指定位置画在图片上。 为了确保资源的释放,我们创建了一个新的`Bitmap`对象`img`,并将之前的操作结果保存回新的图片文件中。最后,通过调用`g.Dispose()`和`image.Dispose()`释放`Graphics`和`Bitmap`对象的内存,以避免内存泄漏。 总结来说,这段代码演示了如何使用C#通过操作`Graphics`对象,将字符串添加到图片中,创建并显示带文字的新图片。这对于需要在程序中动态修改图片内容,如添加水印、个性化信息等场景非常实用。理解并掌握这个过程,可以帮助开发人员更好地扩展其应用程序的功能。