掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
三度、FirebirdのBlob型の操作について (ID:46511)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
yTakeです。 再び伺わせて下さい。 DBへ登録したBitMap画像を読み出しImageコンポーネントへ書き出す事を考えます。 DBのフィールドはblob型なので、ストリームで入出力する様にしました。 以下、抜粋です。 DB読み出し側: var Bmp : Array[ 1 .. 2 ] of TBitMap; Strm : Array[ 1 .. 2 ] of TStream; begin for i := 1 to 2 do Bmp[ i ] := TBitMap.Create(); with DataModule1.IBQuery do begin Open(); for i := 1 to 2 do begin Strm[ i ] := CreateBlobStream( FieldByName('Image_1'), bmRead ); Next(); end; end; for i := 1 to 2 do Bmp[ i ].LoadFromStream( Strm[ i ]); for i := 1 to 2 do Strm[ i ].Free(); Image1.Picture.Graphic := Bmp[ 1 ]; Image2.Picture.Graphic := Bmp[ 2 ]; for i := 1 to 2 do Bmp[ i ].Free(); end 因みに、登録側でもBitMapファイルから直接読み込まず、読み出し側に合わせてストリームを経由しました。(直接、BitMapファイルから読み込んでも変わりません) DB登録側: var bs : TMemoryStream; begin bs := TMemoryStream.Create(); do DataModule1.IBQuery with begin for i := 1 to 2 do begin bs.LoadFromFile( table_info[ i ].Image_filename ); ParamByName( 'IMAGE_1' ).LoadFromStream( bs, ftBlob ); end; end; end; 画像は、フィールドへ正しく登録されてはいる様です。 DBGridとDBImageコンポーネントで、"IMAGE_1"フィールドを参照すると正しく画像が表示されています。 それを、BitMapへ書き出すと、何も表示されません。 画像データの取り扱いが間違っているでしょうか? 度々お世話になっていますが、やはり理解が不十分な様です。 ご教授頂ければと思います。 環境: DELPHI XE3, Windouws7 Firebird 2.5
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.