Redimensionner les images à une valeur de hauteur spécifique dans ImageMagick?

27

J'ai cherché cela et je ne trouve pas de solution facile à mettre en œuvre.

Actuellement, je travaille sur une application qui traite des panoramas. Au fur et à mesure qu'ils sortent du processus de couture par lots, les dimensions moyennes sont de 18000x4000. À l'aide d'ImageMagick, comment puis-je réduire l'échelle de ces images à une valeur de hauteur spécifique tout en conservant les proportions?

Selon le manuel, l' convertopération prend en hauteur et en largeur pour être redimensionnée tout en conservant le même rapport hauteur / largeur. Ce que je voudrais, c'est mettre 600 et 1000 dans ma fonction de script de redimensionnement existante et avoir à la fois une image visible régulière et une taille réduite.

Jason
la source
IIRC utilise la plus petite dimension comme base pour l'opération de redimensionnement, c'est-à-dire que si vous spécifiez quelque chose comme 20000x600, il utilisera la hauteur 600 comme base pour calculer la largeur convertie afin de maintenir le rapport hauteur / largeur. Suis-je devenu clair?
devius
Doit-il être ImageMagick? Les commandes Phatch peuvent être scriptées, la commande 'fit' fait exactement ce que vous recherchez. photobatch.wikidot.com/action-fit
Veazer

Réponses:

37

Selon la documentation d'ImageMagick, je suggère d'utiliser -geometry x600, alors que cela x600signifie que la nouvelle image a une hauteur de 600 px avec le même rapport hauteur / largeur que l'ancienne image.


Pour une seule image, vous pouvez exécuter:

convert input.png -geometry x600 output.png

Si vous préférez convertir toutes les images d'un dossier en une seule fois, passez à celui-ci (c.-à-d. cd ~/Pictures/panoramas/) Et utilisez

mogrify -geometry x600 *.png

Mais soyez prudent avec cela, car il écrase les fichiers d'image d'origine . Pour éviter cela, vous pourriez

  1. créer un nouveau dossier ( mkdir ~/Pictures/panoramas/small)
  2. copiez les images dans ce dossier ( cp ~/Pictures/panoramas/*.png ~/Pictures/panoramas/small) et
  3. éditez les images de ce nouveau dossier ( cd ~/Pictures/panoramas/small && mogrify -geometry x600 *.png).
Jakob
la source
1

pour redimensionner tous les fichiers d'un dossier, vous pouvez utiliser quelque chose comme

mogrify -resize 800x1094! * jpg # garder le rapport hauteur / largeur de l'image

--- changer la taille et l'extension comme approprié


la source
1
Cela ne maintient pas le rapport hauteur / largeur de l'image source
Rob
1
@Rob si vous voulez conserver la ration d'aspect, laissez le "!" en dehors.
Erick
Merci @Erick, c'est assez vieux mais je faisais probablement remarquer que cette réponse ne répond pas correctement car l'OP voulait conserver le rapport d'aspect. : D
Rob