【发布时间】:2012-02-24 00:19:07
【问题描述】:
当尝试使用单声道版本的 System.Drawing.Bitmap 对象在 OSX 10.7.3 上加载“.bmp”、“.png”或“.jpg”时,应用程序只会挂起。我没有收到任何错误,应用程序只是卡在 Bitmaps 构造函数上......
当我在 (Arch)Linux 或 Windows 上运行相同的代码时,一切正常。
public static void Main (string[] args)
{
using (var bitmap = new Bitmap("/....../image.bmp"))
{
}
Console.WriteLine ("Hello World!");// Never gets here...
}
如果我在调试模式下暂停应用程序,它会打开“反汇编”窗口并显示它卡在这一行:
call Status System.Drawing.GDIPlus:GdiplusStartup (UInt64, GdiplusStartupInput, GdiplusStartupOutput)
注意:在调试模式下暂停应用程序几次后,它“神奇地”在编写此代码时开始工作。我保证我没有更改任何代码。任何人都知道什么会导致“System.Drawing.GDIPlus”挂起,所以我知道如何避免它?是否有单声道编解码器设置文件或其他可能会搞砸的东西?
【问题讨论】:
-
这个工作更好吗:var bitmap = Bitmap.FromFile("......../image.bmp")
-
感知发帖时间,我已经转而使用 OSX 的本机 API(通过 MonoMac)来加载图像......似乎这样运行速度也更快。