Redimensiona imagens para um valor de altura específico no ImageMagick?

23

Eu procurei por isso e não consigo encontrar uma solução facilmente implementada.

Atualmente estou trabalhando em um aplicativo que lida com panoramas. Como eles saem do processo de lote de lote, as dimensões médias 18000x4000. Usando o ImageMagick, como posso reduzir essas imagens para um valor de altura específico, mantendo a proporção?

De acordo com o manual, a operação convert aceita a altura e a largura para redimensionar enquanto mantém a mesma proporção. O que eu gostaria é colocar 600 e 1000 na minha função de script de redimensionamento existente e ter uma imagem visualizável regular, bem como um tamanho reduzido.

    
por Jason 30.05.2012 / 13:46

2 respostas

32

De acordo com a documentação do ImageMagick , sugiro usar -geometry x600 , enquanto x600 significa que a nova imagem tem uma altura de 600 px com a mesma proporção da imagem antiga.

Para uma imagem única , pode executar:

convert input.png -geometry x600 output.png

Se você preferir converter todas as imagens de uma pasta em uma execução, alterne para ela (por exemplo, cd ~/Pictures/panoramas/ ) e use

mogrify -geometry x600 *.png

Mas tenha cuidado com isso, porque substitui os arquivos de imagem originais . Para evitar que você pudesse

  1. crie uma nova pasta ( mkdir ~/Pictures/panoramas/small )
  2. copie as imagens para esta pasta ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small ) e
  3. edite as imagens nesta nova pasta ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png ).
por Jakob 30.05.2012 / 14:20
2

para redimensionar todos os arquivos em uma pasta, pode usar algo como

  

mgrify -resize 800x1094! * jpg # manter a proporção da imagem

--- altere o tamanho e a extensão conforme adequado

    
por cipricus 07.06.2012 / 17:40