【发布时间】:2012-04-30 10:00:35
【问题描述】:
我有两张tiff图片,一张是黑白的,一张是grayscale8的。
当我尝试打开它们时,我需要在图片框中显示它们:
Image.FromFile("path");
BW 的打开没有问题,灰度的给我一个异常:“内存不足”
只有当我在 WinXP SP3 机器上执行代码时才会发生这种情况,使用 Windows 7 的同事在这两种情况下都没有问题
有什么想法吗?
更多信息:MS Paint 和标准 Microsoft Image Viewer 无法打开灰度图像,而 Office Picture Manager 可以
Windows 7 可以用任何软件打开图片
我有这个临时解决方案,但我认为不是最好的:
System.Windows.Media.Imaging.BitmapImage bImg = null;
using (var fs = new FileStream(dlg.FileName, FileMode.Open))
{
bImg = new System.Windows.Media.Imaging.BitmapImage();
bImg.BeginInit();
bImg.StreamSource = fs;
bImg.EndInit();
}
if (bImg.Format == System.Windows.Media.PixelFormats.Gray8)
{
Bitmap bitmap;
using (MemoryStream outStream = new MemoryStream())
{
BitmapEncoder enc = new BmpBitmapEncoder();
enc.Frames.Add(BitmapFrame.Create(bImg));
enc.Save(outStream);
bitmap = new System.Drawing.Bitmap(outStream);
}
AssignImage(bitmap);
}
else
AssignImage(Image.FromFile(dlg.FileName));
【问题讨论】:
标签: c# windows-7 windows-xp gdi+ tiff