Skript-Fu: Mehrere Bilder skalieren
Sehr häufig will man eine große Anzahl von Bildern (z.B. Urlaubsfotos) auf eine kleine Größe bringen, z.B. auf 1024x768, um sie ins Web stellen zu können. Das geht natürlich auch mit einem Skript.
Verwendete GIMP-Version: 2.3.11. Das Tutorial ist in
4 Schritte unterteilt; ein durchschnittlicher Benutzer benötigt
dafür ca. 15 min. Bisher 63083 Mal gelesen. Kategorie:
Scripts & Programmierung, Schwierigkeit:

21 Kommentare wurden bisher geschrieben.
Dateien, die für dieses Tutorial benötigt werden:
- batch-resize-2.2.scm (batch-resize-2.2.scm)
- batch-resize-2.4.scm (batch-resize-2.4.scm)
Wichtige Links:
-
1
Zuerst sollte erwähnt werden, dass diese Aufgabe (mehrere Bilder automatisch verkleinern) auch ohne eigenes Skript-Fu gelöst werden kann. Dazu benötigt man ImageMagick, ein Programm, welches bei den meisten Linux-Distributionen mitgeliefert wird und über den Paketmanager (z.B. apt oder Synaptic bei Ubuntu) installiert werden kann.
ImageMagick stellt verschiedene Programme zur Verfügung, mit denen Bilder in verschiedenster Weise bearbeitet werden können. Mit Hilfe der Shell (hier: bash) können mehrere Bilder auf einmal bearbeitet werden.
Beispiel:
mkdir small
for f in *.jpg
do convert $f -resize 1024x768 small/$f.gif
done
Dieses Skript legt 1) ein Verzeichnis "small" an, geht 2) alle *.jpg-Dateien im aktuellen Verzeichnis durch und führt 3) für jede Datei das convert-Programm aus, der eine auf 1024x768 verkleinerte Version des Bildes im Verzeichnis "small" abelegt. -
2
Für echte GIMP-Benutzer ist es natürlich trotzdem erforderlich, dass auch im GIMP mehrere Bilder auf einmal verkleinert werden können.
Dazu kann man folgendes Skript-Fu verwenden:
(define (script-fu-batch-resize globexp newx newy)
(define (resize-img n f)
(let* ((fname (car f))
(img (car (gimp-file-load 1 fname fname))))
(gimp-image-undo-disable img)
(gimp-image-scale img newx newy 0 0)
(gimp-file-save 1 img (car (gimp-image-get-active-drawable img)) fname fname)
(gimp-image-delete img)
)
(if (= n 1) 1 (resize-img (- n 1) (cdr f)))
)
(set! files (file-glob globexp 0))
(resize-img (car files) (car (cdr files)))
)
; Im GIMP und im Menü registrieren
(script-fu-register "script-fu-batch-resize"
_"_Mehrere Bilder verkleinern..."
"Mehrere Bilder auf einmal auf die gleiche Größe bringen"
"Richard Hirner"
"2006, Richard Hirner"
"Sep 7, 2006"
""
SF-STRING "Zu konvertierende Dateien" "/pfad/zu/bildern/*.jpg"
SF-VALUE "Neue horizontale Größe" "1280"
SF-VALUE "Neue vertikale Größe" "1024")
(script-fu-menu-register "script-fu-batch-resize"
"<Toolbox>/Xtns/Misc")
Für GIMP 2.2 muss die Registrierung leicht geändert werden.
Die einzigen (für Programmierer) interessanten Stellen im Skript sind die GIMP-Funktion file-glob und die Scheme-Iteration der Liste durch die endstämmig-rekursive Funktion resize-img.
Um das Skript zu verstehen, sind Scheme-Grundlagen nötig; siehe auch das Tutorial "Skript-Fu-Einführung" (Link rechts oben). -
3
Am einfachsten ist es, die Datei batch-resize.scm-2.4.scm bzw. batch-resize-2.2.scm (Download-Links rechts oben) einfach herunterzuladen und in das GIMP-Skript-Verzeichnis zu kopieren. In Linux findet man dieses Verzeichnis im Home-Verzeichnis unter "~/.gimp-2.2" bzw "~/.gimp-2.3"; in Windows am besten ins globale Verzeichnis nach "Programme\Gimp-2.x\share\gimp\2.0\scripts"
Beim nächsten Start von GIMP bzw. nach einem "Skripte auffrischen" ist das Skript unter Xtns / Skript-Fu / Verschiedenes / Mehrere Bilder verkleinern... (2.2) bzw. Xtns / Verschiedenes / Mehrere Bilder verkleinern... (2.4) zu finden. -
4
Nun einfach den Pfad zu den Bildern und die gewünschte Größe eingeben und auf OK klicken.
Viel Spaß!
Dieses Werk unterliegt folgender Lizenz: Namensnennung-Keine kommerzielle Nutzung 3.0 Österreich






Verlinkungen (Pingbacks)
Kommentare
Hier können Sie Ihre Kommentare, Frage und Anregungen loswerden. Der Autor und die anderen Benutzer können Ihren Beitrag sehen und darauf antworten. Natürlich können Sie auch im Chat fragen.
Die Kommentare sind chronologisch geordnet.