我使用Chris Tacke的文章中引用的类 ImageHelper使用 OpenNetCF.Drawing 命名空间在 Compact Framework 上调整大图像的大小。在许多具有 Windows Mobile 6.5 版本 Embebbed 的设备中,该类运行良好。但是,在某些装有 Windows Mobile 6.1 版(强大的霍尼韦尔设备)和 HTC T3333 (Touch2) 的设备中,会引发异常“0x887b0005”。使用此设备有任何限制吗?有没有办法解决这个问题?
问问题
930 次
1 回答
2
0x887B0005 是一个 COM 错误,我通常只在您尝试显示的图像使用 Compact Framework 不支持的颜色格式时才看到该错误。这可能会解决这个问题:
IBitmapImage imageBitmap;
ImageInfo imageInfo;
IImage image;
var imageFactory = new ImagingFactoryClass();
imageFactory.CreateImageFromStream(new StreamOnFile(fileStream), out image);
image.GetImageInfo(out imageInfo);
//verify we're a CF-supported image format
if (imageInfo.PixelFormat != PixelFormat.Format16bppRgb555
&& imageInfo.PixelFormat != PixelFormat.Format16bppRgb565
&& imageInfo.PixelFormat != PixelFormat.Format24bppRgb
&& imageInfo.PixelFormat != PixelFormat.Format32bppRgb)
{
imageInfo.PixelFormat = PixelFormat.Format24bppRgb;
}
imageFactory.CreateBitmapFromImage(
image,
(uint)width,
(uint)height,
imageInfo.PixelFormat,
InterpolationHint.InterpolationHintDefault,
out imageBitmap);
var bmp = ImageUtils.IBitmapImageToBitmap(imageBitmap);
于 2012-09-06T14:13:47.327 回答