<sect1 id="developers-scripting"> <title >Arbeiten mit Skripten</title> <para >In &krita; können Sie Skripte in Ruby oder Python schreiben (Welche Sprache Sie verwenden können, hängt davon ab, welche Interpreter auf Ihrem Computer installiert wurden). Hier finden Sie eine Beschreibung der Prgrammierschnittstellen. </para ><para >Einige Beispiele erhalten Sie zusammen mit &krita;, Sie finden sie in <filename >/usr/share/apps/krita/scripts</filename > (oder <filename >/opt/kde/share/apps/krita/scripts</filename >). </para> <sect2 id="developers-scripting-variables"> <title >Variablen im Modul <classname >Krosskritacore</classname ></title> <itemizedlist> <listitem ><para ><varname >KritaDocument</varname > gibt ein <classname >Document</classname >-Objekt zurück</para ></listitem> <listitem ><para ><varname >KritaScript</varname > gibt ein <classname >ScriptProgress</classname >-Objekt zurück</para ></listitem> </itemizedlist> <para >Sie können ein Objekt mit der <function >get</function >-Funktion des <classname >Krosskritacore</classname >-Moduls beziehen. In Ruby geht das z. B. so: <programlisting >doc = Krosskritacore::get("KritaDocument") script = Krosskritacore::get("KritaScript") </programlisting> </para> </sect2> <sect2 id="developers-scripting-functions"> <title >Funktionen im Modul <classname >Krosskritacore</classname ></title> <itemizedlist> <listitem ><para >Funktion: <function >getBrush</function ></para ><para >Diese Funktion gibt ein <classname >Brush</classname >-Objekt aus der Liste der &krita;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Pinsels. Ein Beispiel in Ruby: <programlisting >Krosskritacore::getBrush("Circle (05)") </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >getFilter</function ></para ><para >Diese Funktion gibt ein <classname >Filter</classname >-Objekt aus der Liste der &krita;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Filters. Ein Beispiel in Ruby: <programlisting >Krosskritacore::getFilter("invert") </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >getPattern</function ></para ><para >Diese Funktion gibt ein <classname >Pattern</classname >-Objekt aus der Liste der &krita;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Musters. Ein Beispiel in Ruby: <programlisting >Krosskritacore::getPattern("Bricks") </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >loadBrush</function ></para ><para >Diese Funktion lädt ein <classname >Brush</classname >-Objekt und gibt es zurück. Sie akzeptiert ein Argument: den Dateinamen des Pinsels.</para ></listitem> <listitem ><para >Funktion: <function >loadPattern</function ></para ><para >Diese Funktion lädt ein <classname >Pattern</classname >-Objekt und gibt es zurück. Sie akzeptiert ein Argument: den Dateinamen des Musters.</para ></listitem> <listitem ><para >Funktion: <function >newCircleBrush</function ></para ><para >Diese Funktion gibt ein <classname >Brush</classname >-Objekt in Kreisform zurück. Sie akzeptiert mindestens zwei Argumente: Breite und Höhe. Zusätzlich akzeptiert sie zwei weitere Argumente: Ausblendbreite und Ausblendhöhe. Ist keine Ausblendung angegeben, besitzt der Pinsel keine Ausblendkanten. Ein Beispiel in Ruby: <programlisting >Krosskritacore::newCircleBrush(10,20) # erzeugt einen Kreis Krosskritacore::newCircleBrush(10,20,5,10) # erzeugt einen Verlauf </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >newHSVColor</function ></para ><para >Diese Funktion gibt ein <classname >Color</classname >-Objekt in Form eines HSV-Satzes zurück. Sie akzeptiert drei Argumente: Farbton (0 bis 255), Sättigung (0 bis 255), Farbwert (0 bis 255). Ein Beispiel in Ruby: <programlisting >Krosskritacore::newHSVColor(255,125,0) </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >newImage</function ></para ><para >Diese Funktion gibt ein <classname >Image</classname >-Objekt zurück. Sie akzeptiert vier Argumente: Breite, Höhe, Farbraum-ID, Name des Bildes. Als Rückgabewert erhalten Sie ein <classname >Image</classname >-Objekt. Ein Beispiel in Ruby: <programlisting >Krosskritacore::newImage(10,20, "RGBA", "kikoo") </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >newRectBrush</function ></para ><para >Diese Funktion gibt ein <classname >Brush</classname >-Objekt rechteckiger Form zurück. Sie akzeptiert mindestens zwei Argumente: Breite und Höhe. Zusätzlich akzeptiert Sie zwei weitere Argumente: Ausblendbreite und Ausblendhöhe. Ist keine Ausblendung angegeben, besitzt der Pinsel keine Ausblendkanten: Ein Beispiel in Ruby: <programlisting >Krosskritacore::newRectBrush(10,20) # erzeugt ein Rechteck Krosskritacore::newRectBrush(10,20,5,10) # erzeugt einen Verlauf </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >newRGBColor</function ></para ><para >Diese Funktion gibt ein <classname >Color</classname >-Objekt in Form eines RGB-Satzes zurück. Sie akzeptiert drei Argumente: Rot (0 bis 255), Blau (0 bis 255), Grün (0 bis 255). Ein Beispiel in Ruby: <programlisting >Krosskritacore::newRGBColor(255,0,0) # erzeugt eine rote Farbe Krosskritacore::newRGBColor(255,255,255) # erzeugt eine weiße Farbe </programlisting ></para ></listitem> </itemizedlist> </sect2> <sect2 id="developers-scripting-objects"> <title >Beschreibung und Liste verschiedener Funktionen in <classname >Krosskritacore</classname ></title> <itemizedlist> <listitem ><para >Objekt: PaintLayer</para> <itemizedlist> <listitem ><para >Funktion: <function >beginPainting</function ></para ></listitem> <listitem ><para >Funktion: <function >convertToColorspace</function ></para ><para >Wandelt ein Bild in einen Farbraum um. Diese Funktion akzeptiert ein Argument: den Namen des Farbraums. Ein Beispiel in Ruby: <programlisting >image.convertToColorspace("CMYK") </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >createHistogram</function ></para ><para >Diese Funktion erzeugt ein Histogramm für diese Ebene. Sie akzeptiert zwei Argumente: den Typ des Histogramms ( ("RGB8HISTO"), und 0 für ein lineares und 1 für ein logarithmisches Histogramm.</para ></listitem> <listitem ><para >Funktion: <function >createHLineIterator</function ></para ><para >Erstellt einen Iterator über die Ebene, der eine Zeile durchläuft. Sie akzeptiert drei Argumente: <varname >x</varname > (Anfangspunkt in der Zeile), <varname >y</varname > (vertikale Position der Zeile), Breite der Zeile.</para ></listitem> <listitem ><para >Funktion: <function >createPainter</function ></para ><para >Diese Funktion erzeugt ein <classname >Painter</classname >-Objekt, mit dem Sie auf einer Ebene zeichnen können. </para ></listitem> <listitem ><para >Funktion: <function >createRectIterator</function ></para ><para >Erzeugt einen Iterator über eine Ebene, der über eine rechteckige Fläche läuft. Diese Funktion akzeptiert vier Argumente: <varname >x</varname >, <varname >y</varname >, Breite des Rechtecks, Höhe des Rechtecks.</para ></listitem> <listitem ><para >Funktion: <function >createVLineIterator</function ></para ><para >Erstellt einen Iterator über eine Ebene, der eine Spalte durchläuft. Diese Funktion akzeptiert drei Argumente: <varname >x</varname > (horizontale Position der Spalte), <varname >y</varname > (Anfangspunkt in der Spalte), Höhe der Spalte.</para ></listitem> <listitem ><para >Funktion: <function >endPainting</function ></para ><para >Diese Funktion schließt den aktuellen Eintrag für die Liste der Rückgängig-Funktion und fügt ihn dem Verlauf hinzu.</para ></listitem> <listitem ><para >Funktion: <function >fastWaveletTransformation</function ></para ><para >Gibt ein Objekt der schnellen Wavelet-Transformation der Ebene zurück.</para ></listitem> <listitem ><para >Funktion: <function >fastWaveletUntransformation</function ></para ><para >Macht eine schnelle Wavelet-Transformation auf dieser Ebene rückgängig. Akzeptiert ein Argument: ein Wavelet-Objekt. Ein Beispiel in Ruby: <programlisting >wavelet = layer.fastWaveletTransformation() layer.fastWaveletUntransformation(wavelet) </programlisting ></para ></listitem> <listitem ><para >Funktion: <function >getHeight</function ></para ><para >Gibt die Höhe der Ebene zurück.</para ></listitem> <listitem ><para >Funktion: <function >getWidth</function ></para ><para >Gibt die Breite der Ebene zurück.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >Filter</classname ></para> <itemizedlist> <listitem ><para >Funktion: <function >getFilterConfiguration</function ></para ><para >Diese Funktion gibt ein <classname >FilterConfiguration</classname >-Objekt zurück, das zu diesem Filter gehört.</para ></listitem> <listitem ><para >Funktion: <function >process</function ></para ><para >Diese Funktion wendet den Filter an. Sie akzeptiert mindestens ein Argument: die Quellebene. Sie können zusätzlich diese vier Argumente übergeben: <varname >x</varname >, <varname >y</varname >, <varname >width</varname >, <varname >height</varname >. (<varname >x</varname >,<varname >y</varname >,<varname >width</varname >,<varname >height</varname >) definieren die rechteckige Ebene, auf die der Filter angewandt wird. Ist kein Rechteck definiert, wird der Filter auf die gesamte Quellebene angewandt. Ein Beispiel in Ruby: <programlisting >doc = Krosskritacore::get("KritaDocument") image = doc.getImage() layer = image.getActivePaintLayer() width = layer.getWidth() height = layer.getHeight() filter = Krosskritacore::getFilter("invert") filter.process(layer, layer) filter.process(layer, layer, 10, 10, 20, 20 ) </programlisting ></para ></listitem> </itemizedlist ></listitem> <listitem ><para >Objekt: <classname >FilterConfiguration</classname ></para> <itemizedlist> <listitem ><para >Funktion: <function >getProperty</function ></para ><para >Diese Funktion gibt den Wert eines Parameters des zugehörigen <classname >Filter</classname >-Objektes zurück. Sie akzeptiert ein Argument: den Namen des Parameters.</para ></listitem> <listitem ><para >Funktion: <function >setProperty</function ></para ><para >Diese Funktion definiert einen Parameter des zugehörigen <classname >Filter</classname >-Objekts. Sie übernimmt zwei Argumente: den Namen des Parameters und den Wert, dessen Typ vom <classname >Filter</classname >-Objekt abhängt.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >Histogramm</classname ></para> <para >Diese Klasse gibt Ihnen Zugriff auf das Histogramm eines <classname >PaintLayer</classname >-Objekts. Ein Beispiel in Ruby: <programlisting >doc = krosskritacore::get("KritaDocument") image = doc.getImage() layer = image.getActiveLayer() histo = layer.createHistogram("RGB8HISTO",0) min = layer.getMin() * 255 max = layer.getMax() * 255 for i in min..max print layer.getValue(i) print "\n" end </programlisting> </para> <itemizedlist> <listitem ><para >Funktion: <function >getChannel</function ></para ><para >Gibt den ausgewählten Kanal zurück.</para ></listitem> <listitem ><para >Funktion: <function >getCount</function ></para ><para >Diese Funktion gibt die Anzahl der im Histogramm verwendeten Pixel zurück.</para ></listitem> <listitem ><para >Funktion: <function >getHighest</function ></para ><para >Diese Funktion gibt den größten Wert im Histogramm zurück.</para ></listitem> <listitem ><para >Funktion: <function >getLowest</function ></para ><para >Diese Funktion gibt den kleinsten Wert im Histogramm zurück.</para ></listitem> <listitem ><para >Funktion: <function >getMax</function ></para ><para >Diese Funktion gibt die Maximalbegrenzung des Histogramms zurück (Werte über dem Maximum sind Null). Der Wert liegt im Bereich 0.0 – 1.0.</para ></listitem> <listitem ><para >Funktion: <function >getMean</function ></para ><para >Diese Funktion gibt den Mittelwert im Histogramm zurück.</para ></listitem> <listitem ><para >Funktion: <function >getMin</function ></para ><para >Diese Funktion gibt die Minimalbegrenzung des Histogramms zurück (Werte unter dem Minimum sind Null). Der Wert liegt im Bereich 0.0 – 1.0.</para ></listitem> <listitem ><para >Funktion: <function >getNumberOfBins</function ></para ><para >Gibt die Anzahl der Behälter eines Histogramms zurück. </para ></listitem> <listitem ><para >Funktion: <function >getTotal</function ></para ><para >Diese Funktion gibt die Summe aller Werte im Histogramm zurück.</para ></listitem> <listitem ><para >Funktion: <function >getValue</function ></para ><para >Gibt den Wert eines Behälters eines Histogramms zurück. Diese Funktion akzeptiert ein Argument: den Index im Bereich 0..255.</para ></listitem> <listitem ><para >Funktion: <function >setChannel</function ></para ><para >Wählt den Kanal der Ebene, von dem das Ergebnis des Histogramms bezogen wird. Diese Funktion akzeptiert ein Argument: die Kanalnummer.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >ScriptProgress</classname ></para> <para >Mit <classname >ScriptProgress</classname > können Sie die Fortschrittsanzeige in der Statusleiste von &krita; steuern. Ein Beispiel in Ruby: <programlisting >script = Krosskritacore::get("KritaScript") script.setProgressTotalSteps(1000) script.setProgressStage("progressive", 0) for i in 1..900 script.incProgress() end script.setProgressStage("brutal", 1000) </programlisting ></para> <itemizedlist> <listitem ><para >Funktion: <function >incProgress</function ></para ><para >Diese Funktion erhöht den Wert des Fortschritts um eine Schrittweite.</para ></listitem> <listitem ><para >Funktion: <function >setProgress</function ></para ><para >Diese Funktion stellt den Wert des Fortschritts ein. Sie akzeptiert ein Argument: den Wert des Fortschritts.</para ></listitem> <listitem ><para >Funktion: <function >setProgressStage</function ></para ><para >Diese Funktion stellt den Wert des Fortschritts ein, und zeigt den Text an.</para ></listitem> <listitem ><para >Funktion: <function >setProgressTotalSteps</function ></para ><para >Diese Funktion stellt die Anzahl der Schritte ein, die das Skript benötigt. Sie akzeptiert ein Argument: den Maximalwert des Fortschritts.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >Wavelet</classname ></para ><para >Dieses Objekt enthält den Koeffizienten der Wavelet-Transformation eines <classname >PaintLayer</classname >-Objekts.</para> <itemizedlist> <listitem ><para >Funktion: <function >getDepth</function ></para ><para >Gibt die Tiefe einer Ebene zurück.</para ></listitem> <listitem ><para >Funktion: <function >getNCoeff</function ></para ><para >Gibt den Wert des n-ten Koeffizienten zurück. Die Funktion akzeptiert ein Argument: den Index des Koeffizienten.</para ></listitem> <listitem ><para >Funktion: <function >getNumCoeffs</function ></para ><para >Gibt die Anzahl der Koeffizienten dieses Wavelets zurück (= Größe * Größe * Tiefe).</para ></listitem> <listitem ><para >Funktion: <function >getSize</function ></para ><para >Gibt die Größe des Wavelets zurück (= Breite * Höhe).</para ></listitem> <listitem ><para >Funktion: <function >getXYCoeff</function ></para ><para >Gibt den Wert eines Koeffizienten zurück. Diese Funktion akzeptiert zwei Argumente: <varname >x</varname > und <varname >y</varname >.</para ></listitem> <listitem ><para >Funktion: <function >setNCoeff</function ></para ><para >Stellt den Wert des n-ten Koeffizienten ein. Die Funktion akzeptiert zwei Argumente: den Index des Koeffizienten und den neuen Wert den neuen Wert des Koeffizienten.</para ></listitem> <listitem ><para >Funktion: <function >setXYCoeff</function ></para ><para >Stellt den Wert eines Koeffizienten ein. Diese Funktion akzeptiert drei Argumente: <varname >x</varname >, <varname >y</varname >, und den neuen Wert des Koeffizienten.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >Painter</classname ></para> <itemizedlist> <listitem ><para >Funktion: <function >convolve</function ></para ><para >Diese Funktion wendet eine Faltung auf das Bild an. Sie akzeptiert mindestens drei Argumente: eine Liste von Kernen (alle Listen müssen die gleiche Länge haben), den Faktor, und den Versatz. </para ><para >Der Wert eines Pixels wird über die folgende Funktion ermittelt: K * P / Faktor + Versatz, wobei K der Kern, und P die direkte Umgebung ist. </para ><para >Zusätzlich akzeptiert die Funktion die folgenden Argumente: <varname >borderOp</varname > (bestimmt, wie Pixel am Rand eines Bildes gefaltet werden: 0 = Standardfarbe verwenden, 1 = benutze das Pixel von der gegenüber liegenden Seite des Bildes, 2 = benutze das Rahmenpixel, 3 = vermeide Rahmenpixel), <varname >channel</varname > (1 für Farbe, 2 für Alpha, 3 für beides), <varname >x</varname >, <varname >y</varname >, <varname >width</varname >, <varname >height</varname >.</para ></listitem> <listitem ><para >Funktion: <function >setFillThreshold</function ></para ><para >Stellt den Schwellenwert beim Füllen ein. Akzeptiert ein Argument: den Schwellenwert.</para ></listitem> <listitem ><para >Funktion: <function >fillColor</function ></para ><para >Beginnt mit einer Farbe zu füllen. Akzeptiert zwei Argumente: <varname >x</varname > und <varname >y</varname >.</para ></listitem> <listitem ><para >Funktion: <function >fillPattern</function ></para ><para >Beginnt mit einem Muster zu füllen. Akzeptiert zwei Argumente: <varname >x</varname > und <varname >y</varname >.</para ></listitem> <listitem ><para >Funktion: <function >paintPolyline</function ></para ><para >Diese Funktion zeichnet eine Linienkette. Sie akzeptiert zwei Argumente: eine Liste der x-Koordinaten und eine Liste der y-Koordinaten.</para ></listitem> <listitem ><para >Funktion: <function >paintLine</function ></para ><para >Diese Funktion zeichnet eine Linie. Sie akzeptiert fünf Argumente: <varname >x1</varname >, <varname >y1</varname >, <varname >x2</varname >, <varname >y2</varname >, und <varname >pressure</varname >. </para ></listitem> <listitem ><para >Funktion: <function >paintBezierCurve</function ></para ><para >Diese Funktion zeichnet eine Bézier-Kurve. Sie akzeptiert zehn Argumente: <varname >x1</varname >, <varname >y1</varname >, <varname >p1</varname >, <varname >cx1</varname >, <varname >cy1</varname >, <varname >cx2</varname >, <varname >cx2</varname >, <varname >x2</varname >, <varname >y2</varname >, <varname >p2</varname >, wobei (<varname >x1</varname >,<varname >y1</varname >) die Anfangsposition ist, <varname >p1</varname > der Druck zu Beginn, (<varname >x2</varname >,<varname >y2</varname >) ist die Endposition, <varname >p2</varname > ist der Druck am Ende. (<varname >cx1</varname >,<varname >cy1</varname >) und (<varname >cx2</varname >,<varname >cy2</varname >) sind die Positionen der Kontrollpunkte.</para ></listitem> <listitem ><para >Funktion: <function >paintEllipse</function ></para ><para >Diese Funktion zeichnet eine Ellipse. Sie akzeptiert fünf Argumente: <varname >x1</varname >, <varname >y1</varname >, <varname >x2</varname >, <varname >y2</varname >, <varname >pressure</varname >, wobei (<varname >x1</varname >,<varname >y1</varname >) und (<varname >x2</varname >,<varname >y2</varname >) die Position der beiden Zentren angeben.</para ></listitem> <listitem ><para >Funktion: <function >paintPolygon</function ></para ><para >Diese Funktion zeichnet ein Vieleck. Sie akzeptiert zwei Argumente: eine Liste der x-Koordinaten und eine Liste der y-Koordinaten.</para ></listitem> <listitem ><para >Funktion: <function >paintRect</function ></para ><para >Diese Funktion zeichnet ein Rechteck. Sie akzeptiert fünf Argumente: <varname >x</varname >, <varname >y</varname >, <varname >width</varname >, <varname >height</varname >, <varname >pressure</varname >.</para ></listitem> <listitem ><para >Funktion: <function >paintAt</function ></para ><para >Diese Funktion malt an der gegebenen Position. Sie akzeptiert drei Argumente > <varname >x</varname >, <varname >y</varname >, <varname >pressure</varname >.</para ></listitem> <listitem ><para >Funktion: <function >setPaintColor</function ></para ><para >Diese Funktion stellt die Zeichenfarbe (Vordergrundfarbe) ein. Sie akzeptiert ein Argument: ein <classname >Color</classname >-Objekt.</para ></listitem> <listitem ><para >Funktion: <function >setBackgroundColor</function ></para ><para >Diese Funktion stellt die Hintergrundgrundfarbe ein. Sie akzeptiert ein Argument: ein <classname >Color</classname >-Objekt.</para ></listitem> <listitem ><para >Funktion: <function >setPattern</function ></para ><para >Diese Funktion stellt das Muster für Füllung ein. Sie akzeptiert ein Argument: ein <classname >Pattern</classname >-Objekt.</para ></listitem> <listitem ><para >Funktion: <function >setBrush</function ></para ><para >Diese Funktion stellt den Pinsel zum Zeichnen ein. Sie akzeptiert ein Argument: ein <classname >Brush</classname >-Objekt.</para ></listitem> <listitem ><para >Funktion: <function >setPaintOp</function ></para ><para >Diese Funktion definiert die Malverfahren. Sie akzeptiert ein Argument: den Namen der Malverfahren.</para ></listitem> <listitem ><para >Funktion: <function >setDuplicateOffset</function ></para ><para >Diese Funktion definiert den Versatz beim Duplizieren. Sie akzeptiert zwei Argumente: den waagerechten Versatz und den senkrechten Versatz.</para ></listitem> <listitem ><para >Funktion: <function >setOpacity</function ></para ><para >Diese Funktion stellt die Deckkraft beim Malen ein. Sie akzeptiert ein Argument: die Deckkraft im Bereich von 0 bis 255.</para ></listitem> <listitem ><para >Funktion: <function >setStrokeStyle</function ></para ><para >Diese Funktion stellt den Stil des Strichs ein. Sie akzeptiert ein Argument: 0 für keinen Strich, 1 für einen Pinsel.</para ></listitem> <listitem ><para >Funktion: <function >setFillStyle</function ></para ><para >Diese Funktion stellt den Füllstil des <classname >Painter</classname >-Objekts ein. Sie akzeptiert ein Argument: 0 für keine Füllung, 1 für Füllung mit der Vordergrundfarbe, 2 für Füllung mit der Hintergrundfarbe und 3 für Füllung mit Muster.</para ></listitem> </itemizedlist> </listitem> <listitem ><para >Objekt: <classname >Iterator</classname ></para ><para >Dieses Objekt ermöglicht es, Pixelwerte nacheinander zu verändern. Der Name einiger Funktionen hängen von ihrem Farbraum ab. Ist der Farbraum einer Ebene z. B. RGB, stehen <function >setR</function >, <function >setG</function > und <function >setB</function > zur Verfügung. Für CMYK: <function >setC</function >, <function >setM</function >, <function >setY</function > und <function >setK</function >. Im weiteren Verlauf gehen wir davon aus, dass der Farbraum "ABC" heißt und die drei Kanäle A, B und C enthält.</para> <itemizedlist> <listitem ><para >Funktionen: <function >setA</function >, <function >setB</function >, <function >setC</function ></para ><para >Diese Funktionen akzeptieren ein Argument: den neuen Wert für einen der Kanäle des Pixels.</para ></listitem> <listitem ><para >Funktion: <function >setABC</function ></para ><para >Stellt den Wert aller Kanäle ein. Diese Funktion akzeptiert ein Argument: ein Array mit den neuen Werten für alle Kanäle.</para ></listitem> <listitem ><para >Funktionen: <function >getA</function >, <function >getB</function >, <function >getC</function ></para ><para >Gibt den Wert eines der Kanäle des Pixels zurück.</para ></listitem> <listitem ><para >Funktion: <function >getABC</function ></para ><para >Gibt ein Array mit den Werten aller Kanäle zurück.</para ></listitem> <listitem ><para >Funktion: <function >darken</function ></para ><para >Ein Pixel abdunkeln. Diese Funktion akzeptiert mindestens ein Argument: <varname >shade</varname > (Betrag, um alle Kanäle abzudunkeln). Zusätzlich akzeptiert sie das folgende Argument: <varname >compensation</varname > (um die Abdunklung zu begrenzen).</para ></listitem> <listitem ><para >Funktion: <function >invertColor</function ></para ><para >Invertiert die Farbe eines Pixels.</para ></listitem> <listitem ><para >Funktion: <function >next</function ></para ><para >Positionswert wird inkrementiert und zum nächsten Pixel gesprungen.</para ></listitem> <listitem ><para >Funktion: <function >isDone</function ></para ><para >Gibt "true" zurück, wenn der Iterator am Ende angekommen ist (keine weiteren Pixel vorhanden sind).</para ></listitem> </itemizedlist> </listitem> </itemizedlist> </sect2> <sect2 id="developers-scripting-resources"> <title >Ressourcen</title> <para >Hier ein paar Hinweise oder Listen mit Informationen für &krita;. </para ><para >Für <classname >Brush</classname > und <classname >Pattern</classname >: Sie finden die Namen und die zugehörigen Pinsel oder Muster in der Auswahlpalette in der Werkzeugleiste in &krita;. </para ><para >Eine Liste mit IDs für Farbräume in &krita;: LABA, RGBA, RGBA16, RGBAF32, RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16. </para> </sect2> </sect1>