- - PR -
ASP.NETの画像表示
1
投稿者 | 投稿内容 | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-12-10 12:44
いつもお世話になっております。 WinAPで画像ファイルを取り込んで、SQL2005に保存し WebAPでSQL2005の画像データから画像を表示するプログラムを作成しました。 (画像を単純に表示する(バイナリ出力する)ASPXを作成しました) ページ内に、<img src="ImageOutput.aspx" /> と記述すると ページ内の指定した位置に該当する画像が表示されるのですが、 その画像の拡大表示(タグを使わないでページとして表示)しようとすると 画像ファイルによって表示できる/表示できない問題に直面しました。 画像ファイルのプロパティを調べてみると、 解像度の単位に差異がありました。 (解像度の単位=未設定→正常に表示 解像度の単位=2→正常に表示できない) この辺の問題で、なにかご指南を頂けますと非常に助かります。 環境は、Vista, VS2005-ASP.NET(VB), SQL Server 2005 で開発を行ってます。 | ||||||||||||
|
投稿日時: 2008-12-10 13:06
質問云々ではなく、一般的な内容としてですが、伝えたい内容が正しく 伝わっていないように思えます。 「タグを使わないでページとして表示」とは何か? 既存のページ内で img タグを使用して表示させるのではなく、ブラウザの URL 欄に aspx ファイルの名前を書いて表示させることだと思いますが そうであればそう正しく書かなければ理解されないと思います。 (これは私の仮説ですので、もしかしたら違うのかもしれませんし) 「画像ファイルのプロパティ」とは? 画像ファイルを右クリックしてプロパティを表示させることでしょうか。 これもそう書かなければいけないでしょう。 「解像度の単位」???? これは私もさっぱりわかりません。何を指しておられるのでしょうか。 ご自分は理解できていても、それが相手に伝わるとは限らないので できるだけ相手に伝わる(相手が理解できる)文章を書かなくては いけません。これは回答者はもちろんですが、質問者としても気をつけ なければいけないことだと思います。 (言葉のやりとりをする以上当然のことです) # WinAP とか WebAP とかの「オレオレ略語」もそうですけどね とりあえず気になったところと言えば Response.ContentType プロパティ には何を設定していますでしょうか。 この内容によっては、ブラウザがファイルの内容を正しく見てくれない 可能性があると思います。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2008-12-10 13:53
ぽぴ王子 レス&ご指摘ありがとうございます。
ぽぴ王子のご指摘の通り、 「タグを使わないでページとして表示」は 既存のページ内で img タグを使用して表示させるのではなく、 ブラウザの URL 欄に aspx ファイルの名前を書いて表示させることです。 URL に aspx を書いて表示させると、「x」の表示だけされている状態で、 画像として認識されていない感じです。 Response.ContentType プロパティには、image/jpeg を設定してます。 (Response.ContentType = "image/jpeg") また、「解像度の単位」ですが、 画像ファイルを右クリックしてプロパティ画面からの詳細タブの中にある 解像度の単位です。 ※このプロパティは、Vistaは表示されますが XP は表示されないようです。 ファイル自体に問題があるのかと思い、 正常に表示できるファイルと正常に表示できないファイルのプロパティを 確認したところ、「解像度の単位」に差異があった事から記載させて頂きました。 補足ですが、 SQL Server の画像データ用項目は、image型で定義してまして image型項目からバイナリ情報を取得して、Response.BinaryWrite(b_Array)で 出力しています。 伝わりにくい表現で申し訳ありませんが、よろしくお願いします。 | ||||||||||||
|
投稿日時: 2008-12-10 14:04
aspx 経由で参照できるかの検証の前に、まずは画像ファイルを直接参照 (もちろんブラウザで) できるかを検証してみてはいかがでしょうか?
_________________ C#と諸々 | ||||||||||||
|
投稿日時: 2008-12-10 14:54
よこけん様 レスありがとうございます。
> aspx 経由で参照できるかの検証の前に、まずは画像ファイルを直接参照 > (もちろんブラウザで) できるかを検証してみてはいかがでしょうか? なんとビツクリです。。。 IE7で画像ファイルを直接参照してみましたが、正常に表示されませんでした。(同じ現象) Firefoxも同様に正常に表示されずに、「画像ファイルxxxは壊れているため、表示できませんでした」のエラーが表示されます。 Operaでは、問題なく表示できました。 そうすると、ASP.NETの問題ではなく、ブラウザの問題と言う事になりそうですね。 | ||||||||||||
|
投稿日時: 2008-12-10 15:27
ありがとうございます。実はこのあたり、密かに疑っていました。 (未設定なのではないか?とか) 正しい値が設定されているようなので、問題はここではなさそうですね。
これは失礼しました。自 PC は WindowsXP なので、表示されていなかった ようです。
このあたりを総合すると、ブラウザの問題…というか、ブラウザに出力して いるデータに問題があるのかもしれません。 ブラウザに問題があるとすると、普通に画像を表示させたときも同様の問題が 出てきそうです。 ちょっと難しいかもしれませんが、パケットキャプチャソフトなどを使用して 単純にイメージファイルを表示した場合と、aspx ファイルとして表示した場合 の差異を比べてみてはどうでしょうか。 自分は Wireshark などを使用しています。 http://ja.wikipedia.org/wiki/Wireshark _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||||||
|
投稿日時: 2008-12-10 18:13
バッファをクリアせずに書き出しているとか?
| ||||||||||||
|
投稿日時: 2008-12-10 22:13
3 点程お聞きします。
1. 画像のフォーマット (jpeg とか png とか) は何ですか? (正常な画像も同じフォーマットですか?) 2. Windows 付属のビューアやペイントで開けますか? 3. .NET Framework の System.Drawing.Image クラスの FromFile メソッドで読み込めますか? _________________ C#と諸々 |
1