Använda skript I &chalk; kan du skriva skript med Ruby eller Python (tillgängligheten för tolkarna kan bero på vad din distribution eller administratören av din dator installerade). Här hittar du en beskrivning av programmeringsgränssnittet för skript. Vissa exempel levereras med &chalk;, och du kan hitta dem i /usr/share/apps/chalk/scripts (eller /opt/kde/share/apps/chalk/scripts). Variabler i modulen <classname >Krosschalkcore</classname > ChalkDocument returnerar ett Document-objekt ChalkScript returnerar ett ScriptProgress-objekt Du kan hämta ett objekt med funktionen get i modulen Krosschalkcore. I Ruby måste du skriva något som liknar det här: doc = Krosschalkcore::get("ChalkDocument") script = Krosschalkcore::get("ChalkScript") Funktioner i modulen <classname >Krosschalkcore</classname > Funktion: getBrushFunktionen returnerar en pensel (Brush) som tas från listan med &chalk;s resurser. Den har ett argument: penselns namn. Till exempel (i Ruby): Krosschalkcore::getBrush("Circle (05)") Funktion: getFilterFunktionen returnerar ett filter (Filter) som tas från listan med &chalk;s resurser. Den har ett argument: filtrets namn. Till exempel (i Ruby): Krosschalkcore::getFilter("invert") Funktion: getPatternFunktionen returnerar ett mönster (Pattern) som tas från listan med &chalk;s resurser. Den har ett argument: mönstrets namn. Till exempel (i Ruby): Krosschalkcore::getPattern("Bricks") Funktion: loadBrushFunktionen laddar en pensel (Brush) och returnerar den därefter. Den har ett argument: penselns filnamn. Funktion: loadPatternFunktionen laddar ett mönster (Pattern) och returnerar det därefter. Den har ett argument: mönstrets filnamn. Funktion: newCircleBrushFunktionen returnerar en pensel (Brush) med en cirkulär form. Den har minst två argument: bredd och höjd. Den kan också ha två ytterligare argument: skuggans bredd och höjd. Om skuggan inte anges, används ingen. Till exempel (i Ruby): Krosschalkcore::newCircleBrush(10,20) # skapa en enkel cirkel Krosschalkcore::newCircleBrush(10,20,5,10) # skapa en toning Funktion: newHSVColorFunktionen returnerar en ny färg (Color) med den angivna HSV-trippeln. Den har tre argument: färgtonskomponenten (0 till 255), färgmättnadskomponenten (0 till 255), och värdekomponenten (0 till 255). Till exempel (i Ruby): Krosschalkcore::newRGBColor(255,125,0) Funktion: newImageFunktionen returnerar en ny bild (Image). Den har fyra argument: bredd, höjd, färgrymdsidentifikation, bildens namn. Den returnerar objektet Image. Till exempel (i Ruby): Krosschalkcore::newImage(10,20, "RGBA", "kikoo") Funktion: newRectBrushFunktionen returnerar en pensel (Brush) med en rektangulär form. Den har minst två argument: bredd och höjd. Den kan också ha två ytterligare argument: skuggans bredd och höjd. Om skuggan inte anges, används ingen. Till exempel (i Ruby): Krosschalkcore::newRectBrush(10,20) # skapa en enkel rektangel Krosschalkcore::newRectBrush(10,20,5,10) # skapa en toning Funktion: newRGBColorFunktionen returnerar en ny färg (Color) med den angivna RGB-trippeln. Den har tre argument: den röda komponenten (0 till 255), den blåa komponenten (0 till 255), och den gröna komponenten (0 till 255). Till exempel (i Ruby): Krosschalkcore::newRGBColor(255,0,0) # skapa en röd färg Krosschalkcore::newRGBColor(255,255,255) # skapa en vit färg Beskrivningar och funktionslista för diverse objekt i <classname >Krosschalkcore</classname > Objekt: PaintLayer Funktion: beginPainting Funktion: convertToColorspaceKonvertera bilden till en färgrymd. Funktionen har ett argument: namnet på den resulterande färgrymden. Till exempel (i Ruby): image.convertToColorspace("CMYK") Funktion: createHistogramFunktionen skapar ett histogram för lagret. Den har två argument: histogramtypen ("RGB8HISTO"), och 0 om histogrammet är linjärt eller 1 om det är logatimiskt. Funktion: createHLineIteratorSkapa en iterator för ett lager, som går igenom en rad. Funktionen har tre argument: x (start i raden), y (radens vertikala position), radens bredd. Funktion: createPainterFunktionen skapar ett målningsobjekt (Painter) som låter dig måla på lagret. Funktion: createRectIteratorSkapa en iterator för ett lager, som går igenom ett rektangulärt område. Funktionen har fyra argument: x, y, rektangelns bredd, rektangelns höjd. Funktion: createVLineIteratorSkapa en iterator för ett lager, som går igenom en kolumn. Funktionen har tre argument: x (kolumnens horisontella position), y (start i kolumnen), kolumnens höjd. Funktion: endPaintingAnvänd funktionen för att stänga aktuell ångringspost och lägga till den i historiken. Funktion: fastWaveletTransformationReturnerar lagrets snabba wavelet-transform. Funktion: fastWaveletUntransformationGör omvänd transform av en snabb wavelet till lagret. Den har ett argument: ett wavelet-objekt. Till exempel (i Ruby): wavelet = layer.fastWaveletTransformation() layer.fastWaveletUntransformation(wavelet) Funktion: getHeightReturnera lagrets höjd. Funktion: getWidthReturnera lagrets bredd. Objekt: Filter Funktion: getFilterConfigurationFunktionen returnerar filterinställningen (FilterConfiguration) som hör ihop med filtret. Funktion: processFunktionen utför filtret. Den har minst ett argument: lagret som är källan. Du kan också använda fyra följande argument: x, y, bredd, höjd. (x, y, bredd,höjd) definierar den rektangulära område där filtret beräknas. Om rektangeln inte är definierad, används filtret på hela lagret. Till exempel (i 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 Funktion: getPropertyFunktionen returnerar en parameters värde för tillhörande filter (Filter). Den har ett argument: parameterns namn. Funktion: setPropertyFunktionen definierar en parameter för tillhörande filter (Filter). Den har två argument: parameterns namn och värde, vars typ beror på filtret. Objekt: Histogram Klassen låter dig komma åt histogrammet för ett målningslager (PaintLayer). Exempel (i 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 Funktion: getChannelReturnera den valda kanalen. Funktion: getCountFunktionen returnerar antal bildpunkter som används av histogrammet. Funktion: getHighestFunktionen returnerar histogrammets största värde. Funktion: getLowestFunktionen returnerar histogrammets minsta värde. Funktion: getMaxFunktionen returnerar histogrammets maximala gränsvärde (värden på större avstånd än maximala värdet är noll). Värdet är i intervallet 0.0 – 1.0. Funktion: getMeanDen här funktionen returnerar histogrammets medelvärde. Funktion: getMinFunktionen returnerar histogrammets minimala gränsvärde (värden på mindre avstånd än minimala värdet är noll). Värdet är i intervallet 0.0 – 1.0. Funktion: getNumberOfBinsReturnerar antal staplar i histogrammet. Funktion: getTotalDen här funktionen returnerar summan av alla värden i histogrammet. Funktion: getValueReturnerar värdet för en stapel i histogrammet. Funktionen har ett argument: indexet i intervallet [0..255]. Funktion: setChannelVälj kanal i lagret som resultatet i histogrammet ska hämtas från. Funktionen har ett argument: kanalnumret. Objekt: ScriptProgress ScriptProgress används för att hantera förloppsraden i &chalk;s statusrad. Till exempel (i Ruby): script = Krosschalkcore::get("ChalkScript") script.setProgressTotalSteps(1000) script.setProgressStage("progressive", 0) for i in 1..900 script.incProgress() end script.setProgressStage("brutal", 1000) Funktion: incProgressDen här funktionen ökar förloppsindikeringen med ett steg. Funktion: setProgressDen här funktionen ställer in förloppsindikeringens värde. Den har ett argument: förloppsindikeringens värde. Funktion: setProgressStageDen här funktionen ställer in förloppsindikeringens värde och visar texten. Funktion: setProgressTotalStepsFunktionen ställer in antal steg som skriptet kommer att behöva. Den har ett argument: det maximala värdet hos förloppsindikeringen Objekt: WaveletObjektet innehåller koefficienterna för en wavelet-transform av ett målningslager (PaintLayer). Funktion: getDepthReturnerar lagrets djup. Funktion: getNCoeffReturnerar värdet på den N:e koefficienten. Funktionen har ett argument: koefficientens index. Funktion: getNumCoeffsReturnerar antal koefficienter i denna wavelet-transform (= storlek * storlek * djup). Funktion: getSizeReturnerar wavelet-transformens storlek (storlek = bredd * höjd). Funktion: getXYCoeffReturnerar en koefficients värde. Funktionen har två argument: x och y. Funktion: setNCoeffStäller in värdet för den N:e koefficienten. Funktionen har två argument: koefficientens index och koefficientens nya värde. Funktion: setXYCoeffStäller in värdet för en koefficient. Funktionen har tre argument: x, y ochkoefficientens nya värde. Objekt: Painter Funktion: convolveFunktionen använder en faltningskärna på en bild. Den har minst tre argument: en lista av listor med kärnan (alla listor måste ha samma storlek), faktor och förskjutning. Värdet av en bildpunkt anges av följande funktion: K * P / faktor + förskjutning, där K är kärnan och P är grannskapet. Den kan ha följande valfria argument: kantoperation (styr hur bildpunkterna i kanten på en bild ska faltas: 0 = använd förvald färg, 1 = använd bildpunkten på bildens motsatta sida, 2 = använd kantens bildpunkt, 3 = undvik bildpunkter vid kanten), kanal (1 för färg, 2 för alfa, 3 för båda), x, y, bredd, höjd. Funktion: setFillThresholdStäller in fylltröskeln. Den har ett argument: tröskeln. Funktion: fillColorBörja fylla med en färg. Den har två argument: x och y. Funktion: fillPatternBörja fylla med ett mönster. Den har två argument: x och y. Funktion: paintPolylineFunktionen ritar en flerlinje. Den har två argument: en lista med x-positioner och en lista med y-positioner. Funktion: paintLineFunktionen ritar en linje. Den har fem argument: x1, y1, x2, y2, and tryck. Funktion: paintBezierCurveFunktion ritar en Bezier-kurva. Den har tio argument: x1, y1, p1, cx1, cy1, cx2, cx2, x2, y2, p2, där (x1,y1) är startpositionen, p1 är trycket vid start, (x2,y2) är slutpositionen, p2 är trycket vid slutet. (cx1,cy1) och (cx2,cy2) är positionerna för styrpunkterna. Funktion: paintEllipseFunktion ritar en ellips. Den har fem argument: x1, y1, x2, y2, tryck, där (x1,y1) och (x2,y2) är positionerna för de två centra. Funktion: paintPolygonFunktionen ritar en polygon. Den har två argument: en lista med x-positioner och en lista med y-positioner. Funktion: paintRectFunktionen ritar en rektangel. Den har fem argument: x, y, bredd höjd, tryck. Funktion: paintAtFunktionen målar en given position. Den har tre argument: x, y, tryck. Funktion: setPaintColorFunktionen ställer in målarfärgen (också kallad förgrundsfärgen). Den har ett argument: en färg (Color). Funktion: setBackgroundColorFunktionen ställer in bakgrundsfärgen. Den har ett argument: en färg (Color). Funktion: setPatternFunktionen ställer in mönstret som används att fylla med. Den har ett argument: ett mönsterobjekt (Pattern). Funktion: setBrushFunktionen ställer in penseln som används att måla med. Den har ett argument: ett penselobjekt (Brush). Funktion: setPaintOpFunktionen definierar en målningsoperation. Den har ett argument: målningsoperationens namn. Funktion: setDuplicateOffsetFunktionen definierar duplikatets förskjutning. Den har två argument: horisontell förskjutning och vertikal förskjutning. Funktion: setOpacityFunktionen ställer in målningens ogenomskinlighet. Den har ett argument: ogenomskinligheten i intervallet 0 till 255. Funktion: setStrokeStyleFunktionen ställer in streckets stil. Den har ett argument: 0 för inget, eller 1 för pensel. Funktion: setFillStyleFunktionen ställer in fyllstilen för målningsobjektet (Painter). Den har ett argument: 0 för ingen, 1 för fyll med förgrundsfärg, 2 för fyll med bakgrundsfärg, 3 för fyll med mönster. Objekt: IteratorObjektet låter dig ändra bildpunktsvärden ett i taget. Namnet på vissa funktioner beror på färgrymden, om lagrets färgrymd till exempel är RGB, finns setR, setG och setB, och för CMYK, setC, setM, setY och setK. I dokumentationen antar vi att färgrymden kallas ABC, med tre kanaler: A, B, C. Funktioner: setA, setB, setCDessa funktioner har ett argument: det nya värdet för en av bildpunktens kanaler. Funktion: setABCStäller in alla kanalers värde. Funktionen har ett argument: ett fält med de nya värdena för alla kanaler. Funktion getA, getB, getCReturnera värdet för en av kanalerna i den här bildpunkten. Funktion: getABCReturnera ett fält med alla kanalers värden. Funktion: darkenGör en bildpunkt mörkare. Funktionen har minst ett argument: skugga (värdet som används för att göra alla färgkanaler mörkare). Funktionen kan ha följande valfria argument: kompensation (för att begränsa mörknandet). Funktion: invertColorInvertera färgen för en bildpunkt. Funktion: nextÖka positionen, och gå till nästa bildpunkt. Funktion: isDoneReturnera sant om iteratorn är i slutet (inga fler bildpunkter är tillgängliga). Resurser Här är tips eller partiella listor med resurser för &chalk;. För pensel (Brush) och mönster (Pattern): Du kan hämta namn och tillhörande pensel eller mönster från markeringsverktyget i &chalk;s verktygsrad. En lista med identifierare av färgrymder i &chalk; 1.5: LABA, RGBA, RGBA16, RGBAF32, RGBAF16HALF, LMSAF32, GRAYA, GRAYA16, CMYK, CMYKA16.