
1.png
という名前の画像があるとします。
500px : height
1000px : width
サイズを次のように変更します:
50px : height
100px : width
JPG ではなく PNG 形式で出力する必要があります。例を示していただけると助かります。
答え1
私はconvert
またはmogrify
からイメージマジックスイート。
$ convert -resize 100x50 1.png 2.png
# or #
$ mogrify -resize 100x50 1.png
convert
別の出力ファイル名を取り、別のファイルを作成します。
mogrify
別の出力ファイル名を取りません。ファイルをその場で変更します。
答え2
これまでに得た答えは、ソース画像とターゲット画像のアスペクト比が同じであるため、この特定のケースでは有効です。ただし、任意のサイズに変更したい場合は、彼らは失敗するだろう:
$ file foo.png
foo.png: PNG image data, 1000 x 500, 8-bit/color RGB, non-interlaced
$ convert -resize 100x50 foo.png bar.png
$ file bar.png
bar.png: PNG image data, 100 x 50, 8-bit colormap, non-interlaced
上記のように、画像の比率を変更しない場合は、単純な変換は正常に機能します。しかし、比率を変更したい場合はどうすればよいでしょうか?
$ convert -resize 200x50 foo.png bar.png
$ file bar.png
bar.png: PNG image data, 100 x 50, 8-bit colormap, non-interlaced
convert
したがって、比率を変更する場合、上記のコマンドは失敗します。この方法で画像を強制的に変更するには、!
ジオメトリ仕様の末尾に を追加する必要があります ( は!
多くのシェルで特殊文字であるため、 としてエスケープする必要があります\!
)。
$ convert -resize 200x50\! foo.png bar.png
$ file bar.png
bar.png: PNG image data, 200 x 50, 8-bit colormap, non-interlaced
答え3
これには Imagemagick を使用します。
正しい使い方についてはマニュアルページを読んでください。パラメータを渡すことで動作するはずです。
convert 1.png -resize 50x100 1-resized.png
答え4
ImageMagick の代替として、定評のある netpbm があります。
pngtopnm input.png | pnmscale -reduce 10 | pnmtopng > output.png