バイト配列画像データをイメージコントロールに表示するには?

解決


jaws  2005-09-09 10:03:21  No: 125085  IP: [192.*.*.*]

バイト配列の画像データを、イメージコントロールに表示したいのですが、その際ファイルを経由しないでメモリ上で行う方法はないでしょうか?

編集 削除
jaws  2005-09-09 10:17:54  No: 125086  IP: [192.*.*.*]

質問に不足がありました。
画像データはjpgでOS他は
windows2000sp4+VB6sp5で開発中です。

編集 削除
ガッ  2005-09-09 10:18:05  No: 125087  IP: [192.*.*.*]

環境明記してください。
-.NET-
System.Drawing.Image.FromStream()が使えそうです。
System.IO.BufferdStreamとか…?

-VB6-
普通にWinAPIのSetDIBitsToDeviceなんかで。

編集 削除
K.J.K.  2005-09-09 11:28:14  No: 125088  IP: [192.*.*.*]

バイト配列からIStreamを作り出し、それに対してOleLoadPicture
とか。バイト配列->IStreamは、ole32.dllの提供する既定のIStream
(Global Memory Handleに関連付けられたもの)を利用するか、自力で
IStreamをImplementsしたものを作るか、辺りでしょう。

編集 削除
魔界の仮面弁士  2005-09-09 12:09:31  No: 125089  IP: [192.*.*.*]

こんな感じかな。
http://yaplog.jp/orator/archive/19

上記をコピーした上で、
   Set Image1.Picture = BytesToPicture(バイト配列)
のイメージで作れるかと。

編集 削除
jaws  2005-09-09 12:22:18  No: 125090  IP: [192.*.*.*]

魔界の仮面弁士さんありがとうございました。
やりたいことがそのままできました。
後々ソースを解析して勉強します。

編集 削除