Wie kann ich alle Bilder in einem Ordner auf die gleiche Breite skalieren?

97

Ich möchte alle Bilder in einem bestimmten Ordner auf dieselbe Breite skalieren (aber auf unterschiedliche, entsprechend skalierte Höhen). Wie kann ich dies mit einem GUI-basierten oder Befehlszeilentool tun?

Kann man für Bonuspunkte einschränken, welche Bilder basierend auf ihrer ursprünglichen Breite skaliert werden (dh nur Bilder mit einer Breite> x und / oder einer Breite <y skalieren)?

david.libremone
quelle
avconv kann dies über die CLI tun - Siehe: libav.org/avconv.html#scale-1
Elder Geek

Antworten:

152

Mit imagemagick ist das sehr einfach . Sie sollten es im Software Center installieren können. Ich würde es für die Stapelverarbeitung von Bildern vorschlagen.

Das Ändern der Stapelgröße ist unglaublich einfach (ich habe es mit Ubuntu 11.10 getestet). Verwenden Sie den folgenden Befehl, um die Größe jeder JPG-Datei auf 200 Pixel unter Beibehaltung des Seitenverhältnisses zu ändern:

$ convert '*.jpg[200x]' resized%03d.png

Sie können den Dateinamen mit der Option -set pflegen. Ex:

convert "images/*.jpg[250x]" -set filename:base "%[base]" "images/new_folder/%[filename:base].jpg"

Wenn Sie mehr Dateien haben, sollten Sie mit find verwenden

find /folder -iname '*.JPG' -exec convert \{} -verbose -set filename:base "%[base]" -resize 1920x1080\> "/folder/images/%[filename:base].JPG" \;

Dies kratzt nur die Oberfläche der Kraft von imagemagick. Die Größenänderung kann endlos angepasst werden . Für eine erweiterte Größenänderung müssen Sie die -resizeOption verwenden.

Sie können die Größenänderung auf das Verkleinern beschränken :

$ convert '*.jpg[300x>]' thumb-300-%03d.png

oder vergrößern :

$ convert '*.jpg[300x<]' thumb-300-%03d.png

In der Geometriedokumentation finden Sie weitere Optionen.

bandi
quelle
1
Warum JPG zu PNG?
JohnyTex
3
Die Erweiterungen .jpg und .png sind nur ein Beispiel für die Verwendung verschiedener Formate.
Bandi
Weitere Informationen zur Option -set : imagemagick.org/script/command-line-options.php ; -set <property-name> <value>legt im Grunde eine Eigenschaft fest; %<one-character>und %[<one-or-more-characters>]werden von Imagemagick zu ihrem Wert erweitert; Eigenschaften, mit denen der Ausgabedateiname programmgesteuert bestimmt wird, müssen als erstes verwendet werden. Daher müssen Sie filename:die baseEigenschaft, die den Bildpfad enthält, in eine filename:<something>Eigenschaft kopieren .
Marcotama
1
Vielen Dank für diesen Trick, ich wusste es nicht!
Marcotama
2
unbekannte Bildeigenschaft "% [base]"
Post Self
32

Für GUI ist Phatch "Ein Klick ist tausend Fotos wert" das Beste für solch einen schnellen Job. Es befindet sich bereits im Ubuntu-Repository.

sudo apt-get install phatch
  1. Skalieren & Speichern hinzufügen
  2. Stellen Sie die Skalierungs- / Größenänderungsoptionen ein
  3. Stellen Sie die Speicher- / Ausgabeoptionen ein
  4. Lauf
  5. Eingabeordner festlegen
  6. Klicken Sie zum Ausführen auf Batch

Bildbeschreibung hier eingeben Bildbeschreibung hier eingeben

