你能在.NET中打开JPEG文件,添加文本并将其重新保存为JPEG吗?

5
我想在.NET 4.0中编写一个小程序,它将打开一个.jpg(或.jpeg)文件,在图像上添加一行文本,然后将图像另存为.jpg。有人知道最简单的方法吗?
谢谢任何帮助。

1
请记住,重新保存JPEG文件(特别是您修改过的文件)会再次压缩它,并且每次压缩都会丢失一些细节。如果必须这样做,请尽可能少地进行操作。 - cHao
1
@cHao - 另一个选择是在保留原始图像的情况下,动态生成/输出图像而不带水印。 - Chase Florell
2个回答

13

类似这样的:

var filePath = @"D:\Pictures\Backgrounds\abc.jpg";
Bitmap bitmap = null;

// Create from a stream so we don't keep a lock on the file.
using (var stream = File.OpenRead(filePath))
{
    bitmap = (Bitmap)Bitmap.FromStream(stream);
}

using (bitmap)
using (var graphics = Graphics.FromImage(bitmap))
using (var font = new Font("Arial", 20, FontStyle.Regular))
{
    // Do what you want using the Graphics object here.
    graphics.DrawString("Hello World!", font, Brushes.Red, 0, 0);

    // Important part!
    bitmap.Save(filePath);
}

你能不保存直接做这个吗? - D B
@DB 是的,你可以使用 Bitmap.Save(Stream, ImageFormat) 重载方法将图像写入流中(例如 MemoryStream)。 - TheCloudlessSky

3
var myBitmap = new Bitmap("C:\\myImage.jpg");
var g = Graphics.FromImage(myBitmap);
g.DrawString("My\nText", new Font("Tahoma", 40), Brushes.White, new PointF(0, 0));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接