保存图像 bmp c#

Saving an image bmp c#

我有这个功能可以绘制 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();,程序崩溃并报错: "An unhandled exception of type 'System.Runtime.InteropServices.ExternalException' occurred in System.Drawing.dll"

为什么程序会崩溃?谢谢你的帮助。

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?。但这不是您问题中显示的问题。