IIS-オンザフライで画像のサイズを変更します

ほとんどすべてのWebプロジェクトで、さまざまなサイズのさまざまな画像を表示するタスクに直面しています。 簡単です-画像はコンテキストに必要なサイズで表示される必要があります。 異なるビューを持つカタログを開発している場合、そのようなコンテキストが多数存在する可能性があります。 また、ブラウザウィンドウのサイズに合わせて画像サイズを調整する必要がある可能性があります(たとえば、Picasa Web Albumsはこれを行います)。



この問題を完全に解決する方法について説明します。



何が欲しい



最も単純なケースでは、次の形式の画像のURLを使用します。

< img src =/ img / photo.jpg@100x100” / >


これにより、100 x 100の画像が表示されます。



実装



この問題を解決する最も直接的な方法は、ASP.NET用のモジュールです。このモジュールは、画像をその場でサイズ変更し、結果をキャッシュします。 当然、この問題に最初に参加したのは私ではないことに注意してください。 しかし、私が提案する解決策は、私の意見では、使用、理解、および修正が簡単です。



コード



したがって、すべてが機能するには、モジュールクラス自体とWeb.config



1行が必要Web.config







モジュールは小さいですが、ここでコードシートを盗むことはあまり意味がありません。

したがって、私はコードで要点を作成しました。 このコードをプロジェクトにコピーします(たとえば、 App_Code



)。



Web.config



短い設定になりました。 次の行を<modules>



または<httpModules>



追加します(ASP.NET Devopment Serverを使用している場合は後者)。

< 名前を 追加 = "ImageResizeModule" タイプ = "GarageTools.ImageResizeModule" />


すべて準備完了です。



使用する



ご想像のとおり、画像アドレスの末尾に@ width x heightを追加するだけで、サイト上の任意の画像を希望のサイズに変更できます。



しかし、さまざまな状況で役立つ他の修飾子がいくつかあります。 次の修飾子文字をURLの最後に追加できます。





たとえば、/ /img/aspnet.png@150x100sc.



/ /img/aspnet.png@150x100sc.



ように/img/aspnet.png@150x100sc.







微調整と修正



サーバーとクライアントのキャッシュ時間、一時ファイルを保存するディレクトリ、およびクラスヘッダーの結果の画像の圧縮率を構成できます。



モジュールコードは線形であり、簡単に変更できます。 たとえば、セキュリティのために、サイズ変更オプションに使用可能な値の限定リストを指定できます。 または、クライアントのキャッシュ設定を複雑にします(それ自体は常に創造性のための大きなスペースです)。



良い使い方をしてください



All Articles