Dokument

Der Sprite als Ganzes: Fang hier mit app.describe() an, dann Größe, Zuschneiden, Drehen und Farbmodus. (15 Funktionen)

app.convertColorMode(colorMode, opts?) — ändert, rückgängig machbar

Wandelt den Sprite zwischen Farbmodi um (rgba, grayscale, indexed), optional mit Dithering und mit einer erzeugten Palette bei der Umwandlung in indexed.

  • colorMode (ColorMode: "rgba" | "grayscale" | "indexed") — Umwandlungen aus rgba (und nach grayscale) sind verlustbehaftet: Die Farbe wird auf den nächsten Paletteneintrag oder auf ihre Luma nach Rec. 709 quantisiert (wie bei Aseprite, abgeschnitten: Rot ist 54). Bei grayscale wird die Palette zu 256 Grautönen von Schwarz bis Weiß (Paletten pro Frame und Palettengruppen entfallen, der transparente Index wird 0). Keine Wirkung, wenn der Sprite schon in diesem Modus ist.
  • opts (table, optional)
    • dithering (DitherMethod: "none" | "bayer2" | "bayer4" | "bayer8" | "floydSteinberg" | "atkinson"; Standard "none") — Nur bei der Umwandlung in indexed: wie Farben zwischen Paletteneinträgen angenähert werden.
    • ditherAmount (integer 0–100; Standard 100) — Nur bei der Umwandlung in indexed: Stärke des Dithering (0 = nur die nächste Farbe).
    • paletteColors (integer 1–256; Standard keep the current palette) — Nur bei der Umwandlung in indexed: ersetzt die Palette durch so viele aus dem Sprite erzeugte Farben (plus einen transparenten Eintrag bei Index 0, es sei denn, die Hintergrundebene ist die einzige Ebene; Paletten pro Frame entfallen).

Gibt nichts zurück.

app.cropToSelection() — ändert, rückgängig machbar

Schneidet die Leinwand auf die Grenzen der aktuellen Auswahl zu; reicht eine Auswahl über die Leinwand hinaus, wächst sie dort. Keine Wirkung, wenn nichts ausgewählt ist.

Gibt nichts zurück.

app.describe() — liest

Alles zur Struktur des Dokuments in einem Aufruf (keine Pixeldaten): { sprite, activeLayerId, activeFrameId, layers, frames, cels, tags, slices, selection (Grenzen oder nil), context } – jeder Teil in der Form seiner eigenen Abfrage (app.getSprite, app.getLayers, ...). Fang hier an, um zu sehen, womit du arbeitest.

Gibt zurück (table): Dokument-Tabelle.

app.flip(axis, layerId?) — ändert, rückgängig machbar, wird auf einer gesperrten Ebene abgelehnt

Spiegelt die ganze Leinwand oder eine Ebene (bei einer Gruppe auch ihre untergeordneten Ebenen) über alle Frames: Cel-Pixel und -Positionen, Tilemap-Tiles, Referenzbilder. Anders als app.flipCelRegion ignoriert es die Auswahl.

  • axis (FlipAxis: "horizontal" | "vertical")
  • layerId (string, optional) — Die Ebene (oder Gruppe), die in jedem Frame gespiegelt wird. Weglassen, um die ganze Leinwand zu spiegeln: jede Ebene, jeden Frame, die Slices und die Auswahl.

Gibt nichts zurück.

app.getCanvasHeight() — liest

Die Höhe der Leinwand des Sprites in Pixeln.

Gibt zurück (number): Höhe in Pixeln.

app.getCanvasWidth() — liest

Die Breite der Leinwand des Sprites in Pixeln.

Gibt zurück (number): Breite in Pixeln.

app.getColorMode() — liest

Der Farbmodus des Sprites: "rgba", "grayscale" oder "indexed".

Gibt zurück (string): "rgba", "grayscale" oder "indexed".

app.getSprite() — liest

Der Sprite: { id, width, height, colorMode ("rgba" | "grayscale" | "indexed"), palette (Hex-Strings), transparentIndex (indizierte Sprites: der Palettenindex, dessen Pixel transparent sind), pixelRatio ({ w, h }; 1:1 = quadratische Pixel), colorDepth (Stufen pro Kanal: { kind = "rgb", red, green, blue } oder { kind = "gray", gray }, mit profile; nil für volle Farbe), layerCount, frameCount }.

Gibt zurück (table): Sprite-Tabelle.

app.newSprite(width, height, background?) — ändert, rückgängig machbar

Ersetzt das ganze Dokument durch einen brandneuen Sprite (eine Ebene, ein Frame; eine Hintergrundebene, wenn eine Hintergrundfarbe angegeben wird). Verwirft den Inhalt des aktuellen Dokuments.

  • width (number) — Breite der Leinwand in Pixeln.
  • height (number) — Höhe der Leinwand in Pixeln.
  • background (color, optional) — Füllfarbe einer Hintergrundebene. Weggelassen = stattdessen eine transparente „Layer 1“.

