掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
*.MDBの取扱について:画像の取得 (ID:33194)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
真琴:「アクセスDATABASEは知らないけど、PARADOXだったらコレで出来るよね? ハルコさん」 procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField); begin Show_BlobField(TDataSource(Sender).DataSet.FieldByName('Graphic') as TBlobField, DBImage1); end; procedure TForm1.Show_BlobField(aField: TBlobField; aImage: TDBImage); var bs: TBlobStream; Header: array[0..7]of WORD; OleGraphic: TOleGraphic; begin bs := TBlobStream.Create(TBlobField(aField), bmRead); try if bs.Size > SizeOf(Header) then begin bs.Read(Header, SizeOf(Header)); // if (Header[0] = $4D42) then begin // BMP // bs.Position := 0; // end else if (Header[Length(Header) div SizeOf(WORD)] = $4D42) then begin // BMP bs.Position := Length(Header); end else begin // BMP, JPG, GIF, ICO, METAFILE bs.Position := 0; end; OleGraphic := TOleGraphic.Create; try OleGraphic.LoadFromStream(bs); aImage.Picture.Assign(OleGraphic); finally OleGraphic.Free; end; end; finally bs.Free; end; end; 春子:「そうね、もしアクセスの格納画像がバイナリならば、こんなカンジでもイケルけど…」 真琴:「え? OLEオブジェクト型って、バイナリじゃないの?」 春子:「そう、ただのバイナリじゃないみたいだから、バイナリに変換しないとダメだと思うよ」 真琴:「どんな変換?」 春子:「アタシも詳しくはないけど、ヘッダー情報(105文字とか78バイトとか)があって、残りをBase64で変換するとか…ヘッダー長も変る場合があるとか…」 真琴:「そんなアヤフヤなの? じゃぁ、変換は無理かぁ…」 春子:「とにかく、まず、そのOLEオブジェクト型がどんなものかを解析しないとダメかな?」
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2020 Takeshi Okamoto All Rights Reserved.