C# 保存 System.Drawing.Graphics 到 .png

C# save System.Drawing.Graphics to .png

我尝试使用 graphics.Save();

Graphics newImage = Graphics.FromImage(bmp2);
newImage.DrawImage(bmp, 87, 37, 0, 0);
newImage.Save();

但是当我尝试像 Image.Save(@"HereGoesName.PNG") 那样设置文件名时;方法我得到一个错误说 "No overload for the method 'Save' takes 1 arguments)"

我搜索的所有地方都说要执行以下操作

 Bitmap bitmap = new Bitmap(Convert.ToInt32(1024), Convert.ToInt32(1024), System.Drawing.Imaging.PixelFormat.Format32bppArgb);
 Graphics g = Graphics.FromImage(bitmap);
 bitmap.Save(@"HereGoesName.PNG", ImageFormat.Png);

据我了解,这是从此处的位图创建图形,而我正在尝试做相反的事情。

这很简单:您的行 Graphics newImage = Graphics.FromImage(bmp2); 创建了一个引用 bmp2 图像的图形对象。

所有绘图操作都直接在您的 bmp2 位图上绘制

因此您可以简单地保存修改后的图像:

bmp2.Save(@"foo.png", ImageFormat.Png);

您需要在位图上调用 Save,而不是图形:

Graphics newImage = Graphics.FromImage(bmp2);
newImage.DrawImage(bmp, 87, 37, 0, 0);
bmp2.Save("HereGoesName.PNG", ImageFormat.Png);