私はこの例に従っていました http://cubiq.org/create-fixed-size-thumbnails-with-imagemagick そしてそれは私がイメージでやりたいことですが、背景の残り(つまり、白い境界線)。これを行う方法はありますか?おそらく白い背景を切り抜く方法はありますか?これを行う別の方法はありますか?サイズ変更は比例する必要があるため、幅のサイズ変更の制限や高さの制限を設定するだけでなく、画像のサイズを比例的に変更します。
リンク先の例では、次のコマンドを使用しています。
mogrify \
-resize 80x80 \
-background white \
-gravity center \
-extent 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
まず、mogrify
は少し危険です。オリジナルをインラインで操作し、オリジナルを上書きします。何かがうまくいかない場合、あなたはあなたのオリジナルを失い、間違った結果で立ち往生しています。ただし、あなたの場合、-path thumbs
はこの危険を軽減します。これは、結果がサブディレクトリthumbsに書き込まれるようにするためです。
別のImageMagickコマンドconvert
は、オリジナルを保持し、mogrify
と同じ操作を行うことができます。
convert \
input.jpg \
-resize 80x80 \
-background white \
-gravity center \
-extent 80x80 \
-quality 75 \
thumbs/output.jpg
同じ結果ですが、白いキャンバスの拡張機能だけではありません(元々は結果を正方形の80x80画像にするために追加されました)が必要な場合は、-extent 80x80
パラメーター(-background white
およびgravity center
も不要です):
convert \
input.jpg \
-resize 80x80 \
-quality 75 \
thumbs/output.jpg
または
mogrify \
-resize 80x80 \
-format jpg \
-quality 75 \
-path thumbs \
*.jpg
これは、すべてを1920xにバッチサイズ変更し、アスペクト比を維持するたびに使用するコマンドです。
mogrify-path。 -サイズ変更1920x1920-format "_resized.jpg" -quality 70 * .jpg
これが古いスレッドであることはわかっていますが、-writeフラグと-setフラグを使用することで、元のファイルを上書きせずに同じディレクトリ内のファイルに書き込むことができます。
mogrify -resize 80x80 \
-set filename:name "%t_small.%e" \
-write "%[filename:name]" \
*.jpg
http://imagemagick.org/script/escape.php に記載されているように、%tは拡張子のないファイル名で、%eは拡張子です。したがって、image.jpgの出力はサムネイルimage_small.jpgになります。