幅という 1 つのパラメーターを使用して、画像のサイズを新しいサイズに変更したいと考えています。
画像が横向きの場合、新しいサイズは、幅 = 幅、高さ = 幅に比例します。
画像が垂直の場合、新しいサイズは次のようになります: 高さ = 幅、幅 = 高さに比例します。
これを実装する方法はありますか?
ImageMagick と MagickNet ラッパーを使用しています。
幅という 1 つのパラメーターを使用して、画像のサイズを新しいサイズに変更したいと考えています。
画像が横向きの場合、新しいサイズは、幅 = 幅、高さ = 幅に比例します。
画像が垂直の場合、新しいサイズは次のようになります: 高さ = 幅、幅 = 高さに比例します。
これを実装する方法はありますか?
ImageMagick と MagickNet ラッパーを使用しています。
http://www.imagemagick.org/Usage/resize/の使用リファレンスから
convert org.jpg -resize widthxwidth final.jpg
例: widthxwidth は 256x256 にすることができます
縦横比は維持され、サイズ変更は 256 X 256 ピクセルの正方形の境界内で行われます。
上記ページより引用:
サイズ変更は、画像を要求されたサイズに合わせます。要求されたボックス サイズを満たしていません。
ここで何を意味するのか正確にはわかりません。あなたは幅を定義したいだけだと言いますが、「垂直」の場合、高さを幅に設定しますか? とにかく、幅だけを使用して何かのサイズを変更したい場合は、次の疑似コードを使用します。
ratio = width / height
newWidth = <the new width>
newHeight = newWidth / ratio
最長サイズを特定の値にリサイズしたい場合は、これを試してください:
ratio = width / height
if ratio > 1 // wider than it is tall
newWidth = <theValue>
newHeight = newWidth / ratio
else // taller than it is wide
newHeight = <theValue>
newWidth = newHeight * ratio