Documento

O sprite como um todo: comece aqui com app.describe() e depois tamanho, recorte, rotação e modo de cor. (15 funções)

app.convertColorMode(colorMode, opts?) — altera, desfazível

Converte o sprite entre modos de cor (rgba, grayscale, indexed), com a opção de aplicar dithering e gerar uma paleta ao converter para indexed.

  • colorMode (ColorMode: "rgba" | "grayscale" | "indexed") — As conversões a partir de rgba (e para grayscale) têm perdas: a cor é quantizada para a entrada de paleta mais próxima ou para a luma Rec. 709 (a do Aseprite, truncada: vermelho é 54). Para grayscale, a paleta vira 256 tons de cinza, do preto ao branco (paletas por quadro e grupos de paleta somem, o índice transparente vira 0). Não faz nada se o sprite já estiver nesse modo.
  • opts (table, opcional)
    • dithering (DitherMethod: "none" | "bayer2" | "bayer4" | "bayer8" | "floydSteinberg" | "atkinson"; padrão "none") — Somente para indexed: como as cores entre as entradas da paleta são aproximadas.
    • ditherAmount (integer 0–100; padrão 100) — Somente para indexed: intensidade do dithering (0 = apenas a cor mais próxima).
    • paletteColors (integer 1–256; padrão keep the current palette) — Somente para indexed: substitui a paleta por esta quantidade de cores geradas a partir do sprite (mais uma entrada transparente no índice 0, a menos que o plano de fundo seja a única camada; as paletas por quadro são descartadas).

Não retorna nada.

app.cropToSelection() — altera, desfazível

Recorta a tela até os limites da seleção atual; uma seleção que passe da tela a aumenta ali. Não faz nada se não houver seleção.

Não retorna nada.

app.describe() — lê

Tudo sobre a estrutura do documento em uma só chamada (sem dados de pixel): { sprite, activeLayerId, activeFrameId, layers, frames, cels, tags, slices, selection (limites ou nil), context }, cada parte no formato da sua própria consulta (app.getSprite, app.getLayers, ...). Comece por aqui para ver com o que você está trabalhando.

Retorna (table): Tabela do documento.

app.flip(axis, layerId?) — altera, desfazível, recusada em uma camada bloqueada

Espelha a tela inteira, ou uma camada (e os descendentes, se for um grupo) em todos os quadros: pixels e posições dos cels, tiles de tilemap, imagens de referência. Ao contrário de app.flipCelRegion, ignora a seleção.

  • axis (FlipAxis: "horizontal" | "vertical")
  • layerId (string, opcional) — A camada (ou grupo) a espelhar em todos os quadros. Omita para espelhar a tela inteira: todas as camadas, todos os quadros, os slices e a seleção.

Não retorna nada.

app.getCanvasHeight() — lê

A altura da tela do sprite em pixels.

Retorna (number): Altura em pixels.

app.getCanvasWidth() — lê

A largura da tela do sprite em pixels.

Retorna (number): Largura em pixels.

app.getColorMode() — lê

O modo de cor do sprite: "rgba", "grayscale" ou "indexed".

Retorna (string): "rgba", "grayscale" ou "indexed".

app.getSprite() — lê

O sprite: { id, width, height, colorMode ("rgba" | "grayscale" | "indexed"), palette (strings hex), transparentIndex (sprites indexed: o índice da paleta cujos pixels são transparentes), pixelRatio ({ w, h }; 1:1 = pixels quadrados), colorDepth (níveis por canal: { kind = "rgb", red, green, blue } ou { kind = "gray", gray }, com profile; nil para cor completa), layerCount, frameCount }.

Retorna (table): Tabela do sprite.

app.newSprite(width, height, background?) — altera, desfazível

