Como usar a conversão do ImageMagick para redimensionar uma imagem, adicionando letterboxing para produzir um resultado de tamanho fixo?

1

Tenho algumas imagens de tamanho arbitrário para as quais quero produzir miniaturas de 800x600 de tamanho fixo, que mantêm a proporção da imagem original e adicionam o letterbox branco para compensar o restante do espaço. Eu gostaria que o letterbox fosse o mínimo possível, o que significa que o processo faria o seguinte:

  • escolha o eixo que for maior
  • se x for maior, dimensione a imagem (mantendo a proporção) para que o novo x seja 800.
  • se y for maior, dimensione a imagem (mantendo a proporção) para que o novo y seja 600.
  • o resultado, neste ponto, não será de 800x600 (a menos que o original tenha sido exatamente a proporção 4: 3), então centralize o resultado em um retângulo de 800x600 e adicione um fundo branco.

Eu posso fazer os 3 primeiros passos com convert -resize 800x600 $input $output , então eu suponho que eu poderia sobrepor isso em cima de outra imagem usando alguma outra ferramenta imagemagick, mas seria ótimo se eu pudesse fazer isso em um único hit. Alguém sabe se isso é possível?

    
por Max Williams 29.02.2016 / 17:48

1 resposta

2

Na verdade, acabei de descobrir: ele exige uma imagem branca de 800 x 600 para mesclar, mas tudo bem.

convert ~/white.jpg ~/input.png  -resize 800x600 -gravity center -composite ~/output.jpg

Se houver uma opinião geral de que postar uma pergunta e depois respondê-la por mim mesmo é uma perda de tempo, fico feliz em excluir a pergunta.

    
por 29.02.2016 / 18:04