Skriptid &chalk; võimaldab kirjutada Ruby või Pythoni skripte (interpretaatorite kättesaadavus sõltub sellest, mida sinu distributsioon või sinu masina administraator on paigaldanud). Alljärgnevalt kirjeldame skriptimise API-t. Mõned näited on &chalk;ga kaasa pandud, need leiab kataloogist /usr/share/apps/chalk/scripts (või /opt/kde/share/apps/chalk/scripts). Mooduli <classname >Krosschalkcore</classname > muutujad ChalkDocument tagastab Document-objekti ChalkScript tagastab ScriptProgress-objekti Objekti saab hankida mooduli Krosschalkcore funktsiooni get kasutades, milleks Ruby korral tuleb kirjutada midagi sellist: doc = Krosschalkcore::get("ChalkDocument") script = Krosschalkcore::get("ChalkScript") Mooduli <classname >Krosschalkcore</classname > funktsioonid Funktsioon: getBrushSee funktsioon tagastab klassi Brush, mis võetakse &chalk; ressursside loendist. Kasutada saab üht argumenti: pintsli nimi. Näide (Ruby): Krosschalkcore::getBrush("Circle (05)") Funktsioon: getFilterSee funktsioon tagastab klassi Filter, mis võetakse &chalk; ressursside loendist. Kasutada saab üht argumenti: filtri nimi. Näide (Ruby): Krosschalkcore::getFilter("invert") Funktsioon: getPatternSee funktsioon tagastab klassi Pattern, mis võetakse &chalk; ressursside loendist. Kasutada saab üht argumenti: mustri nimi. Näide (Ruby): Krosschalkcore::getPattern("Bricks") Funktsioon: loadBrushSee funktsioon laadib klassi Brush ja tagastab siis selle. Kasutada saab üht argumenti: pintsli failinimi. Funktsioon: loadPatternSee funktsioon laadib klassi Pattern ja tagastab siis selle. Kasutada saab üht argumenti: mustri failinimi. Funktsioon: newCircleBrushSee funktsioon tagastab klassi Brush ringikujulisena. Kasutada tuleb vähemalt kaht argumenti: laius ja kõrgus. Kasutada saab veel kaht argumenti: varju laius ja varju kõrgus. Kui varju pole määratud, seda ei kasutata. Näide (Ruby): Krosschalkcore::newCircleBrush(10,20) # loob puhta ringi Krosschalkcore::newCircleBrush(10,20,5,10) # loob ülemineku Funktsioon: newHSVColorSee funktsioon tagastab uue klassi Color määratud HSV-tripletiga. Kasutada saab kolme argumenti: toon (0 kuni 255), küllastus (0 kuni 255), väärtus (0 kuni 255). Näide (Ruby): Krosschalkcore::newHSVColor(255,125,0) Funktsioon: newImageSee funktsioon tagastab uue klassi Image. Kasutada saab nelja argumenti: laius, kõrgus, värviruumi ID, pildi nimi. Tagastatakse Image-objekt. Näide (Ruby): Krosschalkcore::newImage(10,20, "RGBA", "kikoo") Funktsioon: newRectBrushSee funktsioon tagastab klassi Brush ristkülikukujulisena. Kasutada tuleb vähemalt kaht argumenti: laius ja kõrgus. Kasutada saab veel kaht argumenti: varju laius ja varju kõrgus. Kui varju pole määratud, seda ei kasutata. Näide (Ruby): Krosschalkcore::newRectBrush(10,20) # loob puhta ristküliku Krosschalkcore::newRectBrush(10,20,5,10) # loob ülemineku Funktsioon: newRGBColorSee funktsioon tagastab uue klassi Color määratud RGB-tripletiga. Kasutada saab kolme argumenti: punane (0 kuni 255), sinine (0 kuni 255), roheline (0 kuni 255). Näide (Ruby): Krosschalkcore::newRGBColor(255,0,0) # loob punase värvi Krosschalkcore::newRGBColor(255,255,255) # loob valge värvi <classname >Krosschalkcore</classname > objektide kirjeldused ja funktsioonide loendid Objekt: PaintLayer Funktsioon: beginPainting Funktsioon: convertToColorspaceTeisendab pildi värviruumi. See funktsioon kasutab üht argumenti: sihtvärviruumi nimi. Näide (Ruby): image.convertToColorspace("CMYK") Funktsioon: createHistogramSee funktsioon loob antud kihi histogrammi. Kasutada saab kaht argumenti: histogrammi tüüp ("RGB8HISTO") ja 0, kui histogramm on lineaarne, või 1, kui histogramm on logaritmiline. Funktsioon: createHLineIteratorLoob iteraatori üle kihi, itereerib reas. Funktsioon kasutab kolme argumenti: x (algus reas), y (rea vertikaalne positsioon), rea laius. Funktsioon: createPainterSee funktsioon loob klassi Painter, mis võimaldab kihil joonistada. Funktsioon: createRectIteratorLoob iteraatori üle kihi, itereerib ristkülikulises piirkonnas. Funktsioon kasutab nelja argumenti: x, y, ristküliku laius, ristküliku kõrgus. Funktsioon: createVLineIteratorLoob iteraatori üle kihi, itereerib veerus. Funktsioon kasutab kolme argumenti: x (veeru horisontaalne positsioon), y (algus veerus), veeru kõrgus. Funktsioon: endPaintingSelle funktsiooniga saab sulgeda aktiivse tagasivõtmise kirje ja lisada selle ajalukku. Funktsioon: fastWaveletTransformationTagastab kihist teisendatud kiirlainiku. Funktsioon: fastWaveletUntransformationTeisendab kiirlainiku tagasi kihti. Kasutada saab üht argumenti: lainikuobjekt. Näide (Ruby): wavelet = layer.fastWaveletTransformation() layer.fastWaveletUntransformation(wavelet) Funktsioon: getHeightTagastab kihi kõrguse. Funktsioon: getWidthTagastab kihi laiuse. Objekt: Filter Funktsioon: getFilterConfigurationTagastab antud filtriga seotud klassi FilterConfiguration. Funktsioon: processSee funktsioon rakendab filtri. Kasutada tuleb vähemalt üht argumenti: lähtekiht. Kasutada saab veel nelja argumenti: x, y, width, height. (x,y,width,height) määravad ristkülikulise ala, millele filter rakendatakse. Kui ristkülik pole määratud, rakendatakse filter tervele lähtekihile. Näide (Ruby): 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 ) Objekt: FilterConfiguration Funktsioon: getPropertySee funktsioon tagastab seonduva klassi Filter parameetri väärtuse. Kasutada saab üht argumenti: parameetri nimi. Funktsioon: setPropertySee funktsioon defineerib seonduva klassi Filter parameetri. Kasutada saab kaht argumenti: parameetri nimi ja väärtus, mille tüüp sõltub klassist Filter. Objekt: Histogram See klass võimaldab ligipääsu klassi PaintLayer histogrammile. Näide (Ruby): 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 Funktsioon: getChannelTagastab valitud kanali. Funktsioon: getCountSee funktsioon tagastab histogrammi kasutatud pikslite arvu. Funktsioon: getHighestSee funktsioon tagastab histogrammi suurima väärtuse. Funktsioon: getLowestSee funktsioon tagastab histogrammi väikseima väärtuse. Funktsioon: getMaxSee funktsioon tagastab histogrammi maksimaalse raja (väärtused maksimumist suuremas positsioonis on null). Väärtus on vahemikus 0,0 – 1,0. Funktsioon: getMeanSee funktsioon tagastab histogrammi keskmise. Funktsioon: getMinSee funktsioon tagastab histogrammi minimaalse raja (väärtused miinimumist väiksemas positsioonis on null). Väärtus on vahemikus 0,0 – 1,0. Funktsioon: getNumberOfBinsTagastab kastide arvu histogrammis. Funktsioon: getTotalSee funktsioon tagastab histogrammi kõigi väärtuste summa. Funktsioon: getValueTagastab histogrammi kasti väärtuse. See funktsioon kasutab üht argumenti: indeks vahemikus 0 kuni 255. Funktsioon: setChannelValib kihi kanali, mille kohta hankida histogrammi tulemus. See funktsioon kasutab üht argumenti: kanali number. Objekt: ScriptProgress ScriptProgress'i kasutatakse &chalk; olekuriba edenemisriba haldamiseks. Näide (Ruby): script = Krosschalkcore::get("ChalkScript") script.setProgressTotalSteps(1000) script.setProgressStage("progressive", 0) for i in 1..900 script.incProgress() end script.setProgressStage("brutal", 1000) Funktsioon: incProgressSee funktsioon kasvatab edenemist ühe sammu võrra. Funktsioon: setProgressSee funktsioon määrab edenemise väärtuse. See kasutab üht argumenti: edenemise väärtus. Funktsioon: setProgressStageSee funktsioon määrab edenemise väärtuse ja näitab teksti. Funktsioon: setProgressTotalStepsSee funktsioon määrab sammude arvu, mida skript nõuab. See kasutab üht argumenti: edenemise maksimumväärtus. Objekt: WaveletSee objekt sisaldab klassi PaintLayer lainikteisenduse koefitsiente. Funktsioon: getDepthTagastab kihi sügavuse. Funktsioon: getNCoeffTagastab N-nda koefitsiendi väärtuse. Funktsioon kasutab üht argumenti: koefitsiendi indeks, Funktsioon: getNumCoeffsTagastab koefitsientide arvu antud lainikus (= suurus * suurus * sügavus). Funktsioon: getSizeTagastab lainiku suuruse (suurus = laius = kõrgus). Funktsioon: getXYCoeffTagastab koefitsiendi väärtuse. Funktsioon kasutab kaht argumenti: x ja y. Funktsioon: setNCoeffMäärab N-nda koefitsiendi väärtuse. Funktsioon kasutab kaht argumenti: koefitsiendi indeks ja koefitsiendi uus väärtus. Funktsioon: setXYCoeffMäärab koefitsiendi väärtuse. Funktsioon kasutab kolme argumenti: x, y ja koefitsiendi uus väärtus. Objekt: Painter Funktsioon: convolveSee funktsioon rakendab pildile konvolutsioonituuma. Kasutada tuleb vähemalt kolme argumenti: loend tuuma loenditega (kõik loendid peavad olema ühesuguse suurusega), tegur ja nihe. Piksli väärtus määratakse järgmise funktsiooniga: K * P / tegur + nihe, kus K on tuum ja P naabruskond. Kasutada võib järgmisi lisaargumente: borderOp (määrab, kuidas konvolveerida piksleid pildi piiril: 0 = kasutatakse vaikevärvi, 1 = kasutatakse pildi vastaskülje pikslit, 2 = kasutatakse piiri pikslit, 3 = välditakse piiri piksleid), channel (1 tähendab värvi, 2 alfat, 3 mõlemat), x, y, width, height. Funktsioon: setFillThresholdMäärab täitmise läve. Kasutada saab üht argument: lävi. Funktsioon: fillColorAlustab täitmist värviga. Kasutada saab kaht argumenti: x ja y. Funktsioon: fillPatternAlustab täitmist mustriga. Kasutada saab kaht argumenti: x ja y. Funktsioon: paintPolylineSee funktsioon joonistab kompleksjoone. Kasutada saab kaht argumenti: X-positsioonide loend ja Y-positsioonide loend. Funktsioon: paintLineSee funktsioon joonistab sirge. Kasutada saab viit argumenti: x1, y1, x2, y2 ja pressure (surve). Funktsioon: paintBezierCurveSee funktsioon joonistab Bezier' kõvera. Kasutada saab kümmet argumenti: x1, y1, p1, cx1, cy1, cx2, cx2, x2, y2, p2, kus (x1,y1) on alguspositsioon, p1 surve alguses, (x2,y2) lõpp-positsioon, p2 surve lõpus. (cx1,cy1) ja (cx2,cy2) on kontrollpunktide positsioonid. Funktsioon: paintEllipseSee funktsioon joonistab ellipsi. Kasutada saab viit argumenti: x1, y1, x2, y2, pressure, kus (x1,y1) ja (x2,y2) on fookuste positsioonid. Funktsioon: paintPolygonSee funktsioon joonistab hulknurga. Kasutada saab kaht argumenti: X-positsioonide loend ja Y-positsioonide loend. Funktsioon: paintRectSee funktsioon joonistab ristküliku. Kasutada saab viit argumenti: x, y, width (laius), height (kõrgus), pressure (surve). Funktsioon: paintAtSee funktsioon joonistab määratud positsioonis. Kasutada saab kolme argumenti: x, y, pressure (surve). Funktsioon: setPaintColorSee funktsioon määrab joonistamise värvi (nimetatakse ka esiplaani värviks). Kasutada saab üht argumenti: Color (värv). Funktsioon: setBackgroundColorSee funktsioon määrab taustavärvi. Kasutada saab üht argumenti: Color (värv). Funktsioon: setPatternSee funktsioon määrab täitmisel kasutatava mustri. Kasutada saab üht argumenti: Pattern-objekt. Funktsioon: setBrushSee funktsioon määrab joonistamisel kasutatava pintsli. Kasutada saab üht argumenti: Brush-objekt. Funktsioon: setPaintOpSee funktsioon määratleb joonistamisoperatsiooni. Kasutada saab üht argumenti: joonistamisoperatsiooni nimi. Funktsioon: setDuplicateOffsetSee funktsioon määrab klooni nihke. Kasutada saab kaht argumenti: horisontaalne nihe ja vertikaalne nihe. Funktsioon: setOpacitySee funktsioon määrab joonistamise läbipaistmatuse. Kasutada saab üht argumenti: läbipaistmatus vahemikus 0 kuni 255. Funktsioon: setStrokeStylesee funktsioon määrab joone stiili. Kasutada saab üht argumenti: 0 tähendab puudumist ja 1 pintslit. Funktsioon: setFillStyleSee funktsioon määrab klassi Painter täitmise stiili. Kasutada saab üht argumenti: 0 tähendab puudumist, 1 täitmist esiplaani värviga, 2 täitmist taustavärviga, 3 täitmist mustriga. Objekt: IteratorSee objekt võimaldab muuta piksliväärtusi ükshaaval. Osade funktsioonide nimi sõltub värviruumist: kui näiteks kihi värviruumiks on RGB, siis on funktsioonideks setR, setG ja setB, kui aga CMYK, siis setC, setM, setY ja setK. Alljärgnevas dokumentatsioonis eeldame, et värviruumi nimi on ABC, millel on kolm kanalit: A, B ja C. Funktsioonid: setA, setB, setCNeed funktsioonid kasutavad üht argumenti: antud piksli ühe kanali uus väärtus. Funktsioon: setABCMäärab kõigi kanalite väärtuse. Funktsioon kasutab üht argumenti: massiiv kõigi kanalite uute väärtustega. Funktsioonid: getA, getB, getCTagastab piksli ühe kanali väärtuse. Funktsioon: getABCTagastab massiivi kõigi kanalite väärtustega. Funktsioon: darkenTumendab pikslit. See funktsioon kasutab vähemalt üht argumenti: shade (kogus, mille võrra kõiki värvikanaleid tumendatakse). Funktsioon võib kasutada veel üht lisaargumenti: compensation (piirab tumendamist). Funktsioon: invertColorInverteerib piksli värvi. Funktsioon: nextKasvatab positsiooni, liigub järgmisele pikslile. Funktsioon: isDoneTagastab 'tõene', kui iteraator asub lõpus (rohkem piksleid enam pole). Ressursid Toome siin mõningad vihjed ja &chalk; ressursside osalise loendi: Klassid Brush ja Pattern: nime ja seonduva pintsli või mustri leiab &chalk; tööriistariba valijast. &chalk; värviruumide ID-de loend: LABA, RGBA, RGBA16, RGBAF32, RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16.