Substitui o documento inteiro por um sprite novo em folha (uma camada, um quadro; uma camada Plano de fundo quando uma cor de fundo é informada). Descarta o conteúdo do documento atual.

  • width (number) — Largura da tela em pixels.
  • height (number) — Altura da tela em pixels.
  • background (color, opcional) — Cor de preenchimento de uma camada Plano de fundo. Omitida = uma "Layer 1" transparente no lugar.

Retorna (table): { layerId, frameId } da única camada e do único quadro do novo sprite.

app.rotateCanvas(degrees) — altera, desfazível

Gira a tela inteira (todas as camadas, todos os quadros) no sentido horário (90), no anti-horário (-90) ou em 180 graus.

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

Não retorna nada.

app.setCanvasSize(width, height, anchor) — altera, desfazível

Redimensiona a tela, reposicionando (sem reamostrar) o conteúdo existente em relação a anchor. O conteúdo que fica além da nova borda é mantido ali (só a camada Plano de fundo é cortada), então aumentar de novo o restaura.

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

Não retorna nada.

app.setPixelRatio(w, h) — altera, desfazível

Define a proporção de pixel do sprite (Propriedades do sprite > Proporção de pixel, no Aseprite), p. ex. 2, 1 para pixels com o dobro da largura da altura. Só a exibição e as exportações que respeitam a proporção mudam, não os pixels.

  • w (number) — Largura do pixel, um inteiro positivo (1:1 = quadrado).
  • h (number) — Altura do pixel, um inteiro positivo.

Não retorna nada.

app.setSpriteSize(width, height) — altera, desfazível

Reamostra todos os cels (vizinho mais próximo) para caber em um novo tamanho de sprite.

  • width (number)
  • height (number)

Não retorna nada.

app.setUserData(target, userData?) — altera, desfazível

Define os dados do usuário (tag de cor, texto e propriedades personalizadas, como no Aseprite) de um sprite, camada, cel, tag, slice ou tileset. Um alvo cel pode ser um quadro de tilemap. Cels vinculados compartilham os mesmos dados do usuário, como a imagem. Altera apenas o que você informar: definir o texto mantém a cor, e gravar o namespace de propriedades da sua extensão mantém os dos outros (como layer.data, layer.color e layer.properties(ns) do Aseprite, que são separados). Leia-os de volta em app.getSprite, getLayers, getCels, getTags, getSlices ou getTileset (o campo userData). Permitido em camadas bloqueadas.

  • target (table) — O que anotar: { kind = "sprite" }, { kind = "layer", layerId }, { kind = "cel", layerId, frameId }, { kind = "tag", tagId }, { kind = "slice", sliceId } ou { kind = "tileset", layerId }.
    • kind (UserDataKind: "sprite" | "layer" | "cel" | "tag" | "slice" | "tileset") — Que tipo de elemento.
    • layerId (string) — Para alvos layer, cel e tileset.
    • frameId (string) — Para alvos cel.
    • tagId (string) — Para alvos tag.
    • sliceId (string) — Para alvos slice.
  • userData (table, opcional) — O que alterar: apenas as partes que você informar. text = "" ou color = "" limpa essa parte; em properties, cada namespace citado é substituído e um definido como {} é removido, enquanto os outros permanecem. nil remove todos os dados do usuário.
    • color (string) — A tag de cor como "#rrggbb" ou "#rrggbbaa". Não aceita para tags (a cor delas é Tag.color).
    • text (string) — Texto livre (o texto dos dados do usuário do 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).) — Propriedades personalizadas por namespace. Os valores tipados do Aseprite (uuid, fixed, point, ...) aparecem como tabelas com uma chave $type, p. ex. { ["$type"] = "uuid", value = "..." }, e são gravados de volta como o tipo do Aseprite.

Não retorna nada.

app.trim() — altera, desfazível

Recorta a tela ao que está desenhado em todos os quadros, como o Trim do Aseprite: as camadas visíveis como são exibidas, reduzidas contra a transparência ou uma cor de borda sólida (como um Plano de fundo opaco). Não faz nada quando não há nada a cortar.

Não retorna nada.

Em Markdown: document.md.