Es werden Bilder in einem bestimmten Seitenverhältnis benötigt. Die Vorlagen sind Bilddateien im Quellverzeichnis . Aus jedem dieser Bilder ist ein rechteckiger Ausschnitt auszuwählen, der in dem Ergebnis-Bild enthalten sein muss. Der kleinste „Rahmen” mit dem gewünschten Seitenverhältnis bestimmt die Größe des Ziel-Bildes.dir-in
Normalerweise wird der Rahmen so über das Quell-Bild gelegt, dass er den Ausschnitt und eine mölichst große Fläche des Quell-Bildes überdeckt. Falls der Rahmen das Quell-Bild überragt, wird er mit einem Paar von Rändern in der „durchschnittlichen” Farbe des Ausschnitts ausgefüllt.
Manchmal ist des besser, den Ausschnitt mit einem Paar von Rändern in der durchschnittlichen Farbe bis zur Rahmengröße zu erweitern, ohne den Ausschnitt des Quell-Bildes zu erweitern.
Anschließend muss das Bild manchmal noch um 90, 180 oder 270 Grad gedreht werden.
Ich benutze Gimp, um den Ausschnitt und die weitere Verarbeitung festzulegen. Die Prozedur script-fu-de-herbaer-selinfo-dir zeigt nacheinander alle Bilder in einem Quell-Verzeichnis an. Ich wähle den Ausschnitt und mit einigen Tastenkombinationen die weitere Verarbeitung des Bildes.
Gimp erzeugt zu jedem Bild eine Scheme-Datei (Info-Datei) mit den nötigen Daten für die weitere Verarbeitung. Die Ziel-Bilder erstelle ich mit ImageMagick, das besser für die automatische Verarbeitung geeignet ist.
Die Prozedur script-fu-de-herbaer-selinfo-dir erwartet die folgenden Parameter:
dir-in - Quell-VerzeichnisDer Pfad des Verzeichnisses, in dem die Bilddateien liegen, ohne einen abschließenden Schrägstrich.
dir-out - Ziel-VerzeichnisDer Pfad des Zielverzeichnisses ohne einen abschließenden Schrägstrich. Im Verzeichnis dir-out wird zu einem Bild eine Datei dir-in/NAME.jpg mit den Daten eines Bildausschnitts gespeichert. Die Verzeichnisse NAME.scmdir-in und dir-out können gleich sein.
Die erste Bilddatei im Quell-Verzeichnis dir-in wird geöffnet. Sie können einen Ausschnitt wählen und mit Tastenkombinationen die weiteren Verarbeitungsschritte wählen. Die Tastenkombination Ctrl+Alt+W speichert die Info-Datei, falls es ein Bildausschnitt gewählt ist. Sie schließt das Bild und öffnet das nächste Bild im Quell-Verzeichnis, falls es noch ein Bild gibt.
Die Dateien process-dir.scm (Quelle) und selinfo-dir.scm sind in ein Gimp-Skript-Verzeichnis (bei mir ~/.config/GIMP/2.10/scripts) zu kopieren. Beim Start von Gimp werden sie automatisch geladen.
Wenn die Prozeduren das erste Mal geladen sind, sollten die Tastenkombinationen registriert werden.
Zu jedem Bild, aus dem ein Ausschnitt gewählt wird, wird eine *.scm-Datei (Info-Datei) erstellt mit den Daten zur weiteren Verarbeitung des Bildes. Sie hat den folgenden Aufbau:
(name "FILENAME" img-sizeWIDTHHEIGHTsel-offsetXYsel-sizeSELWIDTHSELHEIGHTred (MEANSTDDEVMEDIANFLOATFLOAT1.0) green (MEANSTDDEVMEDIANFLOATFLOAT1.0) blue (MEANSTDDEVMEDIANFLOATFLOAT1.0) luminance (MEANSTDDEVMEDIANFLOATFLOAT1.0) tag "TAG" rot "ROTATION")
FLOAT steht hier für Gleitkomma-Zahlen, die in diesem Zusammenhang nicht relevant sind. Die Textdarstellung einer Gleitkomma-Zahl in Gimp leider ist fehlerhaft. Wenn eine deutsche Sprach-Umgebung eingestellt ist, wird eine Komma als Dezimal-Trennzeichen verwendet und am Ende der Zeichenkette „.0” angehängt. Im Beispiel habe ich zur besseren Lesbarkeit Zeilenwechsel eingefügt. Die erzeugten Dateien bestehen nur aus einer Zeile.
FILENAMEDer Dateiname der Bilddatei
WIDTHDie Breite des Originalbildes
HEIGHTDie Höhe des Originalbildes
XDer Abstand des linken Randes des Ausschnitts vom linken Rand des Originalbildes
YDer Abstand des oberen Randes des Ausschnitts vom oberen Rand des Originalbildes
SELWIDTHDie Breite des Ausschnitts
SELHEIGHTDie Höhe des Ausschnitts
MEANDer Mittelwert der Pixelwerte des Bild-Kanals (red, green, blue oder luminance) im gewählten Ausschnitt.
STDDEVDie Standard-Abweichung der Pixelwerte des Bild-Kanals (red, green, blue oder luminance) im gewählten Ausschnitt.
MEDIANDer Median der Pixelwerte des Bild-Kanals (red, green, blue oder luminance) im gewählten Ausschnitt.
Weitere Zahlen zu den Bildkanälen haben hier keine Aussagekraft.
TAGEin Hinweis zur weiteren Verarbeitung des Ausschnitts. Die möglichen Werte sind:
noneDer Bildausschnitt wird erweitert auf die kleinste Größe, die dem geforderten Seitenverhältnis entspricht, soweit die Ränder des Quellbildes nicht überschritten werden. Wenn nötig, wird ein Ränder-Paar in der „durchschnittlichen” Farbe hinzugefügt.
hardcutDer Bildausschnitt wird nicht erweitert. Wenn nötig, wird ein Ränder-Paar in der „durchschnittlichen” Farbe hinzugefügt, damit das geforderte Seitenverhältnis erreicht wird.
ROTATIONDie nötige Rotation des Bildausschnitts. Der Wert ist eine der Zahlen 0, 1, 2 oder 3. Das Bild ist um ROTATION * 90° gegen den Uhrzeigersinn zu drehen
Alle Längenmaße sind in Pixeln angegeben.
Ein Beispiel für den Dateiinhalt ist
(name "bild.jpg" img-size 3648 2736 sel-offset 677 103 sel-size 2500 2438 red (176,7879333.0 35,31278143.0 180.0 5986847,97.0 5986847,97.0 1.0) green (165,0638091.0 39,66287376.0 171.0 5986847,97.0 5986847,97.0 1.0) blue (153,7311861.0 45,84376138.0 161.0 5986847,97.0 5986847,97.0 1.0) luminance (167,1097484.0 39,05223019.0 172.0 5986847,97.0 5986847,97.0 1.0) tag "hardcut" rot "3")
Hier zeigt sich der Fehler in der Darstellung der Gleitkomma-Zahlen.
Der Name der .scm-Datei ist der Dateiname des Bildes mit dem Suffix .scm anstelle des Bilddatei-Suffixes oder nach dem Bilddatei-Suffix.
Die Prozedur script-fu-de-herbaer-selinfo-dir ruft die Prozedur de-herbaer-process-dir aus dem Skript process-dir.scm (Quelle) auf. Die Prozedur de-herbaer-selinfo-dir definiert die Verarbeitung eines einzelnen Bildes. Ihr Parameter sind:
imageDie Kennung des aktuellen Bildes
step0: Das Bild ist neu geöffnet |
1: Das Bild wird geschlossen |
Im Falle werden die beiden Bild-„Parasiten” mit den Namen step = 0de-herbaer-selinfo-dir/tag und de-herbaer-selinfo-dir/rot gelöscht. Die Prozedur de-herbaer-selinfo-dir ergibt #f. Das Bild bleibt zur interaktiven Bearbeitung geöffnet. Sie können einen Bildausschnitt wählen (rechteckige Auswahl) und mit den Tastenkombinationen weitere Hinweise für die weitere Verarbeitung eingeben.
Beim nächsten Aufruf von script-fu-de-herbaer-process-dir ( Menüpunkt Filter → Verzeichnis → Weiter, Ctrl+Alt+W) wird de-herbaer-selinfo-dir mit dem Wert 1 des zweiten Parameters step aufgerufen.
Wenn keine Eingabe erfolgt ist, die das Bild betrifft, oder wenn keine Auswahl existiert, ist das Ergebnis (#f #f). Das Bild wird geschlossen, und es wird keine weitere Datei geschrieben.
Sonst ist das Ergebnis (#t . ausschnitt)ausschnitt steht für eine Scheme-Form mit den Daten des Ausschnitts. #f bedeutet, dass das Bild nicht im Zielverzeichnis gespeichert wird. ausschnitt wird in eine .scm-Datei geschrieben.
„Parasiten” in Gimp sind kleine Datenblöcke (Zeichenketten), die mit einem Objekt, hier einem Bild, verbunden sind und durch einen Namen gekennzeichnet sind. Ich verwende Parasiten mit folgenden Namen:
Die Prozedur script-fu-de-herbaer-selinfo-dir ist in der Gimp-Prozedurdatenbank registriert. Ihr wird der Menüpunkt Filter → Verzeichnis → Ausschnittdaten zugeordnet.
Die Prozedur de-herbaer-selinfo-dir-hardcut setzt den Wert des Bild-„Parasiten” de-herbaer-selinfo-dir/tag auf den Wert hardcut.
Die Prozedur de-herbaer-selinfo-dir-rot-none setzt den Wert des Bild-„Parasiten” de-herbaer-selinfo-dir/rot auf den Wert 0.
Die Prozedur de-herbaer-selinfo-dir-rot-left setzt den Wert des Bild-„Parasiten” de-herbaer-selinfo-dir/rot auf den Wert 1.
Die Prozedur de-herbaer-selinfo-dir-rot-turn setzt den Wert des Bild-„Parasiten” de-herbaer-selinfo-dir/rot auf den Wert 2.
Die Prozedur de-herbaer-selinfo-dir-rot-right setzt den Wert des Bild-„Parasiten” de-herbaer-selinfo-dir/rot auf den Wert 3.
Diese Tastenkombination ist an die Prozedur script-fu-de-herbaer-process-dir aus der Script-Datei process-dir.scm (Quelle) gebunden.
Sie können die Tastenkombinationen über den Menüpunkt Bearbeiten → Tastenkombinationen registrieren oder direkt in die Datei menurc im Gimp-Verzeichnis (z. B. ~/.config/GIMP/2.10/menurc) die folgenden Zeilen einfügen:
(gtk_accel_path "<Actions>/plug-in/de-herbaer-selinfo-dir-hardcut" "<Primary><Alt>h") (gtk_accel_path "<Actions>/plug-in/de-herbaer-selinfo-dir-rot-none" "<Primary><Alt>KP_0") (gtk_accel_path "<Actions>/plug-in/de-herbaer-selinfo-dir-rot-left" "<Primary><Alt>KP_1") (gtk_accel_path "<Actions>/plug-in/de-herbaer-selinfo-dir-rot-turn" "<Primary><Alt>KP_2") (gtk_accel_path "<Actions>/plug-in/de-herbaer-selinfo-dir-rot-right" "<Primary><Alt>KP_3") (gtk_accel_path "<Actions>/plug-in/script-fu-de-herbaer-process-dir" "<Primary><Alt>w")
Natürlich können Sie auch andere Tastenkombinationen wählen.
Zu diesem Skript selinfo-dir.scm ist das weitere Skript process-dir.scm (Quelle) erforderlich.