Извлекатель спрайтов
Drop files here or click (max 12 MB)
Почему стоит использовать этот извлекатель спрайтов?
- Автоматическое обнаружение спрайтов на основе прозрачности и настраиваемых порогов
- Чистое обрезание с опциональной обрезкой прозрачных границ вокруг каждого спрайта
- Управление отступами, выравниванием (центр/низ) и опциональным единым размером вывода
- Сохраняет прозрачность (альфа-канал) для экспорта PNG – идеально для тайлмапов и персонажей
- Визуальная галерея всех обнаруженных спрайтов для быстрой проверки перед загрузкой
- Клиентский экспорт ZIP с использованием JSZip, сохраняя ваши имена файлов и порядок спрайтов
- Удобно для Scratch: быстро превратите один лист спрайтов в несколько костюмов или ресурсов
- Идеально для повторного использования ресурсов в разных движках (Scratch, Godot, Unity 2D, Phaser и др.)
🛠️ Как извлечь спрайты из листа спрайтов for sprite-extractor
1. Загрузите изображение
Перетащите лист спрайтов или изображение в зону загрузки, или нажмите для выбора файла. Для лучших результатов используйте PNG с прозрачным фоном или высоким контрастом между спрайтами и фоном.
2. Запустите авто-обнаружение
Инструмент отправляет облегченное представление вашего изображения на эндпоинт обнаружения, который вычисляет ограничивающие рамки для каждого спрайта на основе прозрачности и минимального размера. Рамки накладываются на ваше изображение, чтобы вы могли быстро увидеть, что будет экспортировано.
3. Настройте параметры извлечения
Настройте отступы, прозрачный фон против сплошного цвета, обрезку прозрачных краев, выравнивание (центр или низ) и опциональную единую ширину/высоту вывода. Инструмент перестраивает каждый холст спрайта соответственно.
4. Просмотрите спрайты
Прокрутите галерею сгенерированных спрайтов. Каждый превью создается на клиенте с использованием внеэкранного холста и может быть переименован или удален в зависимости от опций интерфейса.
5. Скачайте PNG или ZIP
Экспортируйте отдельные PNG спрайты или скачайте один ZIP файл, содержащий все текущие превью. ZIP создается на клиенте с использованием JSZip, и имена файлов следуют последовательному шаблону типа <code>sprite_0000.png</code>, <code>sprite_0001.png</code> и т.д.
Технические характеристики
Обнаружение и ограничивающие рамки
Фаза обнаружения выполняется на выделенном бэкенд эндпоинте и возвращает чистые ограничивающие рамки, которые клиент использует для построения финальных спрайтов.
| Аспект | Поведение | Примечания |
|---|---|---|
| Эндпоинт обнаружения | POST /api/sprite-extractor/inspect | Принимает data URL и параметры обнаружения, возвращает массив ограничивающих рамок спрайтов. |
| Входные данные для обнаружения | tolerance, alphaThreshold, minWidth, minHeight | Настройте эти параметры в интерфейсе, чтобы игнорировать мелкий шум или захватывать только значимые спрайты. |
| Форма рамки | Выровненные по осям прямоугольники | Каждый <code>SpriteBox</code> содержит <code>x</code>, <code>y</code>, <code>width</code>, <code>height</code> в координатах исходного изображения. |
| Обработка прозрачности | С учётом альфа-канала | Прозрачные пиксели влияют на решения об обрезке, но могут сохраняться в выводе. |
| Обработка ошибок | Плавные откаты | При сбое обнаружения инструмент показывает понятную ошибку и не нарушает работу интерфейса. |
Обрезка, Тримминг & Выравнивание
После определения рамок вся отрисовка спрайтов выполняется в браузере с использованием HTML canvas.
| Шаг | Реализация | Детали |
|---|---|---|
| Начальная обрезка | drawImage(img, box.x, box.y, w, h, 0, 0, w, h) | Каждый спрайт сначала вырезается из исходного изображения на временный холст. |
| Обрезка прозрачности | сканирование альфа-канала через getImageData | Инструмент сканирует пиксели для вычисления минимальной непрозрачной ограничивающей рамки при включённом тримминге. |
| Отступы | настраиваемые 0–256 px | Отступы применяются вокруг обрезанного спрайта для уменьшения артефактов краёв в движках. |
| Выравнивание | центр / низ | Спрайты можно центрировать или выравнивать по низу (полезно для персонажей, стоящих на базовой линии). |
| Единый размер вывода | опционально spriteWidth / spriteHeight | При включении все спрайты отрисовываются на холсте фиксированного размера для стандартизации анимаций. |
| Фон | прозрачный или сплошной цвет | Либо сохраняется полная прозрачность, либо холст заполняется выбранным RGBA-цветом фона. |
Производительность & Ограничения
Разработано для интерактивного использования в браузере.
| Параметр | Типичное поведение | Примечания |
|---|---|---|
| Максимальный размер входного файла | ~10 МБ изображение | Большие файлы могут работать, но будут загружаться/определяться медленнее. |
| Количество спрайтов | до ~400 спрайтов | Очень большое количество возможно, но предварительный просмотр и создание ZIP займут больше времени. |
| Формат экспорта | PNG внутри ZIP (Blob) | ZIP создается полностью на стороне клиента с использованием JSZip. |
| Операции с холстом | Обрезка и отрисовка для каждого спрайта | Использует 2D canvas API браузера; производительность зависит от разрешения и количества. |
Альтернативы командной строки
Для огромных спрайт-листов или автоматизированных конвейеров можно комбинировать CLI-инструменты вроде ImageMagick со скриптами.
Linux / 🍎 macOS
Обрезка по равномерной сетке с ImageMagick
convert spritesheet.png -crop 64x64 +repage sprite_%04d.pngРазрезает регулярную сетку 64×64 на отдельные PNG-файлы.
Запаковать все спрайты в ZIP
zip sprites.zip sprite_*.pngУпаковывает все созданные спрайты в один архив.
Windows (PowerShell + ImageMagick)
Обрезка на основе сетки
magick spritesheet.png -crop 64x64 +repage sprite_%%04d.pngТо же самое, что выше, с использованием CLI <code>magick</code> в Windows.
Практические случаи использования
2D игровая разработка
- Извлечение кадров анимации персонажа из спрайт-листа для Godot, Unity 2D, Phaser или Construct.
- Выделение элементов интерфейса (кнопки, иконки, шкалы здоровья) из макета дизайна.
- Разделение тайлсетов на отдельные тайлы для редакторов уровней.
// Godot пример: загрузка нескольких кадров\nvar frames = []\nfor i in range(0, 8):\n frames.append(load(\"res://sprites/hero_walk_\" + str(i).pad_zeroes(2) + \".png\"))Scratch и учебные проекты
- Преобразование одного спрайт-листа в несколько костюмов для персонажа Scratch.
- Подготовка тематических наборов ресурсов (животные, планеты, иконки) для мастер-классов по программированию.
- Позволить студентам создавать спрайт-листы в графическом редакторе и затем извлекать их для Scratch.
// Псевдокод в стиле Scratch для простой анимации\nwhen green flag clicked\nforever\n next costume\n wait 0.1 secondsПиксель-арт и библиотеки ресурсов
- Разделите старые листы пиксельной графики на поисковую библиотеку отдельных спрайтов.
- Извлекайте только нужные ресурсы из больших коммерческих или открытых наборов.
- Унифицируйте отступы и выравнивание для спрайтов из разных источников.
❓ Frequently Asked Questions
❓Автоматически ли полностью определяется спрайт?
📏Изменяет ли экстрактор исходное изображение?
🎯Можно ли управлять отступами и выравниванием?
🔒Хранятся ли мои изображения на сервере?
🧊Сохранится ли прозрачность в экспортированных спрайтах?
Pro Tips
Используйте небольшой отступ (2–4 пикселя) вокруг каждого спрайта, чтобы избежать краевых артефактов при масштабировании или вращении в вашем движке.
Называйте спрайты последовательно (например, <code>hero_run_0001.png</code>, <code>hero_run_0002.png</code>), чтобы упростить импорт анимаций и скриптинг.
В учебных условиях начните с очень простых листов спрайтов (несколько крупных спрайтов, четкий фон), чтобы студенты сразу увидели результат.
Храните экспортированный ZIP вместе с исходными файлами проекта, чтобы легко перегенерировать или настраивать анимации позже.
Additional Resources
Other Tools
- Форматер CSS
- Форматер HTML
- Форматер JavaScript
- Форматер PHP
- Выбор цвета
- Декодер Base64
- Кодировщик Base64
- Форматер C#
- Форматер CSV
- Dockerfile Formatter
- Форматер Elm
- Форматер ENV
- Форматер Go
- Форматер GraphQL
- Форматер HCL
- Форматер INI
- Форматер JSON
- Форматер LaTeX
- Форматер Markdown
- Форматер Objective-C
- Php Formatter
- Форматер Proto
- Форматер Python
- Форматер Ruby
- Форматер Rust
- Форматер Scala
- Форматер shell-скриптов
- Форматер SQL
- Форматтер SVG
- Форматтер Swift
- Форматтер TOML
- Typescript Formatter
- Форматтер XML
- Форматтер YAML
- Форматтер Yarn
- Минификатор CSS
- Html Minifier
- Javascript Minifier
- Минификатор JSON
- Минификатор XML
- Просмотрщик HTTP-заголовков
- PDF в текст
- Тестер регулярных выражений
- Проверка позиций в SERP
- Поиск Whois