如何将图形保存为png或jpg文件c#

Posted

技术标签:

【中文标题】如何将图形保存为png或jpg文件c#【英文标题】:How to save graphics into png or jpg file c# 【发布时间】:2020-12-16 13:43:14 【问题描述】:

我正在开发 C# windows 窗体应用程序中的图形应用程序。我有一个可以在上面画的表格。 所以我从表单中创建了一个Graphic 对象。

void StartPoint()

    Graphics graphic;
    graphic = PaintWindow.CreateGraphics();

我想知道如何在绘制完某些内容后将此图形导出为 png 或 jpg 文件。 在此之前,我搜索了这个问题,但没有发现任何有用的东西。 有些人通过打印屏幕的那部分来解决这个问题:

graphic.CopyFromScreen(...);

这种方式对我没有用,因为有时我需要透明背景图像。 另外,我尝试了位图方式:

    private void ExportBTN_Click(object sender, EventArgs e)
    
        Bitmap b = new Bitmap(PaintWindow.Width, PaintWindow.Height, graphic);
        b.Save(...);
    

但是当我保存时,图像文件完全是黑色的。 这是我的应用程序:

【问题讨论】:

你试过用PNG这样的格式保存位图吗:b.Save(fileName, System.Drawing.Imaging.ImageFormat.Png)?或者你可以查看here的答案 如果你用黑色以外的任何颜色画画,你会得到全黑吗? (这个测试会告诉我们它是否是一个 alpha 通道相关的问题。) 是的,我做了 png 格式。我以前看过那个答案。 【参考方案1】:

如果你想画一张你想create your graphics from that image的图片:

using(var myGraphics = Graphics.FromImage(myBitmap))
 
    // Do drawing 

然后您可以继续使用 CopyFromScreen 和其他绘图方法来更新图像并保存它。

【讨论】:

以上是关于如何将图形保存为png或jpg文件c#的主要内容,如果未能解决你的问题,请参考以下文章

如何将 CorePlot 创建的图形保存为 jpg 文件

如何将jpg格式转换成png格式?

photoshop 24位 png或jpg图 啥意思

使用 C# 图形从 swf 绘制图像

R:如何将绘图/图形导出为 png 或 pdf 文件

怎样将png图片32位深改为24位深?谢谢