2010-08-27 40 views
5

我想在.NET 4.0中编写一个小程序,它将打开一个.jpg(或.jpeg)文件,向图像添加一行文本,然后将图像重新保存为.jpg。有谁知道最简单的方法来做到这一点?你可以在.NET中打开JPEG,添加文本并将其重新保存为JPEG格式吗?

感谢您的任何帮助。

+1

请记住,重新保存为JPEG(尤其是你修改)再次对其进行压缩,并且每个压缩扔了一些细节。当你这样做的时候,如果你必须的话,尽可能少地做。 – cHao 2010-08-27 01:20:06

+1

@cHao - 另一种选择是在没有水印的情况下保持原始图像的同时生成/输出图像。 – 2010-08-27 01:21:03

回答

12

事情是这样的:

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); 
} 
+0

你能不能保存吗? – 2016-10-14 11:07:56

+0

@DB Yup,你可以使用['Bitmap.Save(Stream,ImageFormat)'](https://msdn.microsoft.com/en-us/library/ms142147(v = vs.110).aspx)overload写入流(例如'MemoryStream')。 – TheCloudlessSky 2016-10-14 14:22:10

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)); 
相关问题