You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1134 lines
25 KiB
1134 lines
25 KiB
<sect1 id="developers-scripting">
|
|
<title
|
|
>Arbeiten mit Skripten</title>
|
|
|
|
<para
|
|
>In &chalk; 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 &chalk;, Sie finden sie in <filename
|
|
>/usr/share/apps/chalk/scripts</filename
|
|
> (oder <filename
|
|
>/opt/kde/share/apps/chalk/scripts</filename
|
|
>). </para>
|
|
|
|
<sect2 id="developers-scripting-variables">
|
|
<title
|
|
>Variablen im Modul <classname
|
|
>Krosschalkcore</classname
|
|
></title>
|
|
|
|
<itemizedlist>
|
|
<listitem
|
|
><para
|
|
><varname
|
|
>ChalkDocument</varname
|
|
> gibt ein <classname
|
|
>Document</classname
|
|
>-Objekt zurück</para
|
|
></listitem>
|
|
<listitem
|
|
><para
|
|
><varname
|
|
>ChalkScript</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
|
|
>Krosschalkcore</classname
|
|
>-Moduls beziehen. In Ruby geht das z. B. so: <programlisting
|
|
>doc = Krosschalkcore::get("ChalkDocument")
|
|
script = Krosschalkcore::get("ChalkScript")
|
|
</programlisting>
|
|
</para>
|
|
|
|
</sect2>
|
|
|
|
<sect2 id="developers-scripting-functions">
|
|
<title
|
|
>Funktionen im Modul <classname
|
|
>Krosschalkcore</classname
|
|
></title>
|
|
|
|
<itemizedlist>
|
|
<listitem
|
|
><para
|
|
>Funktion: <function
|
|
>getBrush</function
|
|
></para
|
|
><para
|
|
>Diese Funktion gibt ein <classname
|
|
>Brush</classname
|
|
>-Objekt aus der Liste der &chalk;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Pinsels. Ein Beispiel in Ruby: <programlisting
|
|
>Krosschalkcore::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 &chalk;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Filters. Ein Beispiel in Ruby: <programlisting
|
|
>Krosschalkcore::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 &chalk;-Ressourcen zurück. Sie akzeptiert ein Argument: den Namen des Musters. Ein Beispiel in Ruby: <programlisting
|
|
>Krosschalkcore::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
|
|
>Krosschalkcore::newCircleBrush(10,20) # erzeugt einen Kreis
|
|
Krosschalkcore::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
|
|
>Krosschalkcore::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
|
|
>Krosschalkcore::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
|
|
>Krosschalkcore::newRectBrush(10,20) # erzeugt ein Rechteck
|
|
Krosschalkcore::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
|
|
>Krosschalkcore::newRGBColor(255,0,0) # erzeugt eine rote Farbe
|
|
Krosschalkcore::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
|
|
>Krosschalkcore</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 = Krosschalkcore::get("ChalkDocument")
|
|
image = doc.getImage()
|
|
layer = image.getActivePaintLayer()
|
|
width = layer.getWidth()
|
|
height = layer.getHeight()
|
|
filter = Krosschalkcore::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 = krosschalkcore::get("ChalkDocument")
|
|
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 &chalk; steuern. Ein Beispiel in Ruby: <programlisting
|
|
>script = Krosschalkcore::get("ChalkScript")
|
|
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 &chalk;. </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 &chalk;. </para
|
|
><para
|
|
>Eine Liste mit IDs für Farbräume in &chalk;: LABA, RGBA, RGBA16, RGBAF32, RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16. </para>
|
|
</sect2>
|
|
|
|
</sect1>
|
|
|