gimpusers.de-Logo
Deutsche Version Englische Version

Nicht angemeldet

Registrieren! | Passwort vergessen?

CSS Pur! Ultimative Weblösungen mit Stil!

Aktuelle Diskussionen (gimpforum.de)

  1. gimpforum.de | gestern 21:18
    Dateiformate
  2. gimpforum.de | gestern 18:00
    Mac - Snow Leopard 10.6.2 - Pinselspitzen, animiert, Problem bei Speichern/ Benennen
  3. gimpforum.de | gestern 12:40
    Nur Hintergrund entfärben?
  4. gimpforum.de | gestern 10:19
    Bild nahtlos kacheln
  5. gimpforum.de | gestern 00:03
    Mein Radierer spinnt!?!

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 | heute 03:24
    GIMP distributing sRGB profiles: license issues?
  2. gimp-user | heute 03:21
    ?? Status of remembering Layers setting for Canvas Resizing -- in most recent version
  3. gimp-developer | heute 03:15
    Adding ability to reverse curves dialog
  4. gimp-user | heute 01:59
    Can the Curves dialog be reversed?
  5. gimp-developer | gestern 23:54
    Paint Dynamics in git version

Neuigkeiten von Dritten

Umfrage

Würde es euch gefallen, wenn man sich bei gimpusers auch per Google/Yahoo/MSN-Account (OpenID) einloggen könnte?

Klar, ich finde einen (OpenID-)Login für mehrere Seiten schon praktisch

Ich habe (noch) keinen Bedarf danach, könnte es mir aber nützlich vorstellen

Mir ist es egal

Niemals, OpenID widerspricht meinem Gedanken von Datenschutz und Privatsphäre!

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

21 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.

Die Kommentare sind chronologisch geordnet.

  1. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Sam 28 Okt 2006 19:30:36 CEST Petr Andreev, 28. Okt 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 Fre 12 Jän 2007 16:26:56 CET float, 12. Jän 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 Fre 23 Feb 2007 14:12:05 CET 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 Mit 07 Mär 2007 22:07:22 CET Steffen, 07. Mär 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 Son 01 Apr 2007 22:01:51 CEST 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 Fre 20 Apr 2007 11:28:13 CEST 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 Fre 27 Jul 2007 23:09:03 CEST 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 Die 07 Aug 2007 08:42:40 CEST 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 Sam 03 Nov 2007 06:24:47 CET 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 Sam 03 Nov 2007 06:52:57 CET 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 28 Jän 2008 14:49:07 CET Dschensen1, 28. Jän 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 31 Mär 2008 00:25:19 CEST Denny Schäfer, 31. Mär 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 Die 13 Mai 2008 18:34:31 CEST KeonAthor, 13. Mai 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 Mit 02 Jul 2008 09:24:50 CEST 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 Die 12 Aug 2008 22:18:58 CEST 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 Sam 22 Nov 2008 23:58:19 CET 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 Son 10 Mai 2009 18:12:40 CEST zwenny, 10. Mai 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 Son 17 Mai 2009 21:05:34 CEST fochat, 17. Mai 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 Son 14 Jun 2009 20:54:37 CEST 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 Don 14 Jän 2010 20:38:50 CET dennis, 14. Jän 2010 20:38

    also bei mir funktioniert es nicht

  21. http://www.gimpusers.de/tutorials/script-fu-batch-resize.html Mit 10 Mär 2010 01:18:10 CET Orbizezex, heute 01:18

    Sorry for choosing this to leave a offer for all about dizziness with zoloft [url=http://www.anobii.com/lasixonline/] weight loss with lasix [/url] lasix medication side effects contraindications lasix and heart surgery [url=http://www.anobii.com/levitraonline/] levitra buy levitra online viagra [/url] ortho tri-cyclen levitra levitra best price levitra online [url=http://www.anobii.com/propeciaonline/] pill cutter propecia dosage [/url] acne cause does propecia pill price propecia [url=http://www.anobii.com/zithromaxonline/] zithromax pediatric doses [/url] zithromax syphilis dosage zithromax prescription austria [url=http://www.anobii.com/zoloftonline/] effexor verses zoloft [/url] pharmacology zoloft antidepressants zoloft and id

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)