feat(web): правки применяются на фронте, фильтры в WASM
Новый алгоритм редактирования: обработка идёт только на клиенте. - Фильтры «Свет» считает WASM-модуль на Rust (frontend/wasm/light, 1.5 КБ): он строит тональные кривые и обрабатывает пиксели. При недоступности модуля используется JS-реализация с тем же результатом — расхождение проверяется тестом. - Просмотр рисует видимую область фото с правками на canvas поверх исходной версии, поэтому изменения видны сразу, без ожидания рендера. - Правки уходят на сервер не сразу: через десять секунд без изменений или при переключении фото. Сервер сохраняет параметры и готовит варианты сетки и полноразмерную версию в фоне, о готовности сообщает через SSE — клиент подтягивает готовую версию.
This commit is contained in:
@@ -12,6 +12,8 @@ SvelteKit через `go:embed`, запуск через systemd.
|
||||
`s3.localnet`, path-style), нативный SSE, golang-migrate, slog.
|
||||
- **Frontend:** SvelteKit 2 + Svelte 5, adapter-static, TypeScript, TailwindCSS,
|
||||
service worker с офлайн-кешем оболочки, списков и эскизов/превью фотографий.
|
||||
Фильтры правок считает WASM-модуль на Rust (`frontend/wasm/light`): пересборка
|
||||
нужна только при правке самого модуля, в репозитории лежит готовый `light.wasm`.
|
||||
- **Обработка изображений:** `disintegration/imaging` + `gen2brain/webp` +
|
||||
`rwcarlsen/goexif` (всё чистый Go).
|
||||
|
||||
|
||||
Reference in New Issue
Block a user