Vollständige Version anzeigen : mit gimp 2.4 auf der shell bilder bearbeiten
Hallo,
normalerweise bin ich im debianforum unterwegs, aber jetzt dachte ich, ich frage mal besser die Spezialisten :-)
Ich habe folgendes Verständnisproblem welches sich auch bislang nicht durch intensives googlen erhellen ließ:
Ich möchte eine handvoll Bilder auf der shell in einem Rutsch (oder zumindest erstmal eines, den "Rutsch" baue ich mir dann selber) in SW-Bilder umwandeln, und das ausdrücklich mit Gimp2.4 (nicht mit imagemagick/convert, wie das geht ist mir klar)
Ich möchte hierfür im Prinzip folgenden Menü-Befehl verwenden:
Farben -> Entsättigen -> Helligkeit
Der Befehl (oder das Modul?) lautet vermutlich original: gimp-desatuarate-full
Leider gelingt es mir nicht Gimp auf der shell die entsprechenden Parameter zu übergeben. Ich bekomme nur (für mich nichtssagende) Fehlermeldungen, wie z.B bei diesen Testscript hier:
Code: $ gimp -i -b '(simple-unsharp-mask "bild.png" 5.0 0.5 0)' -b '(gimp-quit 0)'
Kein Interpreter angegeben, es wird der Standardinterpreter »plug-in-script-fu-eval« verwendet.
batch command: experienced an execution error.
Kann mich ein Wissender bitte mal auf die richtige Bahn schicken?
Danke und Gruß,
Becke
[hans@rosi ~]$ gimp --help
Aufruf:
gimp [OPTION...] [DATEI|URI...]
GNU Image Manipulation Program
Hilfeoptionen
-?, --help Hilfeoptionen anzeigen
--help-all Alle Hilfeoptionen anzeigen
--help-gtk GTK+-Optionen anzeigen
Anwendungsoptionen
-v, --version Versionsinformationen anzeigen und Programm beenden
--license Lizenzinformationen anzeigen und Programm beenden
--verbose Ausführlicher verhalten
-n, --new-instance Eine neue GIMP-Instanz starten
-a, --as-new Bilder als neu öffnen
-i, --no-interface Ohne Benutzeroberfläche starten
-d, --no-data Keine Pinsel, Muster, Farbverläufe usw. laden
-f, --no-fonts Keine Schriften laden
-s, --no-splash Kein Startfenster anzeigen
--no-shm Keinen gemeinsam genutzten Speicher zwischen GIMP und den Modulen verwenden
--no-cpu-accel Keine speziellen Prozessorbeschleunigungen verwenden
--session=<name> Ein alternatives Sitzungsprofil verwenden
-g, --gimprc=<filename> Ein alternatives Benutzerprofil verwenden
--system-gimprc=<filename> Ein alternatives Systemprofil verwenden
-b, --batch=<command> Auszuführender Stapelbefehl (kann mehrfach verwendet werden)
--batch-interpreter=<proc> Die Prozedur zum Abarbeiten von Befehlsabfolgen
-c, --console-messages Warnungen auf der Kommandozeile anstatt in einem Dialogfensters ausgeben
--pdb-compat-mode=<mode> PDB-Kompatibilitätsmodus (off|on|warn)
--stack-trace-mode=<mode> Fehlersuche beim Absturz (never|query|always)
--debug-handlers Aktiviert Fehlersuchroutinen für nicht-schwerwiegende Signale
--g-fatal-warnings Alle Warnungen als kritisch einstufen
--dump-gimprc Eine gimprc-Datei mit den Standardeinstellungen ausgeben
--display=ANZEIGE X-Anzeige, die verwendet werden soll
Ich denke die Optionen --batch und --no-interface sollten weiterhelfen
Hallo Hans,
vielen Dank für die Antwort.
Das wußte ich schon, aber wie genau kann ich einen Befehl (Modul? Filter?) auf beispielsweise bild.png anwenden?
Wo finde ich heraus welche Optionen der entsprechende Filter erwartet oder ermöglicht?
Wie kann ich also ganz konkret gimp-desatuarate-full auf bild.png anwenden?
Was mir fehlt ist eher der grundlegende Aufbau einer solchen Befehlszeile...
Gruß,
Becke
Ich habe das mal analog zu http://www.gimp.org/tutorials/Basic_Batch/ versucht. Rausgekommen ist
(define (simple-grayscale filename)
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE filename filename)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-image-convert-grayscale image)
(gimp-file-save RUN-NONINTERACTIVE image drawable filename filename)
(gimp-image-delete image)))
und
gimp -i -b '(simple-grayscale "foo.jpg")' -b '(gimp-quit 0)'
Eventuell könnte man das auch ohne das Script machen und alles in der Shell angeben, aber so kannst du zumindest mal anfangen.
Vielen Dank, das werde ich mir anschauen! :)
Gruß,
Becke
Hallo houz,
dank deiner Hilfe kam ich ein riesiges Stück voran.
Ich konnte die Funktion verwenden:
entsaettigen.scm:
(define (entsaettigen infile outfile desaturate-mode)
(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE infile infile)))
(drawable (car (gimp-image-get-active-layer image))))
(gimp-desaturate-full drawable desaturate-mode)
(gimp-file-save RUN-NONINTERACTIVE image drawable outfile outfile)
(gimp-image-delete image)))$ gimp -i -b '(entsaettigen "infile.tif" "outfile.tif" 0)' -b '(gimp-quit 0)'Oder als autonomes shell-script:
#!/bin/bash
gimp -i -b '(define (testfunktion infile outfile desaturate-mode)(let* ((image (car (gimp-file-load RUN-NONINTERACTIVE infile infile)))(drawable (car (gimp-image-get-active-layer image))))(gimp-desaturate-full drawable desaturate-mode)(gimp-file-save RUN-NONINTERACTIVE image drawable outfile outfile)(gimp-image-delete image))) (testfunktion "infile.tif" "outfile.tif" 2)' -b '(gimp-quit 0)'Jetzt kann ich mich auf die Feinheiten konzentrieren ;)
Gruß,
Becke
vBulletin® v3.8.2, Copyright ©2000-2013, Jelsoft Enterprises Ltd.