私は自分のWebサイトでほとんど作業を行っていないので、画像のサイズを自動変更したいと思います。ただし、画像の幅や高さを変更しても、自動サイズ変更だけでなく、比例配分を維持します。新しいスペースを補うために、白い境界線を追加したいと思います。
私は過去に画像の仕事をしたことがありませんが、これにどのようにアプローチすればよいですか?
私は自分のWebサイトでほとんど作業を行っていないので、画像のサイズを自動変更したいと思います。ただし、画像の幅や高さを変更しても、自動サイズ変更だけでなく、比例配分を維持します。新しいスペースを補うために、白い境界線を追加したいと思います。
私は過去に画像の仕事をしたことがありませんが、これにどのようにアプローチすればよいですか?
幅が収まるように高さを計算し、それをコンテナの高さと照合します。それが高い場合は、高さを合わせるために幅を計算します。
newHeight = oldHeight * containerWidth / oldWidth;
if (newHeight <= containerHeight) {
newWidth = containerWidth;
} else {
newWidth = oldWidth * containerHeight / oldHeight;
newHeight = containerHeight;
}
これで、画像を中央に配置する場所を計算できます。
x = (containerWidth - newWidth) / 2;
y = (containerHeight - newHeight) / 2;
プライマリイメージをアップロードし、クエリ文字列を介してそのバージョンをリクエストするシングルソースイメージングについて話している場合は、私がお手伝いします。
私はhttp://imageresizing.net/の作者です。これは、アドオンプラグインによって資金提供されているオープンソースライブラリです。
必要な機能は無料のコアに含まれています。インストールして、任意の画像URLに?width = 100&height=100を追加するだけです。
ASP.NETから画像処理を行うのは非常に注意が必要です。Win / C ++の強力なバックグラウンドがない限り、実際にそれを行うべきではありません。.NETはSystem.Drawingインスタンスをガベージコレクションしません。