Wie kann ich die Größe eines Bildes über das Terminal ändern?

Wie kann ich die Größe eines Bildes über das Terminal ändern?

Ich habe Ubuntu 10.04. Ich habe das Image über das Terminal mit dem folgenden Befehl konvertiert:

convert myfigure.png myfigure.jpg

Ich möchte jedoch die Höhe und Breite des konvertierten Bildes ändern. Gibt es eine Möglichkeit, dies zu tun?

Antwort1

Gleicher Befehl, mit einer zusätzlichen Option:

convert myfigure.png -resize 200x100 myfigure.jpg

oder

convert -resize 50% myfigure.png myfigure.jpg

Um die Größe mehrerer Dateien zu ändern, können Sie den folgenden Befehl versuchen (wie vorgeschlagen von@test30)

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

Antwort2

Wenn Sie nur die CLI möchten:

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

Wenn Sie die GUI ausprobieren möchten:

Installierennautilus-image-converter

sudo apt-get install nautilus-image-converter

Es fügt zwei Kontextmenüelemente in Nautlius hinzu, sodass Sie mit der rechten Maustaste klicken und „Bildgröße ändern“ auswählen können. (Das andere ist „Bild drehen“).

Sie können, wenn Sie möchten, ein ganzes Verzeichnis mit Bildern auf einmal erstellen und müssen dazu nicht einmal eine Anwendung öffnen.

Antwort3

imgpist ein relativ neues Dienstprogramm zum Ändern der Bildgröße und zum Drehen von Bildern. Es hat mehr Funktionen als Nautilus-Image-Converter.

Zum Beispiel:

imgp -x 1366x768 *

Antwort4

Da Ubuntu mit Python ausgeliefert wird, können Sie hierfür auch ein Python-Skript verwenden, das Ihnen etwas mehr Kontrolle über das Geschehen gibt - siehedieser StackoverflowFrage zu Beispielskripten. Diese Beispiele verwenden nur die Standardbibliothek.

Skript Nr. 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

Und noch ein Beispiel, bei dem Sie nur die Breite (als Breitenvariable) angeben müssen:

Skript Nr. 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) 

Nun, wie funktioniert das über das Terminal ...

sudo nano resizescript.py

Fügen Sie einen dieser Codeblöcke in den Texteditor ein. Drücken Sie Strg+x, um zu beenden (sagen Sie „Ja“, um die Änderungen zu speichern).

So verwenden Sie Skript Nr. 1:

python resizescript.py yourfilenamehere.jpg

So verwenden Sie Skript Nr. 2:

python resizescript.py yourfilenamehere.jpg

Sie müssen sich für beide Skripte im selben Verzeichnis wie die Bilddateien befinden. Das erste Skript verkleinert das Bild auf 128 x 128 Pixel. Das zweite Skript macht es 300 Pixel breit und berechnet die proportionale Höhe. Dies ist eher eine Python-Antwort, wird aber technisch vollständig über das Terminal durchgeführt.

verwandte Informationen