ASP.NET でフォルダー内画像のサムネイル表示


ひで  2008-05-27 20:49:13  No: 139785

VB2005初心者です。
フォルダー内にある画像をフルパスでDB内に保存しています。
そのフルパス先にある画像をサムネイルでWeb上に表示したいのですが、
可能なのでしょうか?(DBにはファイルパスと、その画像へのコメントを入れています。)
検索してもVBなどの方法には辿り付くのですが、ブラウザに表示する方法のヒントは見つけられませんでした。
可能だとすれば、まずは取っ掛かりから教えていただきたく、初めて質問投稿させていただきました。
宜しくお願いいたします。


魔界の仮面弁士  2008-05-27 21:23:51  No: 139786

> 画像をフルパスでDB内に保存しています。
その画像パスというのは、
  Webサーバのパス
  DBサーバのパス
  共有ファイルサーバのパス
  クライアントのパス
  その他のパス
のいずれでしょうか? リソースの配置先が異なれば、コードも異なるので。


ひで  2008-05-27 22:11:24  No: 139787

早速有難う御座います。
パスはC:\Photo\....jpgのようにDB(Web・DBサーバー兼用)に保存しています。


魔界の仮面弁士  2008-05-27 22:35:06  No: 139788

その画像は、IIS 上の仮想フォルダから見える位置にありますか?

見える位置にあるなら、それを仮想パスに変換した上で
<img src=""> などで表示してやれば良いかと思います。

外から見えない位置にあるなら、<img src="foo.aspx?file=sample.jpg"> 
などのように、中継用の aspx を用意しておき、その中で
Response.WriteFile や Response.BinaryWrite を使って見てください。

If File.Exists(fileName) Then
    Response.Clear()
    Response.ContentType = "image/jpeg"
    Response.WriteFile(filename)
    Response.End()
End If


ひで  2008-05-28 02:21:32  No: 139789

せっかく深い返答を頂いていたのですが、どうやら私の質問の仕方からしてなってなかったようです。申し訳ありません。

やりたいことは、DB内に保存してある写真のパス、コメントを読み、そのサムネイルを生成し、ブラウザ上に並べて表示することです。
ASPでサムネイルを作成し、掲載する方法が分からないため仕方なく、PICTURE BOXに縦横サイズだけ合わせて表示している状態です。
重いです。
100枚くらいは表示したいのでなんとかASP.NET VB2005でサムネイルを作成したいのです。


魔界の仮面弁士  2008-05-28 03:26:18  No: 139790

表示する段階で逐次、サムネイルを作成していくのは効率が悪いので、
DB への登録時に、サムネイルの作成とサムネイルのパスの記録も
併せてやっておいた方が良いかも。

> ASP.NET VB2005でサムネイルを作成したいのです。
まずは、GetThumbnailImage メソッドを試してみるとか。


ひで  2008-05-29 01:06:51  No: 139791

登録時に、というのはいい案ですね。有難う御座います。
ただ、いろいろ検索してVB2005, ASP.NETでGetThumbnailを使う方法を探して試しているのですが、やはりうまく行きません。
たとえばMSではDim Image as New Bitmap("xx")とあるのですが、
import system.drawing.imageをしてもNew Bitmapと入れた時点でBitmap型が使えないとなってしまうのです。


YuO  2008-05-29 01:23:58  No: 139792

> import system.drawing.imageをしてもNew Bitmapと入れた時点でBitmap型が使えないとなってしまうのです。

何でSystem.Drawing.ImageクラスをImportしているのですか?
ImportsすべきはSystem.Drawing名前空間です。


ひで  2008-05-29 01:37:05  No: 139793

YuOさん、有難う御座います。
一つクリアです。。。。
見よう見まねで、何でも作ろうとしているとんでもない素人なもんで・・・・
まだまだこの先がムツカシソウなので引き続きお暇があればヒントをください。m(__)m


※返信する前に利用規約をご確認ください。




  


  このエントリーをはてなブックマークに追加