216 votes

Comment redimensionner une image via le terminal ?

J'ai Ubuntu 10.04. J'ai converti l'image via le terminal en utilisant la commande suivante :

convert myfigure.png myfigure.jpg

Mais je veux redimensionner la hauteur et la largeur de l'image convertie. Existe-t-il un moyen de le faire ?

298voto

Rinzwind Points 270388

Même commande, avec une option supplémentaire :

convert myfigure.png -resize 200x100 myfigure.jpg

ou

convert -resize 50% myfigure.png myfigure.jpg

Pour redimensionner plusieurs fichiers, vous pouvez essayer la commande suivante (comme suggéré par @test30 )

find . -maxdepth 1 -iname "*.jpg" | xargs -L1 -I{} convert -resize 30% "{}" _resized/"{}"

56voto

Maythux Points 77506

Si vous voulez uniquement le CLI :

sudo apt-get install imagemagick
mogrify -resize 320x240 Image.png 
mogrify -resize 50% Image.png
mogrify -resize 320x240 *.jpg

Si vous voulez essayer l'interface graphique :

Installer nautilus-image-converter

sudo apt-get install nautilus-image-converter

Il ajoute deux éléments de menu contextuel dans nautlius afin que vous puissiez faire un clic droit et choisir "Redimensionner l'image" (l'autre est "Faire pivoter l'image").

Vous pouvez faire un répertoire entier d'images en une seule fois si vous le souhaitez et vous n'avez même pas besoin d'ouvrir une application pour le faire.

4voto

Arun Points 131

imgp est un utilitaire relativement récent qui permet de redimensionner et de faire pivoter des images. Il a plus de fonctionnalités que nautilus-image-converter.

Par exemple :

imgp -x 1366x768 *

3voto

freeworld Points 41

Puisque Ubuntu est livré avec Python, vous pouvez également utiliser un script Python pour réaliser ceci avec un peu plus de contrôle sur ce qui se passe - voir ce stackoverflow question par exemple scripts. Ces exemples n'utilisent que la bibliothèque standard.

script #1

import os, sys
import Image

size = 128, 128

for infile in sys.argv[1:]:
    outfile = os.path.splitext(infile)[0] + ".thumbnail"
    if infile != outfile:
        try:
            im = Image.open(infile)
            im.thumbnail(size, Image.ANTIALIAS)
            im.save(outfile, "JPEG")
        except IOError:
            print "cannot create thumbnail for '%s'" % infile

Et un autre exemple où il suffit de spécifier la largeur (comme la variable width) :

script #2

from PIL import Image
import sys

filename = sys.argv[1:]
basewidth = 300
img = Image.open(filename)
wpercent = (basewidth/float(img.size[0]))
hsize = int((float(img.size[1])*float(wpercent)))
img = img.resize((basewidth,hsize), Image.ANTIALIAS)
img.save(filename) 

Maintenant, comment faire ça à travers le terminal...

sudo nano resizescript.py

Collez l'un de ces blocs de code dans l'éditeur de texte. Ctrl+x pour quitter (dites oui pour enregistrer les modifications).

Pour utiliser script #1 :

python resizescript.py yourfilenamehere.jpg

Pour utiliser script #2 :

python resizescript.py yourfilenamehere.jpg

Vous devez être dans le même répertoire que les fichiers images pour ces deux scripts. Le premier réduit l'image à 128x128 pixels. Le second scripts la rend large de 300 pixels et calcule la hauteur proportionnelle. Il s'agit plutôt d'une réponse en Python, mais tout se fait par le terminal techniquement.

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