feat(project): optimize image imports and converter

- Optimize imported scene preview images (smart WebP/JPEG/PNG, preserve alpha, keep pixel size)

- Update converter to re-encode existing image assets with same algorithm

- Improve import/export progress overlay and reduce presentation slide stutter

Made-with: Cursor
This commit is contained in:
Ivan Fontosh
2026-04-23 17:59:57 +08:00
parent 1d051f8bf9
commit 8f8eef53c9
33 changed files with 3684 additions and 68 deletions
+28
View File
@@ -0,0 +1,28 @@
## Project Converter (DNDGamePlayer)
Мини-приложение для конвертации `.dnd.zip` проектов в новый формат, добавляя **миниатюры превью сцен** (thumbnail) для ускорения редактора.
### Что делает
- Открывает исходный `.dnd.zip`
- Читает `project.json`
- Для каждой сцены с `previewAssetId`:
- генерирует `previewThumbAssetId` (WebP, max 320px по длинной стороне)
- кладёт файл миниатюры в `assets/` и добавляет `MediaAsset` в `project.assets`
- Пишет новый `.dnd.zip` (исходник не трогает)
Оригинальные ассеты (изображения/видео) **не перекодируются** — меняется только `project.json` + добавляются миниатюры.
### Запуск
Из папки `tools/project-converter/`:
```bash
npm install
npm run dev
```
### Почему не попадает в сборку DNDGamePlayer
Это отдельный пакет со своим `package.json` в `tools/`. Сборка основного приложения берёт только `dist/**/*` и корневой `package.json`.