web-dev-qa-db-fra.com

Comment redimensionner une image via le terminal?

J'ai Ubuntu 10.04. J'ai converti une image via un terminal à l'aide de la commande suivante:

convert myfigure.png myfigure.jpg

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

145

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 @ test )

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

Si vous voulez CLI seulement:

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:

Installez nautilus-image-converter

Sudo apt-get install nautilus-image-converter

Il ajoute deux éléments de menu contextuel dans Nautlius afin que vous puissiez cliquer avec le bouton droit de la souris et choisir "Redimensionner l'image" (l'autre "Rotation de l'image").

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

44
Maythux

Puisque Ubuntu est livré avec Python, vous pouvez également utiliser un script Python pour y parvenir avec un peu plus de contrôle sur ce qui se passe - voir this stackoverflow question pour des exemples de scripts. Ces exemples utilisent uniquement la bibliothèque standard.

Script n ° 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 (en tant que variable de largeur):

Script n ° 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 cela via 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 le script n ° 1:

python resizescript.py yourfilenamehere.jpg

Pour utiliser le script n ° 2:

python resizescript.py yourfilenamehere.jpg

Vous devez vous trouver dans le même répertoire que les fichiers image de ces deux scripts. Le premier réduit l'image à 128x128 pixels. Le second script fait 300 pixels de large et calcule la hauteur proportionnelle. Il s’agit plus d’une réponse Python, mais elle est effectuée techniquement dans l’ensemble du terminal.

3
freeworld

imgp est un utilitaire relativement nouveau qui redimensionne et fait pivoter les images. Il a plus de fonctionnalités que nautilus-image-converter.

0