PeacefulWish

Photograph & Programming

BLOB

2007-03-15 21:45:11 | Programming
環境
Access2003
Turbo Delphi
dbGOでDelphiソフトからAccessデータベースへアクセスしてる

アクセスで挿入したOLEオブジェクト型のBLOBデータ(画像ファイル)を作ってるソフトで読み込もうとしたんだけど…

最初は参考書に書いてあるのを利用したら、EJPEGエラー#53がでて読み込めやしない。
JPEGImage.LoadFromStream(strm);が原因のようだ…

次に、JPEGの変わりにBitmapにしてみたが、やっぱこれもだめ。
やっぱりLoadFromStreamでだめになる。

で、DBimageをつかったけど、不正なビットマップイメージとのこと…

いろいろ探して、同じようなところで悩んでるQAを見つける。でも未解決orz

Delphi-MLにあった「ADO をつかったTImageへのBMP 表示」を試してもやっぱだめってさ…

う~んと悩んだ挙句、LoadFromStreamはだめだけど、streamにはちゃんと入ってるみたい。で、このstreamに入ってるのはいったいなんだ?と思って、savetofileして覗いてみたら、画像情報の前に余分なものがついてるのがわかった。ヘッダー情報か…
#この画像ファイル、延々と獄.獄.獄.獄.獄.獄.…が連続してたw

ヘッダー部分取り除くとふつうのビットマップなので、なんとか表示させることに成功…

これで解決といいたいけど、これじゃあ、回避だなぁ。他のビットマップの場合どうなのかとか、僕の知識だけではわからんし。

もっとすっきりとした解決方法が知りたいorz

割があわないね。やっぱデータベースにはファイルパスを入れてBLOBはやめといたほうがいいな。ファイルの大きさも考えるとそれが一番。


Stream、今まで全然使ってなかったし。(おかげで、使い方がわかっとらん^^;


参考図書
Borland Delphi 6 オフィシャルコースウェア 応用編

LINK
ACCESSのOLEオブジェクト型で質問 Programming Library
Delphi QA p.145-146
http://www.mysql.gr.jp/mysqlml/mysql/msg/5002
ADO をつかったTImageへのBMP 表示 Delphi-ML


ジャンル:
ウェブログ
Comment   この記事についてブログを書く
この記事をはてなブックマークに追加
« 運動はいいもんだ | TOP | うまい »
最近の画像もっと見る

post a comment


コメント利用規約に同意の上コメント投稿を行ってください。

数字4桁を入力し、投稿ボタンを押してください。

Related Topics

Trackback

Trackback  Ping-URL
ブログ作成者から承認されるまでトラックバックは反映されません。