Como redimensionar um arquivo PNG na linha de comando?

Como redimensionar um arquivo PNG na linha de comando?

Suponha que eu tenha uma imagem chamada 1.pngque atualmente está

500px : height
1000px : width

Quero redimensioná-lo para:

50px : height
100px : width

Deve ser produzido em formato PNG, não JPG. Um exemplo seria muito apreciado.

Responder1

eu usaria convertou mogrifydoImagemMagicksuíte.

$ convert -resize 100x50 1.png 2.png

# or #

$ mogrify -resize 100x50 1.png

convertrecebe um nome de arquivo de saída separado; criando um arquivo separado.
mogrifynão utiliza um nome de arquivo de saída separado; modificando o arquivo no lugar

Responder2

As respostas que você obteve até agora funcionarão neste caso específico porque as imagens de origem e de destino têm a mesma proporção. No entanto, se você quiser mudar para um tamanho arbitrário,eles vão falhar:

$ 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

Como você pode ver acima, a conversão simples funciona bem quando não altera as proporções da imagem. Mas e se você quiser mudá-los?

$ convert -resize 200x50 foo.png bar.png
$ file bar.png 
bar.png: PNG image data, 100 x 50, 8-bit colormap, non-interlaced

Assim, ao alterar as proporções, o comando acima falha. Para forçar converta alteração de uma imagem desta forma, você precisa adicionar um !ao final da especificação da geometria (e, como !é um caractere especial para muitos shells, você precisa escapá-lo como \!):

$ convert -resize 200x50\! foo.png bar.png
$ file bar.png 
bar.png: PNG image data, 200 x 50, 8-bit colormap, non-interlaced

Responder3

Use o Imagemagick para isso.

Leia a página de manual para uso correto, mas deve funcionar passando parâmetros, algo como

convert 1.png -resize 50x100 1-resized.png

Responder4

Uma alternativa ao ImageMagick é o venerável netpbm:

pngtopnm input.png | pnmscale -reduce 10 | pnmtopng > output.png

informação relacionada