Zeichnen
Die Werkzeuge des Editors als Befehle – die Werkzeuge der Oberfläche rufen genau diese auf. Farb-, Pinsel- und Werkzeugoptionen, die du weglässt, kommen aus dem Bearbeitungskontext. Malen ignoriert Auswahl und Symmetrie, solange du nicht respectSelection = true und symmetry = app.getContext().symmetry übergibst. (24 Funktionen)
app.blur(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Weichzeichnet die Pixel unter dem Pinsel entlang der Punkte – genau das Weichzeichnen-Werkzeug der Oberfläche.
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Pinseloptionen (siehe „Optionsgruppen“) sowie:strength(integer 0–8; Standard context.blurStrength) — Weichzeichnerradius in Pixeln.
Gibt nichts zurück.
app.dodgeBurn(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Hellt die Pixel unter dem Pinsel entlang der Punkte auf (Abwedeln) oder dunkelt sie ab (Nachbelichten), in OKLCH-Helligkeit – genau das Abwedeln/Nachbelichten-Werkzeug der Oberfläche. Farbton und Chroma bleiben erhalten, solange hueShift nicht gesetzt ist. Jedes Pixel ändert sich pro Aufruf nur einmal; transparente Pixel bleiben unberührt.
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Pinseloptionen (siehe „Optionsgruppen“) sowie:strength(integer 1–100; Standard context.dodgeBurnStrength) — Wie weit sich die OKLCH-Helligkeit jedes berührten Pixels verschiebt: 100 = die Hälfte von Schwarz bis Weiß, 25 = 0,125.hueShift(integer 0–60; Standard context.dodgeBurnHueShift) — Grad, um die sich der OKLCH-Farbton jedes berührten Pixels zu warmem Gelb (Abwedeln) oder kühlem Blau (Nachbelichten) dreht, nie darüber hinaus, wobei die Chroma pro Grad um 0,5 % verringert (Abwedeln) oder vertieft (Nachbelichten) wird. 0 behält Farbton und Chroma.burn(boolean; Standard false) — Abdunkeln (Nachbelichten) statt aufhellen (Abwedeln).
Gibt nichts zurück.
app.drawContour(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Füllt den geschlossenen Pfad durch die Punkte, die Pfadpixel eingeschlossen (die Kontur von Aseprite) – genau das Kontur-Werkzeug der Oberfläche.
layerId(string)frameId(string)points(table) — Der Freihandpfad als Liste von Punkten { x = n, y = n }; er wird automatisch geschlossen und gefüllt.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.
Gibt nichts zurück.
app.drawCurve(layerId, frameId, anchors, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet einen Pfad aus kubischen Bézierkurven durch die Ankerpunkte – genau das Kurven-Werkzeug der Oberfläche. Übergib closed = true für eine geschlossene Form (und fill = "filled", um sie zu füllen).
layerId(string)frameId(string)anchors(table) — Die Ankerpunkte des Pfads der Reihe nach: { x = n, y = n } (oder { n, n }), jeweils optional mit Bézier-Griffen inX/inY (der Kontrollpunkt des ankommenden Segments) und outX/outY (des abgehenden). Ein Ankerpunkt ohne Griffe ist eine scharfe Ecke; zwei in Folge werden durch eine gerade Linie verbunden.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.closed(boolean; Standard false) — Verbindet den letzten Ankerpunkt wieder mit dem ersten.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Geschlossene Pfade: den Umriss zeichnen oder auch das Innere füllen.width(integer 1–64; Standard context.lineWidth) — Strichstärke in Pixeln (1 = eine harte 1px-Kurve); breitere Striche bekommen runde Enden.pixelPerfect(boolean; Standard context.curvePixelPerfect) — Entfernt die L-förmigen Ecken, die eine 1px-Kurve aufnimmt, für saubere Pixel-Art-Linien (bei breiteren Strichen ignoriert).
Gibt nichts zurück.
app.drawEllipse(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet eine Ellipse, die in das Rechteck zwischen den beiden Ecken einbeschrieben ist – genau das Ellipsen-Werkzeug der Oberfläche.
layerId(string)frameId(string)x0(number) — Erste Ecke.y0(number)x1(number) — Gegenüberliegende Ecke (einschließlich).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.
Gibt nichts zurück.
app.drawGradient(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Füllt die Region, die der Farbeimer ab (x0, y0) füllen würde – die zusammenhängende Fläche seiner Farbe (oder jedes passende Pixel, wenn nicht zusammenhängend), innerhalb der Auswahl – mit einem Verlauf von startColor bei (x0, y0) zu endColor bei (x1, y1) oder entlang von stops – genau das Farbverlauf-Werkzeug der Oberfläche. Bei Symmetrie erhalten die gespiegelten Regionen denselben Verlauf. Ein Ziehen der Länge null oder ein Start außerhalb der Leinwand oder der Auswahl bewirkt nichts.
layerId(string)frameId(string)x0(number) — Verlaufsstart (wo startColor sitzt).y0(number)x1(number) — Verlaufsende (wo endColor sitzt).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:startColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Farbe am ersten Punkt.endColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.backgroundColor) — Die Farbe am zweiten Punkt.stops({ color, color, ... } or { { color = c, position = 0-1 }, ... }; Standard When gradientColors is "stops" and neither startColor nor endColor is given, the gradientStops list.) — Eine Farbreihe mit mehreren Stopps aus 2-32 Farben vom ersten zum zweiten Punkt, statt startColor und endColor. Einfache Farben werden gleichmäßig verteilt; Positionen laufen der Reihe nach von 0-1, und zwei Stopps an einer Position ergeben eine harte Kante.gradientType(GradientType: "linear" | "radial"; Standard context.gradientType) — Eine gerade Farbreihe zwischen den Punkten oder vom ersten ausstrahlend.dithering(GradientDithering: "none" | "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise"; Standard context.gradientDithering) — Geordnetes Dithering, auf die Farbreihe angewendet (none = weich).snap(GradientSnap: "free" | "palette"; Standard context.gradientSnap) — Frei mischen oder nur Palettenfarben (das Dithering springt dann zwischen benachbarten Palettenfarben).contiguous(boolean; Standard context.bucketFillMode (true für den zusammenhängenden Modus des Kontexts, false für global)) — Nur die zusammenhängende Region (true) oder jedes passende Pixel auf der Leinwand (false).tolerance(integer 0–255; Standard context.bucketTolerance) — Der größte Farbunterschied pro Kanal, der noch als Treffer zählt.diagonal(boolean; Standard context.bucketDiagonal) — Nur bei zusammenhängend: breitet sich auch auf diagonale Nachbarn aus (8er-Nachbarschaft), sodass die Region durch diagonale 1px-Linien sickert.stopAtGrid(boolean; Standard context.bucketStopAtGrid) — Begrenzt die Region auf die Rasterzelle, in die der Klick fällt (die Zelle eines isometrischen Rasters ist die Raute, die es zeichnet, samt den Linienpixeln ihrer beiden oberen Kanten).closeGap(integer 0–5; Standard context.bucketCloseGap) — Zusammenhängende Füllungen: Lücken im Umriss bis zu dieser Breite in Pixeln gelten als geschlossen, sodass die Füllung dort stoppt, statt auszulaufen. 0 = aus.
Gibt nichts zurück.
app.drawHexagon(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet ein Sechseck mit flacher Oberseite, das das Rechteck zwischen den beiden Ecken ausfüllt – genau das Sechseck-Werkzeug der Oberfläche.
layerId(string)frameId(string)x0(number) — Erste Ecke.y0(number)x1(number) — Gegenüberliegende Ecke (einschließlich).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.
Gibt nichts zurück.
app.drawIsoShape(layerId, frameId, x, y, width?, depth?, height?, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet einen isometrischen Körper (box, ramp, stairs, pyramid, prism, cylinder, cone, sphere oder dome) in Pixel-Art-Projektion – genau das Iso-Form-Werkzeug der Oberfläche. Kanten sind saubere Treppen (2 px breit pro 1 px nach unten bei 2:1), Flächen werden mit den Farben oben / links / rechts gefüllt, Innenkanten trennen sie, und die Silhouette wird umrandet. Die hintere Ecke der Grundfläche sitzt bei (x, y); x läuft auf dem Bildschirm nach rechts unten und y nach links unten, und height hebt die Oberseite an. Die runden Körper (cylinder, cone, sphere, dome) nehmen width als Durchmesser und ignorieren depth; die sphere ignoriert auch height.
layerId(string)frameId(string)x(number) — Anker: das äußerste linke Pixel der Kappe an der hinteren (oberen) Ecke der Grundfläche, auf dem Boden.y(number)width(number, optional) — Grundfläche entlang x (nach rechts unten), in Iso-Einheiten: Jede Einheit ist eine Zeile der 2:1-Kantentreppe. nil = isoWidth des Kontexts.depth(number, optional) — Grundfläche entlang y (nach links unten), in Iso-Einheiten. nil = isoDepth des Kontexts.height(number, optional) — Höhe in Pixeln (0 = eine flache Raute). nil = isoHeight des Kontexts.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Basisfarbe: die Oberseite bei automatischer Schattierung.shape(IsoShape: "box" | "ramp" | "stairs" | "pyramid" | "prism" | "cylinder" | "cone" | "sphere" | "dome"; Standard context.isoShape) — Welcher Körper gezeichnet wird.cap(integer 2–4; Standard context.isoCap) — Der flache Pixelabschnitt an den oberen und unteren Eckpunkten: 2 (gerade Breiten), 3 (ungerade) oder 4 (Vielfache von vier). Verhältnisse über 2 haben eine breitere natürliche Kappe.bevel(integer 0–1024; Standard context.isoBevel) — Nur box: fasst die vier oberen Kanten um diese Pixelzahl ab, eine 45-Grad-Schräge zwischen Oberseite und Seiten (0 = eckige Kanten). Begrenzt auf die Höhe und die Hälfte der Grundfläche.style(IsoShapeStyle: "filled" | "outline" | "filled-outline"; Standard context.isoStyle) — Flächen, Umriss oder beides.hiddenEdges(boolean; Standard context.isoHiddenEdges) — Zeichnet auch die Kanten hinter dem Körper, in der Farbe der Innenkanten (ein durchsichtiges Drahtgitter mit style outline).direction(IsoDirection: "+x" | "-x" | "+y" | "-y"; Standard context.isoDirection) — Ramp und stairs: die Richtung, in der sie abfallen. Prism: die Richtung, in die eine Schräge zeigt (+x und -x ergeben dasselbe Dach). Von den anderen Formen ignoriert.ratio(integer 1–8; Standard the sprite's isometric grid ratio (run / rise, rounded), else 2) — Pixel in der Breite pro Pixel nach unten entlang der Iso-Achsen.colors({ outline =, innerEdge =, top =, left =, right = } colors; Standard auto-shaded from color, or the context's isoColors when isoAutoShade is off) — Alle fünf Farben auf einmal (left ist die Fläche zu +y, nach links unten; right die Fläche zu +x). Überschreibt die automatische Schattierung.autoShade(boolean; Standard context.isoAutoShade) — Leitet die Farben auscolorab: Oberseite = color, die Seiten ein und zwei Stufen dunkler entlangramp(oder berechnet), Innenkanten noch dunkler, der Umriss am dunkelsten. false nutzt isoColors des Kontexts. Wird ignoriert, wenn colors angegeben ist.ramp(a list of colors ("#rrggbb[aa]" or { r, g, b, a }); Standard context.shades) — Die Farbreihe, entlang der die automatische Schattierung läuft, wenn siecolorenthält (das dunklere Ende wird über die Helligkeit gefunden). Sonst werden die Schattierungen berechnet und auf einem indizierten Sprite auf die Palette gerundet.
Gibt nichts zurück.
app.drawLine(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet eine gerade Linie zwischen den beiden Punkten – genau das Linien-Werkzeug der Oberfläche (width verdickt sie mit runden Enden).
layerId(string)frameId(string)x0(number)y0(number)x1(number)y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.width(integer 1–64; Standard context.lineWidth) — Linienstärke in Pixeln (1 = eine harte 1px-Linie); breitere Linien bekommen runde Enden.
Gibt nichts zurück.
app.drawPolygon(layerId, frameId, vertices, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet ein geschlossenes Polygon durch die Eckpunkte – genau das Polygon-Werkzeug der Oberfläche.
layerId(string)frameId(string)vertices(table) — Liste von Eckpunkten { x = n, y = n } (oder { n, n }), mindestens 2; das Polygon schließt sich automatisch zum ersten zurück.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.
Gibt nichts zurück.
app.drawRectangle(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet ein achsenparalleles Rechteck zwischen den beiden Ecken – genau das Rechteck-Werkzeug der Oberfläche (radius rundet die Ecken, gemeinsam oder einzeln). Ignoriert die Auswahl, solange respectSelection nicht true ist.
layerId(string)frameId(string)x0(number) — Erste Ecke.y0(number)x1(number) — Gegenüberliegende Ecke (einschließlich).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.radius(an integer 0–1024 for every corner, or a list of four { topLeft, topRight, bottomRight, bottomLeft }; Standard context.cornerRadius) — Rundet die Ecken, in Pixeln (0 = eckig): ein Radius für alle vier oder einer pro Ecke, im Uhrzeigersinn von links oben. Jeder wird auf die Hälfte der kürzeren Seite begrenzt.
Gibt nichts zurück.
app.drawStar(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet einen 5-zackigen Stern (Spitze nach oben), dessen äußere Spitzen jede Seite des Rechtecks zwischen den beiden Ecken berühren – genau das Stern-Werkzeug der Oberfläche.
layerId(string)frameId(string)x0(number) — Erste Ecke.y0(number)x1(number) — Gegenüberliegende Ecke (einschließlich).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.
Gibt nichts zurück.
app.drawStroke(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Freihand-Pinselstrich durch die Punkte – genau der Stift der Oberfläche (oder, mit erase = true, der Radierer; mit dither der Dithering-Pinsel).
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen, Pinseloptionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.erase(boolean; Standard false) — Radiert zu transparent, statt zu malen (der Radierer);colorwird ignoriert.pixelPerfect(boolean; Standard context.pixelPerfect) — Entfernt doppelte Eckschritte aus dem Strichpfad (bei jeder Pinselgröße).matchColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard nil (every pixel)) — Malt (oder radiert) nur Pixel, die genau diese Farbe haben; die anderen bleiben unberührt. Mit color = Hintergrundfarbe und matchColor = Vordergrundfarbe ist das der Rechtsklick-Radierer von Aseprite.dither({ pattern = "bayer2" | "bayer4" | "bayer8" | "dots" | "lines-h" | "lines-v" | "diagonal" | "noise", density = 0-100 }; Standard nil (every pixel)) — Malt (oder radiert) nur die Pixel eines geordneten Musters bei einer Dichte in Prozent und lässt den Rest unberührt: der Dithering-Pinsel (50 mit bayer2 ist ein Schachbrett). Das Muster kachelt von der linken oberen Ecke des Sprites aus, sodass sich überlappende Striche ausgerichtet bleiben.dynamics({ stabilizer = 0-64, pressure = { size, angle, gradient (booleans), min, max (0-100) }, velocity = { same }, minSize, minAngle, maxAngle, dither, curve = 25-400 }; Standard built from the context's stabilizer, pressure*/velocity* and dynamics* fields; pass {} for a plain stroke) — Pinseldynamik: ein Stabilisator (gleitender Mittelwert der Punkte) und Druck- / Geschwindigkeitssensoren, die die Stempelgröße (von minSize bis zur Pinselgröße), den Winkel (minAngle bis maxAngle) und einen Farbverlauf von color zu endColor steuern (dither = true wählt pro Pixel das eine oder das andere; indizierte Sprites rasten auf die nächste Palettenfarbe ein). min/max sind der Sensorbereich in Prozent (min > max kehrt um); curve ist die Empfindlichkeit in Prozent (100 = linear). Mit pixelPerfect und wechselnder Größe werden Ellbogen weiterhin entlang des Mittelpfads entfernt. Eigene Pinsel erhalten nur den Stabilisator und den Farbverlauf.pressures(list of numbers 0-1, one per point; Standard 1 (full pressure) for every point) — Stiftdruck pro Punkt, vom Drucksensor gelesen. Eine Maus hat keinen, daher zählt er als voll.velocities(list of numbers >= 0, one per point; Standard 0 for every point) — Zeigergeschwindigkeit pro Punkt in Sprite-Pixeln pro Millisekunde (0.5 = das Maximum des Sensors), vom Geschwindigkeitssensor gelesen.endColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.backgroundColor) — Die Endfarbe des Verlaufs, wenn ein Sensor den Verlauf steuert;colorist der Start.
Gibt nichts zurück.
app.drawTriangle(layerId, frameId, x0, y0, x1, y1, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zeichnet ein gleichschenkliges Dreieck (Spitze oben in der Mitte, Basis unten), das das Rechteck zwischen den beiden Ecken ausfüllt – genau das Dreieck-Werkzeug der Oberfläche.
layerId(string)frameId(string)x0(number) — Erste Ecke.y0(number)x1(number) — Gegenüberliegende Ecke (einschließlich).y1(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.fill(FillMode: "outline" | "filled"; Standard context.shapeFillMode) — Nur Umriss oder gefüllt.
Gibt nichts zurück.
app.floodFill(layerId, frameId, x, y, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Füllung mit dem Farbeimer ab (x, y) – genau das Farbeimer-Werkzeug der Oberfläche.
layerId(string)frameId(string)x(number)y(number)opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.contiguous(boolean; Standard context.bucketFillMode (true für den zusammenhängenden Modus des Kontexts, false für global)) — Nur die zusammenhängende Region (true) oder jedes passende Pixel auf der Leinwand (false).tolerance(integer 0–255; Standard context.bucketTolerance) — Der größte Farbunterschied pro Kanal, der noch als Treffer zählt.diagonal(boolean; Standard context.bucketDiagonal) — Nur bei zusammenhängend: breitet sich auch auf diagonale Nachbarn aus (8er-Nachbarschaft), sodass die Region durch diagonale 1px-Linien sickert.stopAtGrid(boolean; Standard context.bucketStopAtGrid) — Begrenzt die Region auf die Rasterzelle, in die der Klick fällt (die Zelle eines isometrischen Rasters ist die Raute, die es zeichnet, samt den Linienpixeln ihrer beiden oberen Kanten).closeGap(integer 0–5; Standard context.bucketCloseGap) — Zusammenhängende Füllungen: Lücken im Umriss bis zu dieser Breite in Pixeln gelten als geschlossen, sodass die Füllung dort stoppt, statt auszulaufen. 0 = aus.pattern(FillPattern: "solid" | "checker" | "dither25" | "dither75" | "hstripes" | "vstripes" | "diagonal" | "grid" | "dots" | "bricks"; Standard context.bucketPattern) — Füllt mit einem sich wiederholenden Muster auscolorundpatternColor, von der linken oberen Ecke der Leinwand aus gekachelt. "solid" = nurcolor.patternColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.backgroundColor) — Die zweite Farbe des Musters (ignoriert, wennpattern"solid" ist).
Gibt nichts zurück.
app.isoProject(layerId, frameId, projection, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Projiziert die ausgewählten Pixel (der Auswahlrahmen folgt) – oder das ganze Cel, wenn nichts ausgewählt ist – auf eine Fläche eines isometrischen Würfels: "left" und "right" scheren die Spalten entlang der Schräge, "floor" macht aus der Region die Oberseite (ein Quadrat wird zur Raute). Pixelgenau: Jede Kante wird eine saubere Treppe (2 breit pro 1 nach unten bei 2:1), und es werden keine Farben gemischt. Inhalt, der außerhalb der Leinwand und der Cel-Grenzen landet, wird abgeschnitten (die Hintergrundebene wird auf die Leinwand beschnitten).
layerId(string)frameId(string)projection(IsoProjection: "left" | "right" | "floor")opts(table, optional)run(integer 1–16; Standard The sprite's isometric grid ratio, or 2 (2:1) when the grid is rectangular.) — Pixel in der Breite prorisePixel nach unten (die Steigung, in niedrigsten Termen). Gib auch rise an.rise(integer 1–16; Standard The sprite's isometric grid ratio, or 1 (2:1) when the grid is rectangular.) — Pixel nach unten prorunPixel in der Breite. Gib auch run an.
Gibt nichts zurück.
app.jumble(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Zufälliges Verwischen: vermischt Pixel unter dem Pinsel mit zufälligen Nachbarn entlang der Punkte – genau das Durchmischen-Werkzeug der Oberfläche.
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Pinseloptionen (siehe „Optionsgruppen“) sowie:strength(integer 0–100; Standard context.jumbleStrength) — Wahrscheinlichkeit in Prozent, dass jedes berührte Pixel vermischt wird. Ein 1px-Pinsel hat keine Nachbarn zum Vermischen, nimm also brushSize 2 oder mehr.seed(integer 0–4294967295; Standard random) — Zufalls-Seed: derselbe Seed und dieselben Punkte ergeben dasselbe Ergebnis.
Gibt nichts zurück.
app.movePixels(layerId, frameId, dx, dy) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Verschiebt die ausgewählten Pixel (gemäß der aktuellen Auswahl; der Auswahlrahmen folgt) – oder das ganze Cel, wenn nichts ausgewählt ist – um (dx, dy). Genau das Verschieben-Werkzeug der Oberfläche. Ohne Auswahl wandert das ganze Cel und behält alles, auch über den Leinwandrand hinaus; verschobene Auswahlpixel bleiben innerhalb von Leinwand und Cel-Grenzen und werden darüber hinaus abgeschnitten. Die Hintergrundebene wird auf die Leinwand beschnitten.
layerId(string)frameId(string)dx(number) — Pixel, um die nach rechts verschoben wird (negativ = links).dy(number) — Pixel, um die nach unten verschoben wird (negativ = oben).
Gibt nichts zurück.
app.outline(layerId, frameIds, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Filter > Umriss, wie in Aseprite: zeichnet einen Umriss um (oder knapp innerhalb) die Formen auf den Cels einer Ebene, als einen einzigen Rückgängig-Schritt. Ein Pixel gehört zu einer Form, sofern es nicht transparent ist (oder bgColor entspricht). Äußere Umrisse lassen das Cel wachsen, auf die Leinwand beschnitten. Nur Bildebenen.
layerId(string)frameIds(table) — Array von Frame-IDs, deren Cels auf dieser Ebene umrandet werden (ein Frame für das aktive Cel, jeder Frame für alle).opts(table, optional)cels(Array of { layerId = ..., frameId = ... }) — Umrandet diese Cels, über Ebenen und Frames hinweg, statt layerId/frameIds (übergib nil für beide).color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Umrissfarbe. Auf einem indizierten Sprite rastet sie auf den nächsten Paletteneintrag ein, sofern colorIndex nicht angegeben ist.colorIndex(integer 0–255; Standard Taken from color.) — Indizierte Sprites: der zu malende Palettenindex, unverändert verwendet. Nicht der transparente Index.place(OutlinePlace: "outside" | "inside"; Standard "outside") — Umriss außerhalb der Form (sie wächst) oder innerhalb (ihre Randpixel werden neu gemalt).shape(OutlineShape: "circle" | "square"; Standard "circle") — Preset für die Nachbarschaftsmatrix. Wird ignoriert, wenn matrix angegeben ist.matrix(9 booleans, row-major 3x3 (top-left first): which neighbors count as touching. The center entry is ignored.) — Eine eigene Nachbarschaftsmatrix, wie das 3x3-Schalterraster von Aseprite.bgColor(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard Only transparent pixels are background.) — Eine deckende Farbe, die neben vollständig transparenten Pixeln ebenfalls als Hintergrund zählt.bgIndex(integer 0–255) — Indizierte Sprites: ein Palettenindex, der ebenfalls als Hintergrund zählt.respectSelection(boolean; Standard false) — Übergib true, um nur innerhalb der aktuellen Auswahl zu umranden. Standardmäßig wird die Auswahl ignoriert.
Gibt nichts zurück.
app.pastePixels(layerId, frameId, image, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Fügt ein Bild wie das schwebende Einfügen der Oberfläche in das Cel einer Ebene/eines Frames ein: Transparente Pixel lassen das Cel unberührt, teiltransparente werden darüber gemischt, und die eingefügten Pixel werden zur Auswahl. Die optionale Transformation verzerrt es (corners), skaliert, dreht und/oder neigt das Bild dann um seine Mitte (sofern nicht pivotX/pivotY angegeben sind) und verschiebt es danach um dx/dy. Braucht eine bearbeitbare (nicht gesperrte) Bildebene; eine Bewegungssperre gilt nicht. Was außerhalb der Leinwand und der Cel-Grenzen landet, wird abgeschnitten (die Hintergrundebene wird auf die Leinwand beschnitten).
layerId(string)frameId(string)image(table) — { x, y, width, height, pixels } – pixels ist eine Liste von width*height Farben ("#rrggbb[aa]" oder { r, g, b, a }), Zeile für Zeile; x, y ist, wo das Pixel links oben landet.opts(table, optional)scaleX(number -256–256; Standard 1) — Horizontale Skalierung um den Pivot; negativ spiegelt. Nicht 0.scaleY(number -256–256; Standard 1) — Vertikale Skalierung um den Pivot; negativ spiegelt. Nicht 0.rotation(number; Standard 0) — Grad im Uhrzeigersinn um den Pivot.skewX(number -80–80; Standard 0) — Grad horizontaler Neigung (die Oberkante neigt sich in die eine Richtung, die Unterkante in die andere, um den Pivot).skewY(number -80–80; Standard 0) — Grad vertikaler Neigung.dx(number; Standard 0) — Pixel, um die nach dem Transformieren nach rechts verschoben wird.dy(number; Standard 0) — Pixel, um die nach dem Transformieren nach unten verschoben wird.pivotX(number; Standard The center of the selection (or of the cel when nothing is selected).) — X des Fixpunkts für Drehen/Skalieren/Neigen, in Leinwandpixeln.pivotY(number; Standard The center of the selection (or of the cel when nothing is selected).) — Y des Fixpunkts für Drehen/Skalieren/Neigen, in Leinwandpixeln.interpolation(TransformInterpolation: "nearest" | "rotsprite" | "bilinear"; Standard "nearest") — Wie Pixel neu abgetastet werden. Nimm rotsprite für saubere Drehungen von Pixel-Art, bilinear für weiche (gemischte) Ergebnisse.corners({ {x=,y=}, {x=,y=}, {x=,y=}, {x=,y=} }; Standard The region's own corners (no distortion).) — Freies Verzerren / Perspektive: wohin die Ecken der Region links oben, rechts oben, rechts unten und links unten fallen, in Leinwandpixeln (Bruchteile erlaubt), vor der obigen Skalierung/Neigung/Drehung/Verschiebung. Muss eine konvexe Form ergeben. Rückt man die beiden oberen Ecken enger zusammen als die unteren, entsteht eine bodenartige Perspektive.
Gibt nichts zurück.
app.scatter(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Streu-Pinsel: stempelt den Pinsel entlang der Punkte, ein Schritt pro Pinselbreite, jeder Stempel um einen zufälligen Versatz verschoben – genau das Streuen-Werkzeug der Oberfläche.
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen, Pinseloptionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.offsetX(integer 0–64; Standard context.scatterX) — Wie weit jeder Stempel links oder rechts vom Pfad landen kann, in Pixeln.offsetY(integer 0–64; Standard context.scatterY) — Wie weit jeder Stempel über oder unter dem Pfad landen kann, in Pixeln.count(integer 1–16; Standard context.scatterCount) — Stempel, die bei jedem Schritt entlang des Pfads gesetzt werden.seed(integer 0–4294967295; Standard random) — Zufalls-Seed: derselbe Seed und dieselben Punkte ergeben dasselbe Ergebnis.
Gibt nichts zurück.
app.spray(layerId, frameId, points, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Airbrush: streut zufällige Punkte um jeden Punkt – genau das Sprühen-Werkzeug der Oberfläche. Jeder Punkt ist ein Tick, wiederhole also einen Punkt, um an Ort und Stelle weiterzusprühen.
layerId(string)frameId(string)points(table) — Liste von Punkten { x = n, y = n } (oder { n, n }); Lücken zwischen aufeinanderfolgenden Punkten werden wie bei einem echten Ziehen interpoliert.opts(table, optional) Akzeptiert außerdem Malen-Optionen und Tintenoptionen (siehe „Optionsgruppen“) sowie:color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Malfarbe.radius(integer 1–128; Standard twice the context's brushSize, at least 2) — Wie weit von jedem Punkt die Punkte streuen, in Pixeln.rate(integer 1–64; Standard context.sprayRate) — Pro Punkt gestreute Punkte.seed(integer 0–4294967295; Standard random) — Zufalls-Seed: derselbe Seed und dieselben Punkte ergeben dasselbe Ergebnis.
Gibt nichts zurück.
app.strokeSelection(layerId, frameId, width, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Bearbeiten > Auswahl umranden: malt auf einem Cel eine Linie der angegebenen Breite entlang der Kante der aktuellen Auswahl (innen, zentriert oder außen), als einen einzigen Rückgängig-Schritt. Tut nichts, wenn nichts ausgewählt ist. Nur Bildebenen.
layerId(string)frameId(string)width(number) — Pixel, 1 bis 256.opts(table, optional)position(StrokePosition: "inside" | "center" | "outside"; Standard "center") — Wo der Strich relativ zur Kante der Auswahl sitzt.color(color ("#rgb", "#rrggbb[aa]" or { r, g, b, a }); Standard context.foregroundColor) — Die Strichfarbe. Auf einem indizierten Sprite rastet sie auf den nächsten Paletteneintrag ein, sofern colorIndex nicht angegeben ist.colorIndex(integer 0–255; Standard Taken from color.) — Indizierte Sprites: der zu malende Palettenindex, unverändert verwendet. Nicht der transparente Index.shape(SelectionModifyShape: "circle" | "square"; Standard "circle") — Wie der Abstand zur Kante gemessen wird (runde oder eckige Ecken).
Gibt nichts zurück.
app.transformPixels(layerId, frameId, opts?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt
Skaliert, dreht, neigt und/oder verzerrt (Perspektive, über corners) die ausgewählten Pixel (der Auswahlrahmen folgt) – oder das ganze Cel, wenn nichts ausgewählt ist – um einen Pivot, genau wie die Transformationsgriffe des Verschieben-Werkzeugs der Oberfläche. Reihenfolge: skalieren, neigen, drehen, dann um dx/dy verschieben. Auf einem Sprite mit nicht quadratischen Pixeln (Sprite.pixelRatio) gelten Winkel und Skalierungen so, wie du sie auf dem Bildschirm siehst, sodass eine 90-Grad-Drehung auch wie eine aussieht. Ohne Auswahl behält das ganze Cel, was innerhalb des Rahmens aus Leinwand und Cel-Grenzen landet, sowohl dort, wo es ist, als auch um dx/dy verschoben (eine einfache Verschiebung verliert also nichts, auch über den Leinwandrand hinaus); transformierte Auswahlpixel bleiben innerhalb von Leinwand und Cel-Grenzen und werden darüber hinaus abgeschnitten. Die Hintergrundebene wird auf die Leinwand beschnitten. Eine wirkungslose Transformation ändert nichts.
layerId(string)frameId(string)opts(table, optional)scaleX(number -256–256; Standard 1) — Horizontale Skalierung um den Pivot; negativ spiegelt. Nicht 0.scaleY(number -256–256; Standard 1) — Vertikale Skalierung um den Pivot; negativ spiegelt. Nicht 0.rotation(number; Standard 0) — Grad im Uhrzeigersinn um den Pivot.skewX(number -80–80; Standard 0) — Grad horizontaler Neigung (die Oberkante neigt sich in die eine Richtung, die Unterkante in die andere, um den Pivot).skewY(number -80–80; Standard 0) — Grad vertikaler Neigung.dx(number; Standard 0) — Pixel, um die nach dem Transformieren nach rechts verschoben wird.dy(number; Standard 0) — Pixel, um die nach dem Transformieren nach unten verschoben wird.pivotX(number; Standard The center of the selection (or of the cel when nothing is selected).) — X des Fixpunkts für Drehen/Skalieren/Neigen, in Leinwandpixeln.pivotY(number; Standard The center of the selection (or of the cel when nothing is selected).) — Y des Fixpunkts für Drehen/Skalieren/Neigen, in Leinwandpixeln.interpolation(TransformInterpolation: "nearest" | "rotsprite" | "bilinear"; Standard "nearest") — Wie Pixel neu abgetastet werden. Nimm rotsprite für saubere Drehungen von Pixel-Art, bilinear für weiche (gemischte) Ergebnisse.corners({ {x=,y=}, {x=,y=}, {x=,y=}, {x=,y=} }; Standard The region's own corners (no distortion).) — Freies Verzerren / Perspektive: wohin die Ecken der Region links oben, rechts oben, rechts unten und links unten fallen, in Leinwandpixeln (Bruchteile erlaubt), vor der obigen Skalierung/Neigung/Drehung/Verschiebung. Muss eine konvexe Form ergeben. Rückt man die beiden oberen Ecken enger zusammen als die unteren, entsteht eine bodenartige Perspektive.
Gibt nichts zurück.
Als Markdown: drawing.md.