
假設我有一個名為1.png
當前的圖像
500px : height
1000px : width
我想將其調整為:
50px : height
100px : width
它必須以 PNG 格式輸出,而不是 JPG。一個例子將受到高度讚賞。
答案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
以這種方式更改圖像,您需要將 a 添加!
到幾何規範的末尾(並且,由於 是!
許多 shell 的特殊字符,因此您需要將其轉義為\!
):
$ 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