PDA

Vollständige Version anzeigen : GEGL, das Werkzeug


schumaml
06.02.2008, 21:40
Seit dem letzten Zwischenstand (http://www.gimpforum.de/showthread.php?t=9345) hat sich in GIMP 2.5 und GEGL einiges getan - zur Zeit reicht es nicht mehr, einfach mal mit Kurven oder Werten zu spielen, um einen Absturz zu verursachen.

Es vergehen auch kaum mal ein paar Stunden ohne Änderungen - wer sich GIMP selbst baut, wird vermutlich fesgetellt haben, dass man am besten gleich ein Skript der Art

cd gegl && svn up && make install && cd .. && cd gimp && svn up && make installverwendet, wenn man auf dem aktuellen Stand bleiben möchte.


GEGL-Werkzeug

Wie aber soll man nun merken, was GEGL eigentlich alles so anbietet - und wie testen? Es soll ja nicht erst nach der kompletten Umstellung festgestellt werden, dass die eine oder andere Operation noch einen Bug enthält.

Deswegen finden wir nun ein weiteres Icon im Werkzeugkasten:

8378

Zu sehen: eine "Genetically Engineered Goat, Large". Man beachte das fünfte Bein am Rücken.

Benutzt wird es wie jedes andere Werkzeug auch. Ins Bild klicken, und es öffnet sich ein zunächst recht unspektakulärer Dialog:

8379

Es bleibt zunächst nichts weiter, als sich mal bei Operation umzuschauen. Man sieht schnell, da ist recht viel dahinter - mehr als in einer solchen Liste jemals vorhanden sein sollte:

8380

Beispiele für GEGL-Operatoren

Was man hier sieht, sind die in GEGL (und GIMP, zumindest alle mit dem Namen gimp-*) vorhandenen Operatoren. Einige davon sind eher einfach strukturiert. Man findet zum Beispiel einen Schachbrettmustergenerator:

8381

Vielen wird auffallen, dass das eigentlich wie das Plugin in GIMP aussieht. Einer der Unterschiede: die Vorschau ist im Bildfenster.

Natürlich gibt es auch einen Fraktal-Explorer (wer schon ein paar Screenshots von GEGL gesehen hat, wird das wohl vermutet haben, da das Testprogramm gegl(.exe) mit einem entsprechenden Bild startet):

8382

Auch hier: die Vorschau ist im Bildfenster.


Zielgruppe

Dieses Werkzeug ist nicht dazu gedacht, um jetzt GIMP 2.5 für die produktive, gegl-basierte Bildbearbeitung zu nutzen. Das sollte aber generell auch jedem klar sein, der sich das kompiliert. Auch baut man damit noch keine GEGL-Graphen auf (zumindest keine, die irgendwo erhalten bleiben). Es ist in erster Linie ein Hilfsmittel für Entwickler, die so schnell mal einen Operator testen können.

houz
06.02.2008, 23:53
cd gegl && svn up && make install && cd .. && cd gimp && svn up && make install
Müsste da nicht jeweils noch ein && make vor das && make install?

Edit: Und babl sollte man auch noch mittesten... Zumindest mache ich das.

TheGrudge
06.02.2008, 23:59
Bin gerade mal wieder dabei die SVN zu kompilieren, freu... gleich mal die 5-beinige Ziege ausprobieren :)

houz
07.02.2008, 01:05
Ich wollte sie auch gerade mal raus lassen. Und was sehe ich? Sie ist bei mir überhaupt nicht da! Ich habe die aktuellste Version aus dem svn, habe komplett make clean; svn up; automake.sh...; make; make install, habe die alten Einstellungen in ~/.gimp-2.5/ gelöscht und immer noch keine Ziege. Muss man da noch was einstellen oder ne spezielle Buildoption angeben?

TheGrudge
07.02.2008, 01:13
Du musst es einfach in die Toolbox mit aufnehmen: Dialogs->Tools

houz
07.02.2008, 14:14
Super, danke. Ich wusste gar nicht, dass man die Toolbox anpassen kann. Wieder was dazugelernt... :-D

Edith: Dafür schmiert mir Gimp (zumindest beim Checkerboard) mit der Meldung

installing property: value
installing property: x
installing property: y
installing property: x-offset
installing property: y-offset
installing property: color1
installing property: color2
/opt/gimp-SVN/bin/gimp-2.5: fatal error: Gleitkomma-Ausnahme
/opt/gimp-SVN/bin/gimp-2.5 (pid:12121): [E]xit, [H]alt, show [S]tack trace or [P]roceed:

