Автоматический генератор иконок для PWA приложений. Один батник/скрипт разбивает одну 512x512 иконку на все необходимые размеры для iOS, Android, Web и PWA.
- 72×72, 96×96, 128×128, 144×144, 192×192, 192×192 (maskable), 256×256, 384×384, 512×512
- Для iPhone, iPad, Spotlight, Settings приложения
- Все необходимые @1x, @2x, @3x версии
- ldpi, mdpi, hdpi, xhdpi, xxhdpi, xxxhdpi мипмапы
- Для всех плотностей экрана
- header.txt — готовый HTML для копирования в index.html
- manifest.json массив — готовый код для manifest.json
Windows:
- Скачайте с https://imagemagick.org/script/download.php#windows
- Выберите "Windows x64 Dynamic at 16 bit-depth" (большой файл, но полнофункциональный)
- Установите с галочкой "Install development headers and libraries"
- Перезагрузитесь
macOS:
brew install imagemagickLinux:
sudo apt-get install imagemagickWindows (через winget):
winget install ffmpegmacOS:
brew install ffmpegLinux:
sudo apt-get install ffmpeg➡️ Подробные FFmpeg команды: смотрите ffmpeg-commands.md
- Создайте иконку размером 512×512px в формате PNG
- Назовите её
source-icon.png - Разместите в папке со скриптом
На Windows (Batch):
# Откройте PowerShell в папке скрипта и запустите:
.\generate-icons.batИли PowerShell версия (для Windows/Mac/Linux):
.\generate-icons.ps1На Mac/Linux:
bash generate-icons.shНа Windows:
.\generate-icons-ffmpeg.batНа Mac/Linux:
bash generate-icons-ffmpeg.shНа любой ОС (PowerShell):
.\generate-icons-ffmpeg.ps1Или вручную (один размер):
ffmpeg -i source-icon.png -vf scale=192:192 icons/icon-192.png -y➡️ Все команды FFmpeg смотрите в ffmpeg-commands.md
- ✅ Скопируйте папку
icons/вpublic/вашего проекта - ✅ Откройте
header.txt - ✅ Копируйте HTML из section "Favicon & Icons" в
<head>вашего index.html - ✅ Копируйте "MANIFEST.JSON ICONS ARRAY" в manifest.json
- ✅ Запустите
npm run build
icons/
├── icon-72.png ← 72×72
├── icon-96.png ← 96×96
├── icon-128.png ← 128×128
├── icon-144.png ← 144×144 (Windows)
├── icon-192.png ← 192×192 (Android)
├── icon-192-maskable.png ← 192×192 (PWA)
├── icon-256.png ← 256×256
├── icon-384.png ← 384×384
├── icon-512.png ← 512×512 (PWA splash)
├── apple/
│ ├── Icon-Small.png (29×29)
│ ├── Icon-Small@2x.png (58×58)
│ ├── Icon-Small@3x.png (87×87)
│ ├── Icon-Small-40.png (40×40)
│ ├── Icon-Small-40@2x.png (80×80)
│ ├── Icon-Small-40@3x.png (120×120)
│ ├── Icon-60@2x.png (120×120)
│ ├── Icon-60@3x.png (180×180)
│ ├── Icon-76.png (76×76)
│ ├── Icon-76@2x.png (152×152)
│ └── Icon-83.5@2x.png (167×167)
└── android/
├── mipmap-ldpi/ic_launcher.png (36×36)
├── mipmap-mdpi/ic_launcher.png (48×48)
├── mipmap-hdpi/ic_launcher.png (72×72)
├── mipmap-xhdpi/ic_launcher.png (96×96)
├── mipmap-xxhdpi/ic_launcher.png (144×144)
└── mipmap-xxxhdpi/ic_launcher.png(192×192)
+ header.txt ← готовый HTML для копирования
my-project/
├── public/
│ ├── favicon.ico
│ ├── manifest.json
│ └── icons/ ← Результаты из скрипта
│ ├── icon-*.png
│ ├── apple/
│ └── android/
├── src/
├── index.html
├── vite.config.ts
└── scripts/
├── generate-icons.bat
├── generate-icons.ps1
└── source-icon.png ← Исходная 512×512 иконка
# Перейдите в папку scripts/
cd scripts
# Положите source-icon.png в эту папку
# Запустите скрипт
.\generate-icons.ps1
# Или на Windows
.\generate-icons.bat# Скопируйте папку icons/ из scripts в public/
cp -r scripts/icons public/
# Или вручную через Explorer
# Из scripts/icons скопируйте в public/icons
# Затем отредактируйте HTML
# Откройте scripts/header.txt и скопируйте HTML в index.html{
"name": "My App",
"short_name": "App",
"description": "...",
"start_url": "/",
"display": "standalone",
"icons": [
// ВСТАВЬТЕ СЮДА СОДЕРЖИМОЕ ИЗ header.txt
]
}# По умолчанию
.\generate-icons.ps1
# С пользовательскими параметрами
.\generate-icons.ps1 `
-SourceIcon "my-icon.png" `
-OutputDir "output" `
-HeaderFile "html-header.txt" `
-ProjectName "My Awesome App"Отредактируйте переменные в начале generate-icons.bat:
set SOURCE_ICON=source-icon.png
set OUTPUT_DIR=icons
set HEADER_FILE=header.txt
set PROJECT_NAME=My AppПосле создания иконок протестируйте на разных платформах:
1. Откройте сайт на iPhone
2. Нажмите Share → Add to Home Screen
3. Проверьте иконку
1. Откройте сайт в Chrome
2. Нажмите меню → Install app
3. Проверьте иконку
1. DevTools → Application → Manifest
2. Проверьте все иконки загружены
3. Нажмите "Install app"
1. DevTools → Lighthouse
2. Выберите PWA
3. Запустите аудит
4. Проверьте: Icons present ✓
Оба инструмента отлично подходят для генерации иконок. Вот как они отличаются:
| Критерий | ImageMagick | FFmpeg |
|---|---|---|
| Установка | Простая | Простая |
| Размер | ~40 MB | ~60 MB |
| Скорость | Средняя | Быстрая |
| Функциональность | Узконаправленная (изображения) | Универсальная (видео, аудио, изображения) |
| Качество масштабирования | Отличное | Отличное |
| Кроссплатформность | Да (Windows, Mac, Linux) | Да (Windows, Mac, Linux) |
| Сложность команд | Проще | Проще |
| Документация | Обширная | Очень обширная |
| Поддержка форматов | Все основные | Все основные |
| Интеграция в проект | Хорошо для конкретной задачи | Универсальный инструмент |
ImageMagick:
- 🎯 Нужна специализированная программа только для изображений
- 🏠 Есть Windows и нужна простота установки
- ⚡ Иконки не критичны по времени
FFmpeg:
- 🎬 Может понадобиться для видео/аудио в будущем
- 🐧 Работаете в Linux/Mac среде
- ⚙️ Уже установлен FFmpeg в проекте
# ImageMagick
magick source-icon.png -resize 192x192 output.png
# FFmpeg
ffmpeg -i source-icon.png -vf scale=192:192 output.png -yРезультат идентичный! Выбирайте то, что удобнее.
➡️ Все команды FFmpeg: смотрите ffmpeg-commands.md
ImageMagick — мощный инструмент для обработки изображений. Он:
- Быстро масштабирует изображения
- Сохраняет качество
- Поддерживает все форматы
- Работает на всех ОС
Варианты:
- Figma — создайте и экспортируйте 512×512
- Illustrator/Photoshop — сохраните как PNG
- Canva — профессиональные иконки с скачиванием
- Looka — AI генератор логотипов
- Online редакторы — canva.com, figma.com
@1x— базовое разрешение (не указывается в имени)@2x— двойное разрешение (Retina, iPhone 6-8)@3x— тройное разрешение (Plus, XS Max)
iOS автоматически выбирает нужный размер по экрану.
Адаптивная иконка для Android 10+. Может быть обрезана в разные формы (круг, квадрат с углами и т.д.).
Рекомендуется разместить логотип в центре с паддингом 72px от края для 192×192.
- Переустановите ImageMagick
- При установке выберите "Add to PATH"
- Перезагрузитесь
- Проверьте: откройте PowerShell и введите
magick --version
- https://www.favicon-generator.org/
- https://icon-set.vercel.app/
- https://pwa-asset-generator.firebaseapp.com/
# Сжатие PNG
npm install -g imagemin-cli imagemin-pngquant
imagemin icons/*.png --out-dir=icons --plugin=pngquant→ Убедитесь что файл source-icon.png в папке скрипта
→ Переустановите ImageMagick, выберите "Add to PATH"
→ Убедитесь что исходная иконка минимум 512×512px → Или попробуйте еще одну иконку
→ Проверьте права доступа к папке → Попробуйте запустить PowerShell от администратора
→ Проверьте что manifest.json подключен в HTML → Откройте DevTools → Application → Manifest → Проверьте что все paths корректные (/icons/...)
- ✅ Поддержка 26 иконок
- ✅ Batch + PowerShell версии
- ✅ Автогенерация HTML header
- ✅ Структура папок для iOS/Android
MIT — используйте свободно!
Создано для быстрой генерации иконок PWA приложений.
Совет: Сохраните этот README для будущих проектов! Просто копируйте скрипты и используйте по мере необходимости.