Script
In &chalk;, puoi scrivere script in Ruby o Python (la disponibilità degli interpreti potrebbe dipendere dalla tua distribuzione o da cosa ha installato il tuo amministratore). Qui vedrai una descrizione dell'API degli script. Alcuni esempi sono distribuiti con &chalk;, e potresti trovarli sotto /usr/share/apps/chalk/scripts (o /opt/kde/share/apps/chalk/scripts).
Variabili nel modulo Krosschalkcore
ChalkDocument restituisce un oggetto Document
ChalkScript restituisce un oggetto ScriptProgress
Puoi recuperare un oggetto usando la funzione get del modulo Krosschalkcore, in Ruby dovrai fare qualcosa come: doc = Krosschalkcore::get("DocumentoDiChalk")
script = Krosschalkcore::get("ScriptDiChalk")
Funzioni nel modulo Krosschalkcore
Funzione: getBrushQuesta funzione restituisce un Brush preso dall'elenco delle risorse di &chalk;. Prende un argomento: il nome del pennello. Per esempio (in Ruby): Krosschalkcore::getBrush("Circle (05)")
Funzione: getFilterQuesta funzione restituisce un Filter preso dall'elenco delle risorse di &chalk;. Prende un argomento: il nome del filtro. Per esempio (in Ruby): Krosschalkcore::getFilter("invert")
Funzione: getPatternQuesta funzione restituisce un Pattern preso dall'elenco delle risorse di &chalk;. Prende un argomento: il nome del motivo. Per esempio (in Ruby): Krosschalkcore::getPattern("Bricks")
Funzione: loadBrushQuesta funzione carica un Brush e lo restituisce. Prende un argomento: il nome file del pennello.
Funzione: loadPatternQuesta funzione carica un Pattern e lo restituisce. Prende un argomento: il nome file del motivo.
Funzione: newCircleBrushQuesta funzione restituisce un Brush di forma circolare. Prende almeno due argomenti: larghezza e altezza. Ne può prendere altri due: larghezza e altezza della sfumatura. Se la sfumatura non è specificata, non verrà usata. Per esempio (in Ruby): Krosschalkcore::newCircleBrush(10,20) # crea un cerchio semplice
Krosschalkcore::newCircleBrush(10,20,5,10) # crea una sfumatura
Funzione: newHSVColorQuesta funzione restituisce un nuovo Color con la tripletta HSV data. Prende tre argomenti: componente di tonalità (da 0 a 255), componente di saturazione (da 0 a 255), componente di valore (da 0 a 255). Per esempio (in Ruby): Krosschalkcore::newHSVColor(255,125,0)
Funzione: newImageQuesta funzione restituisce un nuovo Image. Prende quattro argomenti: larghezza, altezza, identificativo dello spazio dei colori, nome dell'immagine. In cambio ottieni un oggetto Image. Per esempio (in Ruby): Krosschalkcore::newImage(10,20, "RGBA", "kikoo")
Funzione: newRectBrushQuesta funzione restituisce un nuovo Brush di forma rettangolare. Prende almeno due argomenti: larghezza e altezza. Può prenderne altri due: larghezza e altezza della sfumatura. Se la sfumatura non è specificata, non verrà usata. Per esempio (in Ruby): Krosschalkcore::newRectBrush(10,20) # crea un rettangolo semplice
Krosschalkcore::newRectBrush(10,20,5,10) # crea una sfumatura
Funzione: newRGBColorQuesta funzione restituisce un nuovo Color con la tripletta RGB data. Prende tre argomenti: componente del rosso (da 0 a 255), componente del verde (da 0 a 255), componente del blu (da 0 a 255). Per esempio (in Ruby): Krosschalkcore::newRGBColor(255,0,0) # crea un colore rosso
Krosschalkcore::newRGBColor(255,255,255) # crea un colore bianco
Descrizioni ed elenchi di funzioni per vari oggetti in Krosschalkcore
Oggetto: PaintLayer
Funzione: beginPainting
Funzione: convertToColorspaceConverte l'immagine in uno spazio di colori. Questa funzione prende un argomento: il nome dello spazio di colori di destinazione. Per esempio (in Ruby): image.convertToColorspace("CMYK")
Funzione: createHistogramQuesta funzione crea un istogramma per questo livello. Prende due argomenti: il tipo di istogramma ("RGB8HISTO"), e 0 se l'istogramma è lineare, o 1 se è logaritmico.
Funzione: createHLineIteratorCrea un iteratore su un livello, itererà su una riga. Questa funzione prende tre argomenti: x (inizio sulla riga), y (posizione verticale della riga), larghezza della riga.
Funzione: createPainterQuesta funzione crea un Painter che ti permetterà di disegnare sul livello.
Funzione: createRectIteratorCrea un iteratore su un livello, itererà su un'area rettangolare. Questa funzione prende quattro argomenti: x, y, larghezza e altezza del rettangolo.
Funzione: createVLineIteratorCrea un iteratore su un livello, itererà su una colonna. Questa funzione prende tre argomenti: x (posizione orizzontale della colonna), y (inizio nella colonna), altezza della colonna.
Funzione: endPaintingQuesta funzione chiude la voce di annullamento attuale e la aggiunge alla cronologia.
Funzione: fastWaveletTransformationRestituisce la trasformata veloce wavelet del livello.
Funzione: fastWaveletUntransformationDetrasforma un wavelet veloce in questo livello. Prende un argomento: un oggetto wavelet. Per esempio (in Ruby): wavelet = layer.fastWaveletTransformation()
layer.fastWaveletUntransformation(wavelet)
Funzione: getHeightRestituisce l'altezza del livello.
Funzione: getWidthRestituisce la larghezza del livello.
Oggetto: Filter
Funzione: getFilterConfigurationQuesta funzione restituisce il FilterConfiguration associato con questo filtro.
Funzione: processQuesta funzione applicherà il filtro. Prende almeno un argomento: il livello sorgente. Puoi anche usare questi quattro argomenti: x, y, width, height. (x, y, width, height) definisce l'area rettangolare su cui il filtro sarà calcolato. Se il rettangolo non è definito, il filtro sarà applicato su tutto il livello originario. Per esempio (in Ruby) doc = Krosschalkcore::get("DocumentoChalk")
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)
Oggetto: FilterConfiguration
Funzione: getPropertyQuesta funzione restituisce il valore del parametro del Filter associato. Prende un argomento: il nome del parametro.
Funzione: setPropertyQuesta funzione definisce un parametro del Filter associato. Prende due argomenti: il nome e il valore del parametro, il cui tipo dipende dal Filter.
Oggetto: Histogram
Questa classe ti permette di accedere all'istogramma di un PaintLayer. Esempio (in Ruby): doc = krosschalkcore::get("DocumentoChalk")
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
Funzione: getChannelRestituisce il canale selezionato.
Funzione: getCountQuesta funzione restituisce il numero di pixel usati dall'istogramma.
Funzione: getHighestQuesta funzione restituisce il valore massimo dell'istogramma.
Funzione: getLowestQuesta funzione restituisce il valore minimo dell'istogramma.
Funzione: getMaxQuesta funzione restituisce il limite massimo dell'istogramma (i valori a posizioni maggiori del massimo sono nulli). Il valore è nell'intervallo 0,0–1,0.
Funzione: getMeanQuesta funzione restituisce la media dell'istogramma.
Funzione: getMinQuesta funzione restituisce il limite minimo dell'istogramma (i valori a posizioni inferiori del minimo sono nulli). Il valore è nell'intervallo 0,0–1,0.
Funzione: getNumberOfBinsRestituisce il numero di colonne dell'istogramma.
Funzione: getTotalQuesta funzione restituisce la somma di tutti i valori dell'istogramma.
Funzione: getValueRestituisce il valore di una colonna dell'istogramma. Questa funzione prende un argomento: l'indice, nell'intervallo [0..255].
Funzione: setChannelSeleziona il canale del livello da cui ottenere il risultato dell'istogramma. Questa funzione prende un argomento: il numero del canale.
Oggetto: ScriptProgress
ScriptProgress viene usato per gestire la barra di avanzamento della barra di stato di &chalk;. Per esempio (in Ruby): script = Krosschalkcore::get("ChalkScript")
script.setProgressTotalSteps(1000)
script.setProgressStage("progressive", 0)
for i in 1..900
script.incProgress()
end
script.setProgressStage("brutal", 1000)
Funzione: incProgressQuesta funzione incrementa l'avanzamento di un passo.
Funzione: setProgressQuesta funzione imposta il valore dell'avanzamento. Prende un argomento: il valore dell'avanzamento.
Funzione: setProgressStageQuesta funzione imposta il valore dell'avanzamento e visualizza il testo.
Funzione: setProgressTotalStepsQuesta funzione imposta il numero di passi richiesti dallo script. Le serve un argomento: il valore massimo dell'avanzamento.
Oggetto: WaveletQuesto oggetto contiene i coefficienti di una trasformazione wavelet di un PaintLayer.
Funzione: getDepthRestituisce la profondità del livello.
Funzione: getNCoeffRestituisce il valore dell'ennesimo coefficiente. La funzione prende un argomento: l'indice del coefficiente.
Funzione: getNumCoeffsRestituisce il numero di coefficienti in questo wavelet (= dimensione × dimensione × profondità).
Funzione: getSizeRestituisce la dimensione del wavelet (dimensione = larghezza = altezza).
Funzione: getXYCoeffRestituisce il valore di un coefficiente. La funzione prende due argomenti: x e y.
Funzione: setNCoeffImposta il valore dell'ennesimo coefficiente. La funzione prende due argomenti: l'indice del coefficiente e il suo nuovo valore.
Funzione: setXYCoeffImposta il valore di un coefficiente. La funzione prende tre argomenti: x, y e il nuovo valore del coefficiente.
Oggetto: Painter
Funzione: convolveQuesta funzione applica un nucleo di convoluzione a un'immagine. Prende almeno tre argomenti: un elenco di nuclei (tutti gli elenchi devono avere le stesse dimensioni), fattore e scostamento. Il valore di un pixel sarà dato dalla funzione seguente: K×P/fattore+scostamento, dove K è il nucleo e P l'intorno. Può prendere i seguenti argomenti opzionali: borderOp (controlla quanto convolvere i pixel sul bordo di un'immagine: 0 = usa il colore predefinito, 1 = usa il pixel sul lato opposto dell'immagine, 2 = usa il pixel del bordo, 3 = evita i bordi dei pixel). channel (1 per colore, 2 per alfa, 3 per entrambi), x, y, width, height.
Funzione: setFillThresholdImposta la soglia di riempimento. Prende un solo argomento: la soglia.
Funzione: fillColorInizia a riempire con un colore. Prende due argomenti: x e y.
Funzione: fillPatternInizia a riempire con un motivo. Prende due argomenti: x e y.
Funzione: paintPolylineQuesta funzione disegnerà una polilinea. Prende due argomenti: un elenco di posizioni x e un elenco di posizioni y.
Funzione: paintLineQuesta funzione disegnerà una linea. Prende cinque argomenti: x1, y1, x2, y2, e pressure.
Funzione: paintBezierCurveQuesta funzione disegnerà una curva di Bezier. Prende dieci argomenti: x1, y1, p1, cx1, cy1, cx2, cx2, x2, y2, p2, dove (x1,y1) è la posizione iniziale, p1 è la pressione all'inizio, (x2,y2) è la posizione finale, p2 è la pressione alla fine. (cx1,cy1) e (cx2,cy2) sono le posizioni ai punti di controllo.
Funzione: paintEllipseQuesta funzione disegnerà un ellisse. Prende cinque argomenti x1, y1, x2, y2, pressure, dove (x1,y1) e (x2,y2) sono le posizioni dei due centri.
Funzione: paintPolygonQuesta funzione disegnerà un poligono. Prende due argomenti: un elenco di posizioni x e un elenco di posizioni y.
Funzione: paintRectQuesta funzione disegnerà un rettangolo. Prende cinque argomenti: x, y, width height, pressure.
Funzione: paintAtQuesta funzione disegnerà in un certo punto. Prende tre argomenti: x, y, pressure.
Funzione: setPaintColorQuesta funzione imposta il colore del tratto (detto anche colore di primo piano). Prende un argomento: un Color.
Funzione: setBackgroundColorQuesta funzione imposta il colore di sfondo. Prende un argomento: un Color.
Funzione: setPatternQuesta funzione imposta il motivo usato per lo riempimento. Prende un argomento: un oggetto Pattern.
Funzione: setBrushQuesta funzione imposta il pennello usato per disegnare. Prende un argomento: un oggetto Brush.
Funzione: setPaintOpQuesta funzione definisce l'operazione di disegno. Prende un argomento: il nome dell'operazione.
Funzione: setDuplicateOffsetQuesta funzione definisce lo scostamento del duplicato. Prende due argomenti: lo scostamento orizzontale e quello verticale.
Funzione: setOpacityQuesta funzione imposta l'opacità del disegno. Prende un argomento: l'opacità, in un intervallo da 0 a 255.
Funzione: setStrokeStyleQuesta funzione imposta lo stile del tratto. Prende un argomento: 0 per nessuno, 1 per pennello.
Funzione: setFillStyleQuesta funzione imposta lo stile di riempimento del Painter. Prende un argomento: 0 per nessuno, 1 per riempire con il colore di primo piano, 2 per riempire con il colore di sfondo, 3 per riempire con un motivo.
Oggetto: IteratorQuesto oggetto ti permette di cambiare i valori dei pixel uno alla volta. Il nome di alcune funzioni dipende dallo spazio dei colori; per esempio, se lo spazio dei colori del livello è RGB, avrai setR, setG e setB, e per CMYK: setC, setM, setY e setK. Nella documentazione sotto assumeremo che lo spazio viene chiamato ABC, con tre canali: A, B e C.
Funzioni: setA, setB, setCQueste funzioni prendono un argomento: il nuovo valore di uno dei canali di questo pixel.
Funzione: setABCImposta il valore di tutti i canali. Questa funzione prende un argomento: un array con i nuovi valori di tutti i canali.
Funzioni: getA, getB, getCRestituisce il valore di uno dei canali di questo pixel.
Funzione: getABCRestituisce un array con i valori di tutti i canali.
Funzione: darkenScurisci un pixel. Questa funzione prende almeno un argomento: shade (quantità usata per scurire tutti i canali dei colori). Questa funzione può prendere il seguente argomento opzionale: compensation (per limitare l'oscuramento).
Funzione: invertColorInverti il colore di un pixel.
Funzione: nextAumenta la posizione, vai al prossimo pixel.
Funzione: isDoneRestituisci vero se l'iteratore è alla fine (non ci sono più pixel).
Risorse
Ecco dei suggerimenti o elenchi parziali di risorse per &chalk;. Per Brush e Pattern: puoi avere il nome del pennello o del motivo associato dal selettore nella barra degli strumenti di &chalk;. Un elenco di identificativi per gli spazi dei colori di &chalk;: LABA, RGBA, RGBA16, RGBAF32, RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16.