0

Chris Tackeの記事で引用されたクラスImageHelperを使用して、OpenNetCF.Drawing名前空間を使用してCompactFrameworkで大きな画像のサイズを変更します。Windows Mobile 6.5バージョンのEmbebbedを備えた多くのデバイスでは、クラスは完全に機能しました。ただし、Windows Mobileバージョン6.1(堅牢なHoneywell機器)およびHTC T3333(Touch2)を搭載した一部のデバイスでは、例外「0x887b0005」がスローされます。このデバイスの使用に制限はありますか?この問題を解決するための代替手段はありますか?

4

1 に答える 1

2

0x887B0005は、表示しようとしている画像がCompactFrameworkでサポートされていないカラー形式を使用している場合にのみ一般的に見られるCOMエラーです。これにより、問題が回避される可能性があります。

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 に答える