Extractor de Sprites
Drop files here or click (max 12 MB)
¿Por Qué Usar Este Extractor de Sprites?
- Detección automática de sprites basada en transparencia y umbrales configurables
- Recorte limpio con opción de eliminar bordes transparentes alrededor de cada sprite
- Controla el relleno, alineación (centro/inferior) y tamaño de salida uniforme opcional
- Conserva la transparencia (canal alfa) para exportaciones PNG – ideal para tilemaps y personajes
- Galería visual de todos los sprites detectados para una inspección rápida antes de descargar
- Exportación ZIP en el lado del cliente usando JSZip, manteniendo tus nombres de archivo y orden de sprites estables
- Amigable con Scratch: convierte rápidamente una sola hoja de sprites en múltiples disfraces o recursos
- Perfecto para reutilizar recursos en diferentes motores (Scratch, Godot, Unity 2D, Phaser, etc.)
🛠️ Cómo Extraer Sprites de una Hoja de Sprites for sprite-extractor
1. Suelta tu imagen
Arrastra y suelta una hoja de sprites o imagen en la zona de soltado, o haz clic para elegir un archivo. Para mejores resultados, usa PNG con fondo transparente o alto contraste entre sprites y fondo.
2. Ejecuta la detección automática
La herramienta envía una representación ligera de tu imagen a un endpoint de detección, que calcula los cuadros delimitadores para cada sprite basándose en transparencia y tamaño mínimo. Los cuadros se superponen en tu imagen para que puedas ver rápidamente lo que se exportará.
3. Ajusta las opciones de extracción
Ajusta el relleno, fondo transparente vs. color sólido, eliminación de bordes transparentes, alineación (centro o inferior) y ancho/alto de salida uniforme opcional. La herramienta reconstruye cada lienzo de sprite en consecuencia.
4. Previsualiza los sprites
Desplázate por la galería de sprites generados. Cada vista previa se construye en el cliente usando un lienzo fuera de pantalla y puede renombrarse o descartarse según las opciones de la interfaz.
5. Descarga PNGs o un ZIP
Exporta sprites PNG individuales o descarga un único archivo ZIP que contiene todas las vistas previas actuales. El ZIP se construye en el lado del cliente usando JSZip, y los nombres de archivo siguen un patrón secuencial como <code>sprite_0000.png</code>, <code>sprite_0001.png</code>, etc.
Especificaciones Técnicas
Detección y Cuadros Delimitadores
La fase de detección se ejecuta en un endpoint backend dedicado y devuelve cuadros delimitadores limpios que el cliente usa para construir los sprites finales.
| Aspecto | Comportamiento | Notas |
|---|---|---|
| Endpoint de detección | POST /api/sprite-extractor/inspect | Acepta una URL de datos y opciones de detección, devuelve un array de cajas de sprites. |
| Entradas de detección | tolerancia, umbralAlfa, anchoMín, altoMín | Ajusta estos parámetros en la interfaz para ignorar ruido pequeño o capturar solo sprites significativos. |
| Forma de la caja | Rectángulos alineados al eje | Cada <code>SpriteBox</code> contiene <code>x</code>, <code>y</code>, <code>ancho</code>, <code>alto</code> en coordenadas de la imagen fuente. |
| Manejo de transparencia | Consciente del alfa | Los píxeles transparentes influyen en las decisiones de recorte/ajuste pero pueden preservarse en la salida. |
| Manejo de errores | Respaldo elegante | Si la detección falla, la herramienta muestra un error legible y no interrumpe la interfaz. |
Recorte, Ajuste y Alineación
Una vez conocidas las cajas, todo el renderizado de sprites se realiza en el navegador usando canvas HTML.
| Paso | Implementación | Detalles |
|---|---|---|
| Recorte inicial | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Cada sprite se recorta primero de la imagen original a un canvas temporal. |
| Ajuste transparente | escanea el canal alfa mediante getImageData | La herramienta escanea píxeles para calcular la caja delimitadora mínima no transparente cuando el ajuste está activado. |
| Relleno | configurable 0–256 px | Se aplica relleno alrededor del sprite ajustado o recortado para reducir artefactos de borde en motores. |
| Alineación | centro / inferior | Los sprites pueden centrarse o alinearse al fondo (útil para personajes sobre una línea base). |
| Tamaño de salida uniforme | opcional anchoSprite / altoSprite | Cuando está activado, todos los sprites se renderizan en un canvas de tamaño fijo para estandarizar animaciones. |
| Fondo | transparente o color sólido | Mantener transparencia completa o llenar el canvas con un color RGBA de fondo elegido. |
Rendimiento y Límites
Diseñado para uso interactivo en el navegador.
| Parámetro | Comportamiento Típico | Notas |
|---|---|---|
| Tamaño máximo de entrada | Imagen de ~10 MB | Los archivos más grandes pueden funcionar, pero cargarán/detectarán más lentamente. |
| Cantidad de sprites | hasta ~400 sprites | Es posible tener cantidades muy altas, pero la representación de vista previa y la creación de ZIP tomarán más tiempo. |
| Formato de exportación | PNG dentro de un ZIP (Blob) | El ZIP se genera completamente en el lado del cliente usando JSZip. |
| Operaciones de lienzo | Recorte y dibujo por sprite | Depende de la API de lienzo 2D del navegador; el rendimiento escala con la resolución y la cantidad. |
Alternativas de Línea de Comandos
Para hojas de sprites masivas o flujos de trabajo automatizados, puedes combinar herramientas CLI como ImageMagick con scripts.
Linux / 🍎 macOS
Recorte de cuadrícula uniforme con ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngCorta una cuadrícula regular de 64×64 en archivos PNG individuales.
Comprimir todos los sprites
zip sprites.zip sprite_*.pngEmpaqueta todos los sprites generados en un solo archivo.
Windows (PowerShell + ImageMagick)
Recorte basado en cuadrícula
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngIgual que el anterior, usando la CLI <code>magick</code> en Windows.
Casos de Uso Prácticos
Desarrollo de Juegos 2D
- Extrae fotogramas de animación de personajes de una hoja de sprites para Godot, Unity 2D, Phaser o Construct.
- Aísla elementos de la interfaz de usuario (botones, iconos, barras de salud) de un diseño de maqueta.
- Divide tilesets en mosaicos individuales para editores de niveles.
// Ejemplo en Godot: cargar múltiples fotogramas\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch y Proyectos Educativos
- Convierte una sola hoja de sprites en múltiples disfraces para un personaje de Scratch.
- Prepara paquetes de recursos temáticos (animales, planetas, iconos) para talleres de programación.
- Permite a los estudiantes diseñar hojas de sprites en una herramienta de dibujo y luego extraerlos para Scratch.
// Pseudocódigo al estilo Scratch para animación simple\nwhen green flag clicked\nforever\n next costume\n wait 0.1 secondsArte Pixelado y Bibliotecas de Recursos
- Divide hojas de arte pixelado antiguas en una biblioteca buscable de sprites individuales.
- Extrae solo los recursos que necesitas de paquetes comerciales o de código abierto grandes.
- Normaliza el relleno y la alineación entre sprites de diferentes fuentes.
❓ Frequently Asked Questions
❓¿La detección de sprites es completamente automática?
📏¿El extractor modifica mi imagen original?
🎯¿Puedo controlar el relleno y la alineación?
🔒¿Se almacenan mis imágenes en el servidor?
🧊¿Se conservará la transparencia en los sprites exportados?
Pro Tips
Usa una pequeña cantidad de relleno (2–4 px) alrededor de cada sprite para evitar el sangrado de bordes al escalar o rotar en tu motor.
Nombra los sprites consistentemente (ej., <code>hero_run_0001.png</code>, <code>hero_run_0002.png</code>) para simplificar las importaciones de animación y la programación.
En entornos educativos, comienza con hojas de sprites muy simples (pocos sprites grandes, fondo claro) para que los estudiantes vean resultados inmediatos.
Mantén el ZIP exportado junto a los archivos fuente de tu proyecto para poder regenerar o ajustar animaciones fácilmente más tarde.
Additional Resources
Other Tools
- Embellecedor CSS
- Embellecedor HTML
- Embellecedor JavaScript
- Embellecedor PHP
- Selector de Color
- Decodificador Base64
- Codificador Base64
- Formateador C#
- Formateador CSV
- Dockerfile Formatter
- Formateador Elm
- Formateador ENV
- Formateador Go
- Formateador GraphQL
- Formateador HCL
- Formateador INI
- Formateador JSON
- Formateador LaTeX
- Formateador Markdown
- Formateador Objective-C
- Php Formatter
- Formateador Proto
- Formateador Python
- Formateador Ruby
- Formateador Rust
- Formateador Scala
- Formateador de Scripts de Shell
- Formateador SQL
- Formateador SVG
- Formateador Swift
- Formateador TOML
- Typescript Formatter
- Formateador XML
- Formateador YAML
- Formateador Yarn
- Minificador CSS
- Html Minifier
- Javascript Minifier
- Minificador JSON
- Minificador XML
- Visor de Encabezados HTTP
- PDF a Texto
- Probador de Expresiones Regulares
- Verificador de Posición en SERP
- Consulta Whois