ab.

TheGrudge
07.02.2008, 14:19
Tja deswegen nennt sich das ja auch UNSTABLE :-)

houz
07.02.2008, 16:06
Ich weiß. Es hat mich nur überrascht, da es bei schumaml zu funktionieren scheint, wenn man seinen Screenshots glauben kann. Ist aber nicht tragisch.

TheGrudge
07.02.2008, 16:09
Bei mir funzt es auch, wenn man nicht wie wild an den Slidern rumzieht. Dann geht es...

atlantis1990
07.02.2008, 20:09
Was ist nun eigentlich alles mit GEGL und BABL möglich? Wurde letztens schon angesprochen das man dazu mal einen Artikel im Wiki schreiben könnte, aber bis jetzt hat das noch niemand getan. Ich würde ja gerne helfen, nur bin ich einer derer, die selber keinen Plan haben. ^^'
Ich verstehe hier nämlich leider mal wieder auch nur die Hälfte. :(

schumaml
08.02.2008, 23:41
Der Wertebereich der Einstellungen ist absoluter Wahnsinn: Maximalwert z.B. 2147483647. Zieht man den Slider, dann erreicht man schon mit kleinsten Bewegungen Werte, die man in der Oberfläche sonst nie einstellen könnte.

TheGrudge
09.02.2008, 20:50
Mal ein wenig OFF-Topic: Wird Gimp auch demnächst auf CMake umgestellt? Ich bin gerade dabei mich da ein wenig einzuarbeiten, weil ich meine C-Projekte darauf umstellen will. Autotools sind ja schon knapp 20 Jahre alt und machen einem doch immer wieder das Leben schwer, CMake soll ja angeblich Quellcode auf allen Systemen, also Windows, Mac und Unix kompilieren können. KDE ist ja nun auch komplett gewechselt. Vielleicht wäre dann die Portierung auf Windows einfacher...?

schumaml
09.02.2008, 23:10
Bisher habe ich bezüglich CMake nur gehört, dass es anders als autotools, aber genau eklig sein soll.

schumaml
11.02.2008, 18:40
Mit GEGL baut man einen Graphen (http://de.wikipedia.org/wiki/Graph_%28Graphentheorie%29) auf, dessen Knoten einzelne Operatoren (http://de.wikipedia.org/wiki/Operator_%28Mathematik%29) (kurz: "Ops") darstellen, und dessen Kanten die Ein- und Ausgänge der Operatoren verbinden (und so den Operatoren die Operanden liefern).

Prinzipiell ist das nichts, was in GIMP nicht schon jetzt passieren würde - egal ob einfach eine Ebenen über einer anderen liegt, oder man eine solche verschiebt: diese Vorgänge lassen sich durch solche Operatoren ausdrücken. Gespeichert werden bisher aber nur ein paar in einer Form, die eine nachträgliche Änderung erlaubt - z.B. in Form der Reihenfolge der Ebenen und dem Versatz einzelner Ebenen.

In GEGL ist viel mehr veränderbar. Ein einfaches Bild hat z.B. folgende baumartige Struktur:

8418

Das ist der (alte) Splashscreen des GEGL-Beispielprogramms. Von unten nach oben ergeben mehrere Teilbäume das fertige Bild - die "Blätter" ganz unten erzeugen die wesentlichen Teile des Bildinhalts - dreimal Text, einmal Fraktal.

Der Text wird mit Schlagschatten versehen und verschoben, am Fraktal werden ein paar Farbveränderungen durchgeführt, und eine Reihe von Over-Operatoren verbindet alles zu einem Bild, das dann noch passend zugeschnitten wird.

Bis jetzt haben wir in GIMP aber nur einzelne Knoten, deren Ergebnis einfach wieder als Ebene im Bild landet. Damit kann man einzelne Werkzeuge oder Plug-ins als GEGL-Ops implementieren.

houz
11.02.2008, 18:50
Kann das irgendein Graph sein oder ist das zwingend ein Baum?

TheGrudge
11.02.2008, 18:54
Das ist ja dann quasi wie in Blender das Node-System...

schumaml
11.02.2008, 19:04
Es muss ein gerichteter azyklischer Graph sein.

houz
11.02.2008, 19:06
Und sicher auch connected (sagt man da "verbunden"?).