【问题标题】:Saving an image bmp c#保存图像 bmp c#
【发布时间】:2015-12-21 14:18:58
【问题描述】:

我有这个以bmp格式绘制图像的功能

private void DrawImage(Byte[] imgData, PictureBox picBox)
  {
     int colorval;
     Bitmap bmp = new Bitmap(m_ImageWidth, m_ImageHeight);
     picBox.Image = (Image)bmp;

     for (int i=0; i<bmp.Width; i++)
     {
        for (int j=0; j<bmp.Height; j++)
        {
           colorval = (int)imgData[(j*m_ImageWidth)+ i];
           bmp.SetPixel(i,j,Color.FromArgb(colorval,colorval, colorval));
        }
     }
     picBox.Refresh();

    }

当我添加picBox.Image.Save(@"C:\Users\Jose Moreno\Desktop", System.Drawing.Imaging.ImageFormat.Bmp);

在 PicBox.Refresh(); 下,程序崩溃并出现错误: “System.Drawing.dll 中发生了“System.Runtime.InteropServices.ExternalException”类型的未处理异常”

程序为什么会崩溃?那是帮助。

【问题讨论】:

  • filename 呢?

标签: c# image save bmp


【解决方案1】:

Image.Save(String, ImageFormat) 需要完整的文件名,而不仅仅是文件路径"C:\Users\Jose Moreno\Desktop" (大概)是预先存在的目录的名称,而不是可以创建的文件的名称。您需要传递一个实际的文件名,例如:

picBox.Image.Save(@"C:\Users\Jose Moreno\Desktop\TestFilename.bmp", System.Drawing.Imaging.ImageFormat.Bmp);

如果无法创建指定名称的文件,您将收到这个难以理解的错误。

请注意,如果图像最初是从文件中加载的,则在图像被处理之前,您无法将其保存回同一文件,因为该文件已被锁定。见How can I fix this GDI+ generic exception when I save images?。但这不是您的问题中显示的问题。

【讨论】:

    猜你喜欢
    • 2019-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-01
    相关资源
    最近更新 更多