Генератор спрайт-листов

Восстановление выбранного файла...

Перетащите набор изображений, и генератор разместит их на равномерной сетке и нарисует один PNG спрайт-лист прямо в браузере, а затем создаст CSS со смещением background-position для каждого спрайта. Всё выполняется локально на холсте (canvas), поэтому ничего не загружается на сервер. Удобно для наборов иконок, кадров ретро-игр и состояний интерфейса, когда вы предпочитаете один файл вместо множества отдельных изображений. Вы задаёте число столбцов, размер плитки, отступ между ячейками и фон (прозрачный, белый или чёрный).

Как строится спрайт-лист

  1. 1

    Перетащите изображения

    Добавьте файлы PNG, JPG или WebP. Меняйте порядок кнопками вверх/вниз или удаляйте кадры; лист перестраивается мгновенно.

  2. 2

    Задайте сетку

    Выберите число столбцов; число строк вычисляется из количества добавленных изображений. Каждое изображение масштабируется, чтобы поместиться в квадратную плитку, с сохранением пропорций и по центру.

  3. 3

    Настройте размер плитки и отступ

    Выберите размер плитки в пикселях и добавьте отступ между ячейками, чтобы соседние спрайты не перетекали друг в друга при масштабировании.

  4. 4

    Скачайте PNG и скопируйте CSS

    Сохраните спрайт-лист как один PNG и скопируйте созданные классы CSS: по одному правилу `.spr-имя` на изображение с шириной, высотой и background-position.

Как работает компоновка

Генератор использует одну предсказуемую компоновку: равномерную сетку. Вы задаёте число столбцов, а число строк равно округление_вверх(изображения / столбцы). Все ячейки одного квадратного размера (выбранного размера плитки), поэтому каждое изображение масштабируется, чтобы поместиться в свою ячейку с сохранением пропорций, и центрируется. Изображения разного размера попадают в одинаковые ячейки, именно этого ожидают CSS-спрайты с background-position.

Параметр Диапазон Действие
Столбцы от 1 до 16 Спрайтов в строке; строки вычисляются автоматически
Размер плитки от 32 до 512 px Квадратная ячейка, в которую вписывается каждое изображение
Отступ от 0 до 64 px Прозрачный зазор между ячейками против перетекания при масштабировании
Фон Прозрачный / Белый / Чёрный Заливка за спрайтами в итоговом PNG

Вид итогового CSS

Каждое изображение становится классом с именем файла (.spr-<имя>), размером с плитку и со смещением к своей ячейке. При четырёх столбцах, размере плитки 128 px и без отступа лист выглядит так:

.spr-idle  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -0px; }
.spr-walk  { width: 128px; height: 128px; background: url(spritesheet.png) -128px -0px; }
.spr-run   { width: 128px; height: 128px; background: url(spritesheet.png) -256px -0px; }
.spr-jump  { width: 128px; height: 128px; background: url(spritesheet.png) -384px -0px; }
.spr-fall  { width: 128px; height: 128px; background: url(spritesheet.png) -0px -128px; }

Смещение движется в двух измерениях: спрайты заполняют каждую строку слева направо, затем переходят на следующую строку. Сохраните PNG как spritesheet.png рядом с вашим CSS (или измените url(...) под ваш путь).

Отступ и перетекание

Спрайты, упакованные встык, могут перетекать друг в друга, когда браузер масштабирует лист (нецелые соотношения пикселей, CSS-преобразования). Добавьте от 2 до 4 пикселей отступа между ячейками, чтобы соседние пиксели не просачивались.

Экраны высокой плотности (retina)

Автоматического экспорта 2x нет, но более чёткий лист получить просто: выберите больший размер плитки (например, 256 px вместо 128 px), чтобы каждый спрайт нёс больше пикселей, а затем показывайте его в половину размера CSS. Так вы получите чёткие спрайты на экранах высокой плотности без отдельного прохода.

Спрайт-листы или альтернативы

  • Спрайт-листы: классические наборы иконок в CSS, кадры HTML5-игр и страницы, которым выгодно собрать много мелких изображений в один файл.
  • SVG-спрайты (symbol): лучше для современных иконок интерфейса, масштабируются без потерь, принимают fill в CSS, без возни с background-position.
  • Иконочные шрифты: ограничены, но всё ещё применяются для крошечных одноцветных иконок.
  • Отдельные файлы с HTTP/2 или HTTP/3: мультиплексирование делает число запросов менее важным, чем прежде.

Часто задаваемые вопросы

Изображения остаются в браузере. В пошаговом режиме выбранные файлы изображений и раскладка временно хранятся в этой вкладке браузера не более 30 минут. Ничего не отправляется на сервер и не добавляется в URL.

Да, но встроенные SVG или SVG-спрайты <symbol> обычно лучше подходят для компонентных фреймворков. CSS-спрайт-листы хороши, когда на статических страницах одновременно показывается много изображений.

Задайте число столбцов равным числу кадров, чтобы каждый кадр был в одной строке, а затем управляйте им через animation-timing-function: steps(N) в CSS и background-position, перескакивающий по ячейкам. Хорошо подходит для коротких зацикленных анимаций (спиннеры, состояния покоя).

Каждая ячейка сетки имеет один квадратный размер (выбранный размер плитки), поэтому каждое изображение вписывается в свою ячейку и центрируется. Если ваши спрайты уже одинаковые квадраты, задайте соответствующий размер плитки, и они пройдут без изменений.

Сопутствующие инструменты

Палитра цветов Material Design

Просмотрите палитру цветов Material Design. Копируйте любой оттенок (от 50 до A700) в форматах HEX, RGB или HSL одним нажатием.

Изменение размера изображений

Меняйте размер изображений до точных пиксельных размеров или процентов, сохраняя пропорции. Подходит для пакетной подготовки, без загрузки файлов.

WebP в JPG

Конвертируйте изображения WebP в JPG/JPEG прямо в браузере. Выберите качество, объедините прозрачность с цветом фона и скачайте без загрузки файлов на сервер.

Генератор надписей граффити

Создавайте надписи в стилях тег, баббл, блок, трафарет, неон и вайлд. Настраивайте цвета и экспортируйте PNG или SVG прямо в браузере.

Генератор штрихкодов

Создавайте Code 128, EAN-13, UPC, ITF-14 и еще семь линейных штрихкодов. Данные остаются в браузере, результат можно скачать в SVG или PNG.

Генератор QR-кодов

Создавайте QR-код из текста или URL в браузере и скачивайте его в PNG.