gimpusers.de-Logo
Deutsche Version Englische Version

Nicht angemeldet

Registrieren! | Passwort vergessen?

CSS Pur! Ultimative Weblösungen mit Stil!

Gestaltet ein cooles Werbeplakat!

7. Gewinnspiel — Einsendungen von 8.Juli bis 2. August 2010.
Mehr Infos (News)
Übersicht und Details
Uploadet hier ab 8.Juli

Aktuelle Diskussionen (gimpforum.de)

  1. gimpforum.de | gestern 18:55
    Puppet warp für Gimp?
  2. gimpforum.de | gestern 18:23
    Bild als Formvorlage??
  3. gimpforum.de | gestern 12:52
    Kann Gimp aus 2 Bildern eine Animation(die Zwischenbilder berechnen) ertsellen?
  4. gimpforum.de | 30. Jul 2010 21:45
    Gesuch Free Grafiker gesucht -> Herrausforderung
  5. gimpforum.de | 30. Jul 2010 00:58
    Bild mit Farbmaske versehen

Aktuelle Forumsbeiträge (englisch)

Die Beiträge stammen aus den englischen Foren. Ihr könnt jederzeit zurück zur deutschen Version, indem ihr auf die deutsche Flagge ganz oben klickt.

  1. gimp-developer | gestern 23:40
    Plugged-in tools
  2. gimp-developer | gestern 23:22
    html layers
  3. gimp-developer | gestern 21:26
    Please fix Color and/or Value transfer mode
  4. gimp-user | gestern 15:15
    PDF editing in Gimp
  5. gimp-docs | gestern 15:12
    Where does the HTML documentation

Neuigkeiten von Dritten

Umfrage

Was haltet ihr von der Einbindung sozialer Netzwerke in Webseiten?

Finde ich sehr gut, es bringt die Nutzer zusammen

Für Communities macht es Sinn (Nachrichten über Twitter, Facebook-Gruppen usw), für andere Seiten nicht

Ein Hype, der bald wieder aufhören wird

Sowas macht mir Angst (Datenschutz, Privatsphäre, ...)

Anderes (bitte posten)

Ergebnisse ansehen

Zahlen

gimpusers.de RSS-Feed

RSS-Feed Retweet this!

16. Sep 2006 19:24, von redforce (Richard H.)

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 74307 Mal gelesen. Kategorie: Scripts & Programmierung, Schwierigkeit: 2 von 5

24 Kommentare wurden bisher geschrieben.

Dateien, die für dieses Tutorial benötigt werden:

Wichtige Links:

  1. 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. 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. 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.
    Screenshot of step 3
    Zum Vergrößern klicken
  4. 4
    Nun einfach den Pfad zu den Bildern und die gewünschte Größe eingeben und auf OK klicken.

    Viel Spaß!
    Screenshot of step 4
    Zum Vergrößern klicken

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.

1 Bewertung(en) mit durchschnittlich 5.0 von 5 Sternen.