Gibt zurück (table): { layerId, frameId } der einen Ebene und des einen Frames des neuen Sprites.

app.rotateCanvas(degrees) — ändert, rückgängig machbar

Dreht die ganze Leinwand (jede Ebene, jeden Frame) im Uhrzeigersinn (90), gegen den Uhrzeigersinn (-90) oder um 180 Grad.

  • degrees (number) — 90, -90 oder 180.

Gibt nichts zurück.

app.setCanvasSize(width, height, anchor) — ändert, rückgängig machbar

Ändert die Größe der Leinwand und positioniert den vorhandenen Inhalt relativ zu anchor neu (ohne ihn neu zu samplen). Inhalt, der über den neuen Rand hinausragt, bleibt dort erhalten (nur die Hintergrundebene wird abgeschnitten), sodass er beim Wiedervergrößern zurückkommt.

  • width (number)
  • height (number)
  • anchor (CanvasAnchor: "top-left" | "top" | "top-right" | "left" | "center" | "right" | "bottom-left" | "bottom" | "bottom-right")

Gibt nichts zurück.

app.setPixelRatio(w, h) — ändert, rückgängig machbar

Setzt das Seitenverhältnis der Pixel des Sprites (Aseprites Sprite-Eigenschaften > Pixelverhältnis), z. B. 2, 1 für Pixel, die doppelt so breit wie hoch sind. Nur die Anzeige und verhältnisbewusste Exporte ändern sich, nicht die Pixel.

  • w (number) — Pixelbreite, eine positive ganze Zahl (1:1 = quadratisch).
  • h (number) — Pixelhöhe, eine positive ganze Zahl.

Gibt nichts zurück.

app.setSpriteSize(width, height) — ändert, rückgängig machbar

Skaliert jedes Cel (Nearest-Neighbor) auf eine neue Sprite-Größe.

  • width (number)
  • height (number)

Gibt nichts zurück.

app.setUserData(target, userData?) — ändert, rückgängig machbar

Setzt die Benutzerdaten (Farbmarkierung, Text und eigene Eigenschaften, wie bei Aseprite) eines Sprites, einer Ebene, eines Cels, Tags, Slices oder Tilesets. Ein Cel-Ziel darf ein Tilemap-Frame sein. Verknüpfte Cels teilen sich eine Benutzerdatenmenge, wie ihr Bild. Ändert nur, was du angibst: Wer den Text setzt, behält die Farbe, und wer den Eigenschaften-Namensraum seiner Erweiterung beschreibt, lässt die der anderen unberührt (wie bei Aseprites layer.data, layer.color und layer.properties(ns), die getrennt sind). Lies sie über app.getSprite, getLayers, getCels, getTags, getSlices oder getTileset zurück (das Feld userData). Auch auf gesperrten Ebenen erlaubt.

  • target (table) — Was annotiert wird: { kind = "sprite" }, { kind = "layer", layerId }, { kind = "cel", layerId, frameId }, { kind = "tag", tagId }, { kind = "slice", sliceId } oder { kind = "tileset", layerId }.
    • kind (UserDataKind: "sprite" | "layer" | "cel" | "tag" | "slice" | "tileset") — Welche Art von Objekt.
    • layerId (string) — Für Ebenen-, Cel- und Tileset-Ziele.
    • frameId (string) — Für Cel-Ziele.
    • tagId (string) — Für Tag-Ziele.
    • sliceId (string) — Für Slice-Ziele.
  • userData (table, optional) — Was geändert wird: nur die Teile, die du angibst. text = "" oder color = "" leert diesen Teil; bei properties wird jeder genannte Namensraum ersetzt und ein auf {} gesetzter entfernt, die übrigen bleiben. nil entfernt alle Benutzerdaten.
    • color (string) — Die Farbmarkierung als "#rrggbb" oder "#rrggbbaa". Bei Tags nicht erlaubt (ihre Farbe ist Tag.color).
    • text (string) — Freier Text (der Benutzerdaten-Text von Aseprite).
    • properties (namespaces to properties: { [""] = { score = 3 }, ["my-extension"] = { ... } }. Values are plain JSON: nil-free, finite numbers, strings, booleans, lists and tables. properties[""] is your own namespace (Aseprite's user properties).) — Eigene Eigenschaften nach Namensraum. Typisierte Werte von Aseprite (uuid, fixed, point, ...) erscheinen als Tabellen mit einem $type-Schlüssel, z. B. { ["$type"] = "uuid", value = "..." }, und werden als der Aseprite-Typ zurückgeschrieben.

Gibt nichts zurück.

app.trim() — ändert, rückgängig machbar

Schneidet die Leinwand auf das zu, was über alle Frames gezeichnet ist, wie Aseprites Trim: die sichtbaren Ebenen wie angezeigt, verkleinert gegen Transparenz oder eine einfarbige Randfarbe (etwa eine deckende Hintergrundebene). Keine Wirkung, wenn nichts zum Abschneiden übrig ist.

Gibt nichts zurück.

Als Markdown: document.md.