この問題を完全に解決する方法について説明します。
何が欲しい
最も単純なケースでは、次の形式の画像の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の最後に追加できます。
- s-必要なサイズよりも小さい場合、モジュールは画像を拡大しません。
- c-モジュールは、結果の画像のサイズが厳密に必要なサイズであることを保証します-必要に応じて、水平または垂直に白いフィールドを追加します。
- p-モジュールはJPEGではなくPNGを返します。
たとえば、/
/img/aspnet.png@150x100sc.
/
/img/aspnet.png@150x100sc.
ように
/img/aspnet.png@150x100sc.
微調整と修正
サーバーとクライアントのキャッシュ時間、一時ファイルを保存するディレクトリ、およびクラスヘッダーの結果の画像の圧縮率を構成できます。
モジュールコードは線形であり、簡単に変更できます。 たとえば、セキュリティのために、サイズ変更オプションに使用可能な値の限定リストを指定できます。 または、クライアントのキャッシュ設定を複雑にします(それ自体は常に創造性のための大きなスペースです)。
良い使い方をしてください