3 votes

Coupez les 4 côtés de l'image avec Imagemagick

J'ai l'image suivante :

test PNG 1366x655 1366x655+0+0 8-bit sRGB 286KB 0.000u 0:00.000

et j'ai besoin de le couper comme ceci à partir du bord de l'image :

top: 140 px
bottom: 140 px
left: 180 px
right: 60 px

Existe-t-il une ligne de commande unique pour faire cela avec convert ?

5voto

that other guy Points 26297

Vous pouvez combiner deux -crop s :

                      #left,top      right,bottom
convert test.png -crop +180+140 -crop -60-140 cropped.png

2voto

Bonzo Points 2050

Une autre méthode utilisant V7

magick input -crop "%[fx:w-(180+60)]"x"%[fx:h-(140+140)]"+180+140 résultat

1voto

fmw42 Points 6778

La solution de that other guy est très astucieux. La méthode standard serait d'utiliser -chop. Mais cela signifie 4 appels, car il n'y a pas de symétrie dans les tailles à supprimer. Donc dans ImageMagick, en utilisant -chop, vous pourriez faire

convert text.png -gravity north -chop 0x180 -gravity east -chop 60x0 -gravity south -chop 0x140 -gravity west -chop 140x0 cropped.png

Ver http://www.imagemagick.org/Usage/crop/#chop

Voir aussi -raccord quand il y a une symétrie soit gauche/droite ou haut/bas ou tout autour. http://www.imagemagick.org/Usage/crop/#shave

1voto

fmw42 Points 6778

En vous basant sur la solution de Bonzo, vous pouvez faire quelque chose de similaire dans ImageMagick 6 en utilisant le recadrage de la fenêtre (syntaxe Unix) :

top=140
bottom=140
left=180
right=60
convert image.png -set option:distort:viewport "%[fx:w-$left-$right]x%[fx:h-$top-$bottom]+${left}+${top}" -filter point +distort SRT 0 +repage result.png

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X