[リストへもどる]
一括表示

投稿時間:2003/03/11(Tue) 11:56
投稿者名:のぶゆき
Eメール:
URL :
タイトル:
PictureBoxについて
質問があります。誰か教えてください。

PictureBoxに画像ファイルを読み込むのには
LoadPicture 関数を使用しますが、DBに保存してあるBinaryデータから、
直接PictureBoxにセットすることはできないでしょうか。
現在は、一度DBデータをByte配列で読み込んで、一度ファイルに落とし、
その後にLoadPictureでファイルから読み込み・・・というなんとも効率
の悪い方法をしています。

知っている方、よろしくお願いします。

投稿時間:2003/03/11(Tue) 13:14
投稿者名:魔界の仮面弁士
Eメール:
URL :
タイトル:
Re: PictureBoxについて
> LoadPicture 関数を使用しますが、DBに保存してあるBinaryデータから、
> 直接PictureBoxにセットすることはできないでしょうか。

どのように格納するか、にもよるでしょう。

例えば、Pictureオブジェクトを PropertyBagオブジェクトにパーシストして、
その Contents を格納するようにしておくという方法があります。

'格納時
With New PropertyBag
    .WriteProperty "test", Picture1.Picture
    バイナリデータ = .Contents
End With

'復元時
With New PropertyBag
    .Contents = バイナリデータ
    Set Picture1.Picture = .ReadProperty("test", Nothing)
End With


あるいは、OLEオブジェクトとして格納しておき、
それをOLEコントロールにバインドさせて表示させるような手もあります。

VBから扱うのであれば、上記2案のいずれかを使うのが簡単でしょう。

ビットマップイメージの生データを格納しておきたいのであれば、
手順としては面倒になりますが、ビットマップデータを hBMP に展開し、
OleCreatePictureIndirect でPictureオブジェクト化する、という手順が必要かと。

投稿時間:2003/03/11(Tue) 14:25
投稿者名:のぶゆき
Eメール:
URL :
タイトル:
Re^2: PictureBoxについて
返信ありがとうございます。

ちょっと説明不足でした。
私の使用している言語は VB6.0 です。
格納の方法は生データを直接保存です。

なにかよい方法をご存知でしたら、よろしくお願いします。
関連するAPIの情報だけでもかまいません。よろしくお願いします。