
Suponha que eu tenha uma imagem chamada 1.png
que 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 convert
ou mogrify
doImagemMagicksuíte.
$ convert -resize 100x50 1.png 2.png
# or #
$ mogrify -resize 100x50 1.png
convert
recebe um nome de arquivo de saída separado; criando um arquivo separado.
mogrify
nã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 convert
a 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