- PR -

ASP.NET(VB.NET)でのSQLServer2000のImage型データの画像表示について

1
投稿者投稿内容
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-08-08 22:20
お世話になります。

現在、ASP.NETを使用し、SQLServerのデータをWeb上に表示すると言う単純なシステムを作成しております。
その際に、SQLServerのImage型データ(画像)をWebフォームに表示しようと調べていたのですが
あれこれ調べた結果、恐らく、一度Image型データをbmpファイル等に変換し、そのファイルをWebのImageコントロールのURLに設定すればできるんだな、というのがわかりました。

その際の手順も、FileStreamとBinaryWriterを使用してバイナリデータからビットマップ変換をかけるのでは?というところまでは調べました。
ただ、最後のビットマップに変換するところがわかりません。
ここの掲示板も一通り探しましたが、辿り着けませんでした^^;

何かヒントでも参考URLでも結構ですので、どなたか、お知恵を拝借できませんでしょうか?
宜しくお願い致します。
にしざき
ぬし
会議室デビュー日: 2003/06/30
投稿数: 304
投稿日時: 2005-08-09 06:25
おそらく、Image 型そのものは画像フォーマットを認識しているわけではないので、登録したデータのまま取得できると思います。
したがって、bmp ファイル形式の画像データを登録したのであれば、「ビットマップに変換」は不要だと思います。
ただし、ブラウザで表示するのであれば、pngなりjpegなりに変換したほうがいいのかもしれませんが。

あと、必ずしも「ファイルにする」必要はありません。
画像イメージを返す ashx ファイルを作成して、それをWebのImageコントロールのURLに設定すればできます。
これに関しては、どっとねっとふぁんにサンプルがあります。
Access
ぬし
会議室デビュー日: 2002/04/08
投稿数: 829
投稿日時: 2005-08-09 06:30
これか参考になるかと・・・

http://codebetter.com/blogs/eric.wise/archive/2005/05/15/63236.aspx

_________________
ASP.NET+Ajaxサンプル集 | JavaScript+Ajaxサンプル集
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-08-09 10:03
お世話になります。

>にしざき様
早速のご回答、ありがとうございます。

| おそらく、Image 型そのものは画像フォーマットを認識しているわけではないので、| 登録したデータのまま取得できると思います。
| したがって、bmp ファイル形式の画像データを登録したのであれば、
| 「ビットマップに変換」は不要だと思います。
| ただし、ブラウザで表示するのであれば、
| pngなりjpegなりに変換したほうがいいのかもしれませんが。

なるほど、確かに仰るとおりですね。
イメージで言えば、にしざき様のおっしゃるこのやり方が理想に近いところです。
bmpをjpegに変換するところはプログラムで対応できたので
何とかbmpファイルに落とすことはできないか?と調査しておりました。
基本的に、SQLServerに登録するのはbmpファイルになりますので、できればこの方法でやりたいのですが、、、
登録したデータのまま取得とは、一体どのようにするのでしょうか?

ファイル形式にこだわったのは、ImageコントロールのURLにファイルを設定しなければいけないとう部分に縛られていたからですが

| あと、必ずしも「ファイルにする」必要はありません。
| 画像イメージを返す ashx ファイルを作成して、
| それをWebのImageコントロールのURLに設定すればできます。

という方法があるわけですよね。
サンプルプログラムを拝見しましたが、どちらも一応新規でbmpデータを作成し
そこで
g.DrawString(str, f, Brushes.Yellow, 10, 10);
でイメージに文字を書いている、つまりここで取得した画像データを登録するようにすればOKっぽいイメージですね。 早速調査してみます。
ただ、ashxファイルを作成する、というのが今ひとつイメージが掴めません、、、orz
ya
大ベテラン
会議室デビュー日: 2002/05/03
投稿数: 212
投稿日時: 2005-08-09 14:38
前にこんなのに返信した気がするなぁと思って探してみたらありました。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=15974&forum=7

自分の書き込みのところです
しらたま
会議室デビュー日: 2005/08/08
投稿数: 9
投稿日時: 2005-08-26 14:23
お世話になります。

返答が遅れてしまい、申し訳ありませんでした^^;
あれから別の仕事に追われてしまいまして、、、、

結論なのですが、無事表示することができました。
MemoryStreamオブジェクトに画像を格納し、直接aspxファイルに表示することで達成できました。

皆さん、ありがとうございました。
1

スキルアップ/キャリアアップ(JOB@IT)