2009-05-18 2 views
0

Windows MobileアプリケーションでBITMAP構造体(HBITMAP)のハンドルを取得しました。ビットマップをPNGファイルとして保存する場合は、IImageインターフェイスを使用してください可能なら。 (この状況ではBMPファイルはありません.BITMAPはメモリ内にのみあります)。Windows Mobile上でIImageインターフェイスを使用してBITMAPをConvertする

IImagingFactoryのIImagingFactory::CreateImageEncoderToFileメソッドを使用してファイルを保存できたようですが、まずBITMAPを "IImage"形式に変換する必要があると思います。

ネイティブコードでこれを行う方法に関するアイデアはありますか?

答えて

1

CreateImageFromStreamを使用すると、BITMAPデータを読み込んでIImageを得ることができます。

編集:

私はこの上もう少し調査をしました。いくつかの方法がありますが、最も簡単な方法は次のとおりです:

  1. を作成し、ビットマップをblitしてください。
  2. イメージデータのDIBSECTIONを指すBitmapDataインスタンスを作成します。
  3. IBitmapImageインターフェイスを生成するにはCreateBitmapFromBufferを呼び出します。
  4. エンコーダでIBitmapImage(IImage)をプッシュします。
+0

"ストリーム"は、この場合、イメージのソースデータストリームを提供するIStreamインターフェイスへのポインタです.BITMAPデータからどのように移行しますか? – Ken

+1

ビットマップビットへのポインタを取得するために、hBitmapでGetObjectを呼び出すことができるDIBSECTIONを作成する必要はありません。このスレッドで詳細情報を確認できます。http://social.msdn.microsoft.com/Forums/en-US/vssmartdevicesnative/thread/1d0f32d4-256b-4b03-91d6-1c487b638c63 – Ismael

関連する問題