2

BYTE* を gdi+ Image オブジェクトに変換したいと考えています。

これどうやってするの?

BYTE* は Dib ポイントのようです。

Image には Image::FromStream() という名前のメソッドがあり、これが役立つ可能性がありますが、BYTE* を IStream オブジェクトに変換する方法についての参照が見つかりません。これどうやってするの?

前もって感謝します!

実際、MS が IStream インターフェイスを提供しているとは信じがたいですが、インターフェイスを実装する c++ MemoryStream クラスは提供していません。

4

3 に答える 3

2

CreateStreamOnHGlobalはHGLOBALを受け取り、IStreamポインターを提供します。GlobalAllocで十分なメモリを割り当ててから、BYTE配列をHGLOBALにコピーする必要があります。

取得した画像データがGDIDIBであることがわかっている場合は、GdipCreateBitmapFromGdiDibまたは対応するBitmap::Bitmapコンストラクターを使用できます。

于 2008-11-04T09:52:40.057 に答える
0

BYTEポインターが指している画像データの形式を知っていますか? Image がストリームからそれ自体を構築できるようにするには、データがサポートされている標準の画像形式 (GIF、PNG、JPEG など) のいずれかである必要があります。

IStreamインターフェイスは、適切な「メモリ ストリーム」または類似のものがない場合に、独自に実装できるほど単純に見えます。

于 2008-11-04T07:48:12.807 に答える