c# - 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
解决方案
什么剂量 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);
推荐阅读
- sql - Firebird SQL 内连接 + 列表
- html - 由于引导卡,html 上不需要的空间
- github - 如何在 github 上添加已打开的拉取请求的链接?
- javascript - 如何修复随机 GET /%3Canonymous%3E 404 错误消息
- javascript - 我如何用我的数据抛出一个对象并在 catch(err) 中接收它
- pine-script - 如何隐藏默认策略标记
- python - 如何在这里克服最大递归深度超出错误?
- database - 在并行 HTTP 请求中正确扣除信用余额的设计模式
- java - 如何在另一个外部类变量中分配进度条的值来执行计算?
- azure - 如何使用 Bicep 在现有 vnet 上创建子网数组?