Extrator de Sprites
Drop files here or click (max 12 MB)
Por Que Usar Este Extrator de Sprites?
- Detecção automática de sprites baseada em transparência e limiares configuráveis
- Recorte limpo com opção de aparar bordas transparentes ao redor de cada sprite
- Controle de preenchimento, alinhamento (centro/inferior) e tamanho de saída uniforme opcional
- Preserva transparência (canal alfa) para exportações PNG – ideal para tilemaps e personagens
- Galeria visual de todos os sprites detectados para inspeção rápida antes do download
- Exportação ZIP no lado do cliente usando JSZip, mantendo nomes de arquivo e ordem dos sprites estáveis
- Amigável ao Scratch: transforme rapidamente uma única folha de sprites em múltiplos figurinos ou recursos
- Perfeito para reutilizar recursos entre engines (Scratch, Godot, Unity 2D, Phaser, etc.)
🛠️ Como Extrair Sprites de uma Folha de Sprites for sprite-extractor
1. Solte sua imagem
Arraste e solte uma folha de sprites ou imagem na área de soltura, ou clique para escolher um arquivo. Para melhores resultados, use PNG com fundo transparente ou alto contraste entre sprites e fundo.
2. Execute a detecção automática
A ferramenta envia uma representação leve da sua imagem para um endpoint de detecção, que calcula caixas delimitadoras para cada sprite baseadas em transparência e tamanho mínimo. As caixas são sobrepostas na sua imagem para que você possa ver rapidamente o que será exportado.
3. Ajuste as opções de extração
Ajuste preenchimento, fundo transparente vs cor sólida, corte de bordas transparentes, alinhamento (centro ou inferior) e largura/altura de saída uniforme opcional. A ferramenta reconstrói cada tela de sprite de acordo.
4. Visualize os sprites
Navegue pela galeria de sprites gerados. Cada prévia é construída no cliente usando uma tela fora de tela e pode ser renomeada ou descartada dependendo das opções da interface.
5. Baixe PNGs ou um ZIP
Exporte sprites PNG individuais ou baixe um único arquivo ZIP contendo todas as prévias atuais. O ZIP é construído no lado do cliente usando JSZip, e os nomes dos arquivos seguem um padrão sequencial como <code>sprite_0000.png</code>, <code>sprite_0001.png</code>, etc.
Especificações Técnicas
Detecção & Caixas Delimitadoras
A fase de detecção é executada em um endpoint de backend dedicado e retorna caixas delimitadoras limpas que o cliente usa para construir os sprites finais.
| Aspecto | Comportamento | Notas |
|---|---|---|
| Endpoint de detecção | POST /api/sprite-extractor/inspect | Aceita um URL de dados e opções de detecção, retorna um array de caixas de sprites. |
| Entradas de detecção | tolerância, limiarAlfa, larguraMínima, alturaMínima | Ajuste esses parâmetros na interface para ignorar ruídos pequenos ou capturar apenas sprites significativos. |
| Forma da caixa | Retângulos alinhados ao eixo | Cada <code>SpriteBox</code> contém <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> nas coordenadas da imagem de origem. |
| Tratamento de transparência | Consciente do alfa | Pixels transparentes contribuem para decisões de corte/aparamento, mas podem ser preservados na saída. |
| Tratamento de erros | Fallbacks graciosos | Se a detecção falhar, a ferramenta exibe um erro legível e não quebra a interface. |
Corte, Aparamento e Alinhamento
Uma vez que as caixas são conhecidas, toda a renderização dos sprites é feita no navegador usando canvas HTML.
| Etapa | Implementação | Detalhes |
|---|---|---|
| Corte inicial | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Cada sprite é primeiro cortado da imagem original para um canvas temporário. |
| Aparamento transparente | escaneia o canal alfa via getImageData | A ferramenta escaneia pixels para calcular a caixa delimitadora mínima não transparente quando o aparamento está ativado. |
| Preenchimento | configurável 0–256 px | O preenchimento é aplicado ao redor do sprite aparado ou cortado para reduzir artefatos de borda em motores. |
| Alinhamento | centro / base | Sprites podem ser centralizados ou alinhados à base (útil para personagens em pé sobre uma linha de base). |
| Tamanho de saída uniforme | opcional larguraSprite / alturaSprite | Quando ativado, todos os sprites são renderizados em um canvas de tamanho fixo para padronizar animações. |
| Fundo | transparente ou cor sólida | Mantenha a transparência total ou preencha o canvas com uma cor RGBA de fundo escolhida. |
Desempenho e Limites
Projetado para uso interativo no navegador.
| Parâmetro | Comportamento Típico | Notas |
|---|---|---|
| Tamanho máximo de entrada | ~10 MB de imagem | Arquivos maiores ainda podem funcionar, mas carregarão/detectarão mais lentamente. |
| Contagem de sprites | até ~400 sprites | Contagens muito altas são possíveis, mas a renderização da prévia e a criação do ZIP levarão mais tempo. |
| Formato de exportação | PNG dentro de um ZIP (Blob) | O ZIP é gerado inteiramente no lado do cliente usando JSZip. |
| Operações de canvas | Recorte e desenho por sprite | Depende da API de canvas 2D do navegador; o desempenho escala com a resolução e a contagem. |
Alternativas de Linha de Comando
Para folhas de sprites massivas ou pipelines automatizados, você pode combinar ferramentas de CLI como ImageMagick com scripts.
Linux / 🍎 macOS
Recorte de grade uniforme com ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngCorta uma grade regular de 64×64 em arquivos PNG individuais.
Compactar todos os sprites
zip sprites.zip sprite_*.pngEmpacota todos os sprites gerados em um único arquivo.
Windows (PowerShell + ImageMagick)
Recorte baseado em grade
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngIgual ao anterior, usando a CLI <code>magick</code> no Windows.
Casos de Uso Práticos
Desenvolvimento de Jogos 2D
- Extrair quadros de animação de personagens de uma folha de sprites para Godot, Unity 2D, Phaser ou Construct.
- Isolar elementos de UI (botões, ícones, barras de vida) de um mock-up de design.
- Dividir tilesets em tiles individuais para editores de nível.
// Exemplo Godot: carregar múltiplos quadros\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch e Projetos em Sala de Aula
- Transformar uma única folha de sprites em múltiplos figurinos para um personagem do Scratch.
- Preparar pacotes de assets temáticos (animais, planetas, ícones) para oficinas de programação.
- Permitir que os alunos projetem folhas de sprites em uma ferramenta de desenho e depois as extraiam para o Scratch.
// Pseudocódigo estilo Scratch para animação simples\nwhen green flag clicked\nforever\n next costume\n wait 0.1 secondsPixel Art e Bibliotecas de Assets
- Divida folhas antigas de pixel art em uma biblioteca pesquisável de sprites individuais.
- Extraia apenas os recursos que você precisa de pacotes comerciais ou de código aberto grandes.
- Normalize o preenchimento e o alinhamento entre sprites de diferentes fontes.
❓ Frequently Asked Questions
❓A detecção de sprites é totalmente automática?
📏O extrator altera minha imagem original?
🎯Posso controlar o preenchimento e o alinhamento?
🔒Minhas imagens são armazenadas no servidor?
🧊A transparência será preservada nos sprites exportados?
Pro Tips
Use uma pequena quantidade de preenchimento (2–4 px) ao redor de cada sprite para evitar vazamento de bordas ao dimensionar ou girar no seu mecanismo.
Nomeie os sprites de forma consistente (ex.: <code>hero_run_0001.png</code>, <code>hero_run_0002.png</code>) para simplificar as importações de animação e a programação.
Em ambientes de sala de aula, comece com folhas de sprites muito simples (poucos sprites grandes, fundo claro) para que os alunos vejam resultados imediatos.
Mantenha o ZIP exportado junto com os arquivos de origem do seu projeto para que você possa facilmente regenerar ou ajustar animações posteriormente.
Additional Resources
Other Tools
- Embelezador CSS
- Embelezador HTML
- Embelezador Javascript
- Embelezador PHP
- Seletor de Cores
- Decodificador Base64
- Codificador Base64
- Formatador Csharp
- Formatador CSV
- Dockerfile Formatter
- Formatador Elm
- Formatador ENV
- Formatador Go
- Formatador GraphQL
- Formatador HCL
- Formatador INI
- Formatador JSON
- Formatador LaTeX
- Formatador Markdown
- Formatador Objective-C
- Php Formatter
- Formatador Proto
- Formatador Python
- Formatador Ruby
- Formatador Rust
- Formatador Scala
- Formatador de Script Shell
- Formatador SQL
- Formatador SVG
- Formatador Swift
- Formatador TOML
- Typescript Formatter
- Formatador XML
- Formatador YAML
- Formatador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visualizador de Cabeçalhos HTTP
- PDF para Texto
- Testador de Regex
- Verificador de Classificação SERP
- Consulta Whois