Script-Fu für Webentwickler

Für das Redesign einer Webseite benötige ich eine Menge an neuen Grafiken. Besonders zeitraubend und unmotivierend ist dabei die Erstellung von immer wiederkehrenden Grafiken wie z.B. Überschriften. Zur Erstellung der Grafiken nutze ich die freie Software GIMP. Damit ist es zwar nicht sonderlich schwierig professionelle Grafiken zu zaubern – zumal das Web voll von fantastischen Tutorials ist – aber die Motivation 20 ähnliche Grafiken zu erstellen ist schlichtweg nicht vorhanden.

Damit etwas klarer wird von welcher Art von Grafiken ich rede, hier ein Beispiel:

Hallo Welt mit GIMP und Script-Fu

Hallo Welt mit GIMP und Script-Fu

Anstatt “Hallo Welt!” benötige ich für jede Seite der Homepage eine Grafik dieses Typs, allerdings mit dem entsprechenden Titel der Seite, also z.B. “Neuigkeiten” oder “Termine”. Anstatt nun also für jede Seite 10 Minuten in GIMP zu klicken mustte eine andere Lösung her: Script-Fu!

Script-Fu ist ein integrierter Scriptinterpreter in GIMP. Die verwendete Sprache ähnelt LISP und heißt Scheme. Prinzipiell lässt sich jede erdenkliche Aktion die man über die GUI ausführen kann auch per Script ausführen. Vorweg, das Script für die automatisierte Erstellung des obigen Bilds hat mich knapp 3 Stunden gekostet. Wahrscheinlich hätte ich in dieser Zeit auch die benötigten Bilder manuell erstellen können. Bendenkt man aber, dass in der Zeit eine komplette Einarbeitung in Scheme enthalten ist, sehe ich großes Potential für weitere Features…

Ich möchte hier nicht jede Zeile des Scripts auflisten und erklären, das würde den Rahmen bei weitem sprengen, auch wenn das Script mit knapp 150 Zeilen inklusive Kommentaren auskommt. Wer Interesse an dem Script hat darf mir auch gerne eine Email schreiben. Besonders effektiv wird das Script durch den Aufruf via Kommandozeile, z.B. unter Windows:

./gimp-2.6.exe -i -c -b ‘(mericet-create-title “Hallo Welt!” “hello_world.png”)’ -b ‘(gimp-quit 0)’

… und fertig ist das Bild. Schön ist auch, dass ich mir nun die Archivierung der XCF Dateien, also der Rohgrafiken mit Layer Informationen sparen kann, die oftmals um ein vielfaches Größer sind als die resultierenden Grafiken. Es genügt das kleine schlanke SCM (Scheme) Script, welches sich obendrein natürlich auch viel effektiver mit Versionsverwaltungssystemen wie Git oder Subversion verwalten lässt.

Schlagworte: , , , ,

Kommentieren