Es gibt einen GIMP-Prozeduraufruf, der von Skripts und Plug-Ins verwendet werden soll. Er kann direkt von den interaktiven Eingabeaufforderungen aus aufgerufen werden.
Hier ist ein Beispiel für eine Python-Sitzung, bei der eine Referenz auf das letzte in GIMP geöffnete Bild abgerufen wird und eine [2, 0, 0, 0, 2, 0, 0, 0, 1] -Transformation darauf angewendet wird.
Sie können die Python-Konsole in GIMP in aufrufen filters->python-fu->console
GIMP 2.8.14 Python Console Python 2.7.5 (default, Jun 25 2014, 10:19:55) [GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] >>> img = gimp.image_list()[0] >>> img <gimp.Image '[Untitled]'> >>> matrix = [2,0,0, 0,2,0, 0,0,1] >>> more_parms = [True, TRANSFORM_RESIZE_ADJUST] >>> drawable = pdb.gimp_drawable_transform_matrix_default(img.layers[0], *(matrix + more_parms))
Ich konnte die Prozedur `gimp_drawable_transform_matrix_default 'finden, indem ich mit der Python-Sitzung unten im Dialogfeld auf die Schaltfläche" Durchsuchen "klickte und nach" Matrix "suche. Wenn ich einen passenden Aufruf gefunden habe, auf" Anwenden "geklickt habe, füge die Funktion ein Auf der Python-Sitzung mit Mock-Parametern aufrufen, wollte ich ersetzen.
Ich nutzte dann Pythons "Syntaxzucker", um Sequenzelemente als einzelne Parameter an einen Funktionsaufruf zu übergeben - dafür gibt es das "*". Damit es funktioniert, musste ich die zwei zusätzlichen Parameter (Interpolation und Clip-Modus) an die Matrixkoeffizienten anhängen.
Dies ist in der Tat der gleiche Anruf wie
pdb.gimp_drawable_transform_matrix_default(img.layers[0], matrix[0], matrix[1], matrix[2], ...., matrix[9], True, TRANSFORM_SIZE_ADJUST)
wäre.