user.dz
quelle
2
Für eine Gegenstimme wäre ein Beispiel, wie man die Aufgabe in der Frage tatsächlich erledigt, nett :) Aber danke für den Tipp, nettes Tool!
Jaywink
2
Dies funktionierte nicht auf meinem Computer (Ubuntu Mate 16.04). Die App blieb auf dem Startbildschirm
hängen
1
@GunithDevasurendra, versuchen Sie es über die Befehlszeile, um nach Fehlern zu suchen. Wenn Sie es nicht lösen konnten, schreiben Sie bitte eine andere Frage und fügen Sie diese Ausgabe hinzu.
user.dz
1
Tolles Werkzeug, ich habe es jahrelang benutzt. Leider ist es nicht gewartet und funktioniert in aktuellen Ubuntu-Versionen nicht. Hoffe, jemand kann den Code herausfiltern, um ihn zu reparieren.
Diego V
Auf Fedora ist es nicht dasselbe wie oben und hat keine solche Funktionalität
Vlad
29

Versuche dies:

sudo apt-get install gimp-plugin-registry

Dann öffne Gimp und öffne das Batch-Plugin in Filters > Batch > Batch Process.

Wählen Sie Ihre Bilder auf der InputRegisterkarte aus und definieren Sie die Größenänderung auf der überraschend benannten ResizeRegisterkarte.

Weitere Informationen finden Sie hier .

SirCharlo
quelle
21

Versuchen Sie den mogrifyBefehl von ImageMagick-Tools.

  • Geben Sie einen Pfad an, um die Ausgabe von den Originalen zu trennen
  • Geben Sie die gewünschte Breite oder Höhe des Vorschaubilds an, unter einem Beispiel für die Breite
  • so behältst du den originalen Dateinamen :-)

Beispiel:

$ mogrify -path small/ -auto-orient -thumbnail 300x *.jpg
miguelfg
quelle
1
Dies ist meiner Meinung nach die beste Antwort!
Tom
2
$ mogrify -path small / -resize 300x * .jpg
Iurie Malai
+1 und Sie können die Größe der längsten Seite ändern, unabhängig davon, ob das Bild im Hoch- oder Querformat
therobyouknow
8

Beantwortet und akzeptiert (und ich benutze ImageMagick), aber der Vollständigkeit halber ... Ich habe einen nicht-technischen Chef, der einen einfachen Viewer mit einigen grundlegenden Tools haben wollte und es musste GUI sein. Ich habe mich für gThumb entschieden .

In der Miniaturansicht sehen Sie ...

  • Wählen Sie alle Bilder aus, deren Größe Sie ändern möchten
  • Starten Sie die Größenänderungsfunktion (klicken Sie auf das Schraubenschlüsselsymbol> Bildergröße ändern ..)
  • Geben Sie eine neue Größe basierend auf Pixel oder Prozentsatz ein
  • Wählen Sie einen Ausgabeordner und los geht's.
Dennis
quelle
Zum Ändern der Größe ist es eine anständige Alternative zu Phatch, bis es auf 16.04 festgelegt ist.
Hastig Zusammenstellen
3

Für Batch - Skalierung von Bildern Ich habe bei vielen Paketen gesucht und fand schließlich eine mit einem nutzbaren Schnittstelle - converseen . Sobald Sie feststellen, dass die wichtigen Einstellungen im scrollbaren linken Fensterbereich etwas ausgeblendet sind, ist alles in Ordnung.
Ich bin mir nicht sicher, ob dies allen Anwendungsfällen der OPs entspricht, aber Sie müssen sich möglicherweise nicht die eigenwilligen Benutzeroberflächen von imagemagick oder phatch ansehen.
Seltsamerweise scheinen Fotoverwaltungspakete wie digikam, f-spot, fotoxx oder shotwell nicht die Notwendigkeit zu erkennen, Stapel von Bildern zu kopieren / in der Größe zu ändern, bevor sie zu Online-Diensten wie photobucket oder (gag) flickr hochgeladen werden. Diese Dienste möchten, dass wir die Dinge nur auf ihre Weise erledigen , sodass ich ihnen beim Sichern von Originalen nicht vertraue.

Mike
quelle