Die Kommentare sind chronologisch geordnet.

  1. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sat Oct 28 19:30:36 2006 Petr Andreev, 28. Oct 2006 19:30

    Eine verbesserte Version des Skriptes, die verwahrt das Aspekt-Ratio:

    (define (script-fu-batch-resize globexp max-x max-y)
    (define (new-sizes img newx newy)
    (let* (
    (width (car (gimp-image-width img)))
    (height (car (gimp-image-height img)))
    (ratio (min (/ newx width) (/ newy height)))
    )
    (list (* ratio width) (* ratio height))
    )
    )
    (define (resize-img n f)
    (let* (
    (fname (car f))
    (img (car (gimp-file-load 1 fname fname)))
    (new-xy (new-sizes img max-x max-y))
    )
    (gimp-image-undo-disable img)
    (gimp-image-scale img (car new-xy) (cadr new-xy) 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)))
    )

  2. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri Jan 12 16:26:56 2007 float, 12. Jan 2007 16:26

    Hey,
    danke für das Script. Leider ruft es bei mir nur eine Fehlermeldung hervor.

    Ich nutze Gimp 2.2 unter Kubuntu.
    Die fehlermeldung lautet:

    "Skript-Fu Fehler beim Ausführen von
    (script-fu-batch-resize "/media/daten1/Eigene Dateien/Bilder/Geburtstag Jens 26 + Sanna 24 06.01.2007/*.jpg" 1280 1024)
    ERROR: Invalid type for argument 2 to gimp_file_load"

    Ich habe das Script 2.2 und 2.4 getestet.Beide Scripte gaben diesen Fehler aus.


    Zum Vergrößern klicken

  3. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri Feb 23 14:12:05 2007 Andi, 23. Feb 2007 14:12

    Habe das gleiche Problem wie float!
    Habe absolute und relative Pfadangaben probiert.

  4. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Wed Mar 7 22:07:22 2007 Steffen, 07. Mar 2007 22:07

    Hallo,

    unter Windows müsst Ihr statt "/pfad/zu/bildern/*.jpg"

    "\pfad\zu\bildern\*.jpg"
    notieren, dann geht es auch.

  5. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sun Apr 1 22:01:51 2007 stefan, 01. Apr 2007 22:01

    Hi,
    there is a small mistake in the shell script at the top example.

    Im angegebenen Beispiel ist ein kleiner Flüchtigkeitsfehler aufgetreten:
    =======
    Beispiel:
    mkdir small
    for $f in *.jpg
    do convert $f -resize 1024x768 small/$f.gif
    done
    ========
    for $f...ist so nicht möglich, die Variable "f" wird ja erst mit Inhalt gefüllt und ist daher zunächst nur mit "f" anzugeben, also:
    for f...

    ...wie gesagt, nur eine Kleinigkeit...
    Ich hab hier noch ein kleines praktisches Beispiel von mir hinzugefügt:

    me@bash:MeineBilder$ mkdir 640x400.img
    me@bash:MeineBilder$ for bild in *.JPG; do convert $bild -resize 640x480 640x400.img/$bild; done;

  6. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri Apr 20 11:28:13 2007 alex, 20. Apr 2007 11:28

    Hallo,

    ich benutze gimp-2.3 und das einlesen des verzeichnisses klappt einfach nicht. es kommt immer die meldung:

    Error while executing
    (script-fu-batch-resize "/home/alex/test/*.jpg" 1280 1024)

    Error: set!: unbound variable: files

    brauche hilfe!
    vielen dank schonmal!

  7. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri Jul 27 23:09:03 2007 Holger, 27. Jul 2007 23:09

    Danke an Euch beide Richard und auch Petr Andreev für das Script. Die Änderungen von Peter sind super!

    3 Wünsche - keine Ahnung, ob man das realisieren kann:
    1. Irfanviev macht es so, dass man wählen kann, wie lang die länge Seite des Fotos gesetzt wird. Das ist sehr komfortabel
    2. Wenn man einfache eine maximale Dateigröße oder den Komprimierungswert bestimmen könnte, wäre das auch super. z.B. alle Deteien max. 150 Kbyte.
    3. Schön wäre wenn man ein zweites Verzeichnis wählen könnte und die ursprünglichen Dateien erhalten blieben.

    Wie gesagt, das sind so meine Ideen. Soll keine Meckerei oder Gängelung sein. Wäre toll, wenn das eine oder andere irgendwie möglich wäre.
    Vielen dank an Alle! So macht Open Source Spaß

    Holger

  8. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Tue Aug 7 08:42:40 2007 Lucas, 07. Aug 2007 08:42

    Ist es möglich nur einen Wert zu vergeben und den anderen durch Gimp bestimmen zu lassen zwecks bei Behaltung der Seitenverhältnisse??

  9. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sat Nov 3 06:24:47 2007 Fleppi, 03. Nov 2007 06:24

    Bei Gimp 2.4.1 und dem Script für 2.4 bekomme ich ebenfalls die Fehlermeldung:
    Error: set!: unbound variable: files

  10. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sat Nov 3 06:52:57 2007 Fleppi, 03. Nov 2007 06:52

    So läuft es bei mir jetzt mit Gimp 2.4:


    (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)
    (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)))
    )
    (let* ((files (cadr (file-glob globexp 0))))
    (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" "D:\Fotos\\*.JPG"
    SF-VALUE "Neue horizontale Größe" "800"
    SF-VALUE "Neue vertikale Größe" "600")
    (script-fu-menu-register "script-fu-batch-resize"
    "<Toolbox>/Xtns/Misc")

  11. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Mon Jan 28 14:49:07 2008 Dschensen1, 28. Jan 2008 14:49

    Funktioniert, danke! was mich jedoch noch stört (ohne zu meckern): Die Originaldateien werden übschrieben. Kann man nicht den Dateinamen des verkleinerten Bildes mit einem Zusatz versehen, z.B. File2345.jpg (gross) und das verkleinerte Bild als File2345_k.jpg abspeichern.

    Ich finde die Idee auch gut, dass man nur eine Grösse angibt und das Seitenverhältnis beibehält. Ich habe nämlich im Verzeichnis der Urlaubsbilder Hochkantbilder seltsam gestaucht. Das hätte auch Vorteile für Bilder, aus denen man Ausschnitte gewählt hat und sich ein "krummes" Seitenverhältnis ergibt.

    Hat das schon mal jemand versucht?

  12. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Mon Mar 31 00:25:19 2008 Denny Schäfer, 31. Mar 2008 00:25

    Bekomme immer wenn ich das Script ausführen möchte

    Error: car: argument 1 must be: pair

    Benutze GIMP 2.4.5

  13. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Tue May 13 18:34:31 2008 KeonAthor, 13. May 2008 18:34

    Tach auch. Bekomme ebenfals den fehler Error: set!: unbound variable: files mit Gimp 2.4.5 mit dem script 2.4

  14. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Wed Jul 2 09:24:50 2008 Jens, 02. Jul 2008 09:24

    Ich bekomme ebenfalls die Fehlermeldung: Error: set!: unbound variable: files in der Version 2.4.6 unter Win XP Prof SP 3

  15. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Tue Aug 12 22:18:58 2008 Andy, 12. Aug 2008 22:18

    Habe ebenfalls das Problem:

    Fehler beim Ausführen von
    (script-fu-batch-resize "\\Temp\\*.jpg" 1280 1024)

    Error: set!: unbound variable: files


    Die Fotos liegen unter C:\Temp
    der eingegebene Pfad für die zu konvertierenden Dateien war \Temp\*.jpg

    Bin Windows XP user
    Gimpversion 2.4.6
    Skrip benutze ich batch-resize-2.4.scm

    könntet ihr mir weiterhelfen was ich falsch mache?

  16. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sat Nov 22 23:58:19 2008 Michael, 22. Nov 2008 23:58

    Unter Windows und Gimp 2.4.6 klappt es bei mir mit der Zeile:

    SF-STRING "Zu konvertierende Dateien" "C:\\Foto_resize\\*.jpg"

    Das Zeichen \ muß doppelt geschrieben werden!

  17. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sun May 10 18:12:40 2009 zwenny, 10. May 2009 18:12

    ich habe opensuse mit gimp 2.6.2, da funzt keines der scripte....keine fehlermeldung nix.... :-(

  18. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sun May 17 21:05:34 2009 fochat, 17. May 2009 21:05

    Jep, bei mir mit der Version 2.6.1 geht auch nix :(

  19. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sun Jun 14 20:54:37 2009 sowiso, 14. Jun 2009 20:54

    Hi, ich habe das Script mal für Gimp 2.6 angepasst:

    (define (script-fu-batch-resize globexp max-x max-y)
    (define (new-sizes img newx newy)
    (let* (
    (width (car (gimp-image-width img)))
    (height (car (gimp-image-height img)))
    (ratio (min (/ newx width) (/ newy height)))
    )
    (list (* ratio width) (* ratio height))
    )
    )
    (define (resize-img n f)
    (let* (
    (fname (car f))
    (img (car (gimp-file-load 1 fname fname)))
    (new-xy (new-sizes img max-x max-y))
    )
    (gimp-image-undo-disable img)
    (gimp-image-scale img (car new-xy) (cadr new-xy))
    (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)))
    )
    (let* ((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" "H:\\Bilder\\2009_05_08_Hochzeit\\Aufbereitet_DVD\\01_Standesamt\\to\\*.jpg"
    SF-VALUE "Neue horizontale Größe" "1920"
    SF-VALUE "Neue vertikale Größe" "1080")
    (script-fu-menu-register "script-fu-batch-resize"
    "<Toolbox>/Xtns/Misc")

  20. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Thu Jan 14 20:38:50 2010 dennis, 14. Jan 2010 20:38

    also bei mir funktioniert es nicht

  21. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri Apr 16 11:07:21 2010 Ralph Keller, 16. Apr 2010 11:07

    Gibt doch von MS ein Tool names Imageresizer, ist direkt im Kontex-Menü eingebunden.

  22. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Fri May 21 11:22:59 2010 moewe2, 21. May 2010 11:22

    Zu Beitrag 19:

    Für Gimp 2.6 muss die letzte Zeile lauten:
    "<Image>/Filters/Batch/")

    Gruß, moewe2.

  23. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Tue Jul 20 18:26:59 2010 Peter, 20. Jul 2010 18:26

    Beim Ausführen dieses Skriptes erhalte ich folgende Fehlermeldung:
    Fehler beim Ausführen von script-fu-batch-resize:

    Error: car: argument 1 must be: pair

    Kann mir bitte jemand weiterhelfen?

  24. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Tue Jul 20 18:29:17 2010 Peter, 20. Jul 2010 18:29

    sorry - Fehlerhafte Pfadangabe

Registrierte Benutzer können sich (rechts oben) anmelden und ihren geschützten Profilnamen verwenden, um Kommentare zu schreiben, sich bei Antworten benachrichtigen zu lassen und Bilder (z.B. ihre Version eines Effekts) an die Antworten anzuhängen.

Sind Sie Mensch oder Maschine?

Adobe® Photoshop® ist ein eingetragenes Warenzeichen der Adobe Systems, Inc. Linux ist ein Warenzeichen von Linus Torvalds. Ubuntu und Canonical sind eingetragene Warenzeichen der Canonical Ltd. | Uhrzeiten werden als CET / CEST angegeben | Impressum / Datenschutz | betrieben von bitfire it services (Mitglied der Echoplus ARGE)