58 votes

Recadrage des images à l'aide des outils en ligne de commande uniquement

Je veux recadrer une image en utilisant outils en ligne de commande uniquement indiquant les pixels à recadrer pour les quatre directions (de la même manière que nous pouvons recadrer dans LibreOffice)

Par exemple :

crop image.jpg -top 5px -bottom 7px -right 14px -left 3px

Existe-t-il un tel outil (non GUI) ?

63voto

Maythux Points 77506

Voici une solution de contournement utilisant convert de l'image magick pack.

sudo apt-get install imagemagick

Pour une photo image.jpg

$ identify image.jpg 

image.jpg JPEG 720x482 720x482+0+0 8-bit DirectClass 100KB 0.000u 0:00.009

Comme indiqué ci-dessus, l'image d'entrée est de 720x482px.

Pour effectuer un recadrage, vous devez déterminer deux facteurs :

  1. point de départ du recadrage (comprend 2 directions)
  2. La taille du rectangle recadré (Ici vous pouvez inclure les autres directions)

Revenons maintenant à l'image image.jpg au-dessus, je veux recadrer :

  • haut 5px
  • bas 7px
  • droite 14px
  • gauche 3px

alors vous pouvez le faire avec ( width x height + left + top / w x h + l + t format) :

convert image.jpg -crop 703x470+3+5 output.jpg

Maintenant

$ identify output.jpg 

output.jpg JPEG 703x470 703x470+0+0 8-bit DirectClass 102KB 0.000u 0:00.000

27voto

Vous voulez supprimer les régions blanches, imagemagick a une commande spéciale pour cela :

convert -trim input.jpg output.jpg

6voto

Googly Googly Points 61

En crop La commande a besoin de 4 choses. Pour la comprendre, prenez l'image que vous voulez recadrer. Maintenant, imaginez que sur l'image, vous dessinez un rectangle de la taille que vous voulez conserver. La zone située en dehors de ce rectangle sera éliminée, recadrée. Le rectangle ne doit pas être incliné, c'est-à-dire que la partie supérieure doit être horizontale.

Maintenant, notez ces 4 choses :

  1. la largeur (W) en pixel du rectangle
  2. hauteur (H) du rectangle
  3. distance du côté vertical gauche du rectangle par rapport à la marge/fin gauche (L) de l'image
  4. distance entre le côté supérieur du rectangle et la marge supérieure/la fin de l'image (T).

Vous avez donc maintenant les valeurs W, H, L et T. Jusqu'ici tout va bien. Pour connaître les pixels, vous pouvez installer krule dans Ubuntu. Très utile.

Maintenant, ouvrez le terminal et allez dans le dossier où l'image est stockée. Utilisez la commande suivante et mettez les valeurs de W, H, L et T correctement :

convert input.jpg -crop WxH+L+T output.jpg

5voto

R2-D2 Points 203

Utilisez mogrify -crop <W>x<H>+<X>+<Y> <files> .

Attention : les fichiers sont écrasé sans préavis. Ajoutez le -path pour spécifier un répertoire de sortie afin d'éviter cela si nécessaire.

A titre d'exemple : mogrify -crop 256x256+10+5 images/*.jpg va recadrer chaque image dans le images en une image de 256x256 en commençant par 10 pixels du haut et 5 pixels du côté. Cela écrasera les anciennes images.

Si vous obtenez un Argument list too long due à la tentative de conversion de plusieurs images à la fois, il suffit de mettre le chemin de l'image entre guillemets simples pour empêcher bash de le développer : mogrify -crop 256x256+10+5 'images/*.jpg' (mogrify fera l'expansion elle-même)

3voto

M.Fooladgar Points 489

Vous pouvez utiliser la commande convert dans image magick pack.
Pour installer sudo apt-get install imagemagick o sudo yum install ImageMagick .
Ensuite, utilisez -crop geometry pour recadrer l'image. Pour d'autres lectures, lisez aquí

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X