- - PR -
WebフォームImageコントロールにTifの画像を表示させたい
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-01-06 09:13
お世話になります。
WebフォームのImageコントロールを使用していますが、 もとになるイメージファイルがTifファイルです。 jpgなどのイメージファイルであれば、Imageコントロールが 使えることはわかったのですが、Tifファイルですと うまく処理できません。 Tifファイルをjpgなどのファイルに変換する処理をプログラムで 行うべきなのか、それとも、何か別のコントロールを探さないといけないのか 困っています。 方法がありましたら教えてください。 よろしくお願いします。 |
|
投稿日時: 2005-01-06 10:08
たしかtifには種類があって
一部しかブラウザ(IE)がサポートしていなかったと思います。 結局、ASP.NETはIMGタグを生成するにすぎないので、ファイル変換をする必要があると思います。 |
|
投稿日時: 2005-01-06 13:44
ありがとうございます。
やはり、ファイル変換が必要ですか。 Tiffの画像をJpegに変換する方法を教えてもらえないでしょうか。 よろしくお願いします。 |
|
投稿日時: 2005-01-06 14:08
禰宜と申します。
GDI+を利用する方法などもあるでしょうが、 下記のような方法でも可能かと思います。 #VB.NET Dim pb As System.Drawing.Image pb = System.Drawing.Image.FromFile("C:\TEST.TIFF") pb.Save("C:\TEST.JPEG", System.Drawing.Imaging.ImageFormat.Jpeg) pb.Dispose() |
|
投稿日時: 2005-01-06 14:33
ありがとうございます。
禰宜さんの方法で見事ファイルの変換ができました。 それで、さらに教えて欲しいのですが、 もとのTIFファイルのサイズがA2とかの場合だと、 ファイルの容量が大きいし、Web画面に表示される画像も大きすぎます。 サイズを指定(縮小)して変換することはできないでしょうか? よろしくお願いします。 |
|
投稿日時: 2005-01-06 14:36
http://www.atmarkit.co.jp/fdotnet/dotnettips/023resize/resize.html
|
|
投稿日時: 2005-01-06 15:12
にしざき様 助け舟を出して頂きありがとうございます。
画質を無視してよいのであれば、 #VB.NET Dim pb As System.Drawing.Bitmap pb = System.Drawing.Bitmap.FromFile("C:\TEST.tiff") Dim bm As Bitmap = New Bitmap(pb, pb.Width * 0.5, pb.Height * 0.5) pb.Dispose() bm.Save("C:\TEST.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg) bm.Dispose() こんな感じになるでしょうか。 Bitmapオブジェクトコンストラクタの第2引数、第3引数でサイズを指定しています。 詳しくは、にしざき様のリンク先や 「Graphicsオブジェクト」 「Bitmapオブジェクト」 「Imageオブジェクト」 などのHELPを参照ください。 |
|
投稿日時: 2005-01-06 15:15
にしざきさんありがとうございます。
教えて頂いたホームページを参考にして、コードを書いてみましたが、 A4サイズでは、やろうとすることはできたのですが、 もとの画像ファイルのサイズがA4を超える場合、 g.DrawImage(src, 0, 0, w, h) のところで、異常に時間がかかり最終的にエラーになってしまいます。 この関数を実行する上で何か制限事項があるのでしょうか? 調べてみたのですが、わからなかったので、よろしくお願いします。 コードは、以下のとおりにして動作をチェックしました。 Dim wc As System.Net.WebClient = New System.Net.WebClient Dim stream As System.IO.Stream = wc.OpenRead("C:\inetpub\wwwroot\test\TEST1.TIF") Dim src As Bitmap = New Bitmap(stream) stream.Close() Dim w As Integer = src.Width / 10 Dim h As Integer = src.Height / 10 Dim dest As Bitmap = New Bitmap(w, h) Dim g As Graphics = Graphics.FromImage(dest) g.DrawImage(src, 0, 0, w, h) dest.Save("C:\inetpub\wwwroot\test\TEST1.jpg", System.Drawing.Imaging.ImageFormat.Jpeg) |