首页 > 解决方案 > C#:调试 GDI+ 界面中的一般错误?

问题描述

如何轻松调试 GDI+ 界面中发生的一般错误?

我正在尝试保存位图文件。它发生在 Bitmap.Save(...) 调用上。

代码:

var imagePath = @"C:\test.bmp";

//File.Create(imagePath);

Bitmap b = new Bitmap(100, 100);

for (int pixelXCounter = 0; pixelXCounter < 100; pixelXCounter++)
{
    for (int pixelYCounter = 0; pixelYCounter < 100; pixelYCounter++)
    {
        b.SetPixel(pixelXCounter, pixelYCounter, System.Drawing.Color.Salmon);
    }
}

b.Save(imagePath, System.Drawing.Imaging.ImageFormat.Bmp);

更新:

所以这里有一些关于我收到的错误的更多信息(在我注释掉 File.Creat() 调用之后):

ExternalException 发生:“ System.Drawing.dll 中发生了“System.Runtime.InteropServices.ExternalException”类型的第一次机会异常

附加信息:GDI+ 中出现一般错误。"

异常对象的错误代码:-2147467259

标签: c#.net.net-4.5gdi+

解决方案


什么剂量 File.Create() 做什么?它锁定文件,您的位图无法保存在磁盘上。去掉它 :

var imagePath = @"C:\test.bmp";

Bitmap b = new Bitmap(100, 100);

for (int pixelXCounter = 0; pixelXCounter < 100; pixelXCounter++) {
    for (int pixelYCounter = 0; pixelYCounter < 100; pixelYCounter++)
    {
        b.SetPixel(pixelXCounter, pixelYCounter, System.Drawing.Color.Salmon);
    } }

b.Save(imagePath, System.Drawing.Imaging.ImageFormat.Bmp);

推荐阅读