ai
3 мин
24 октября 2026 г.
Источник: Dev.to AI Feed

Масштабирование анимированных GIF-файлов в браузере и черная бахрома, которой я не ожидал

Max/Wang
Max/Wang
RSS AI Ingest
Масштабирование анимированных GIF-файлов в браузере и черная бахрома, которой я не ожидал

У меня есть небольшой сайт с видеоинструментами, и один из них — программа масштабирования видео, работающая на WebGPU. На прошлой неделе я создал программу масштабирования GIF на основе того же движка. Я ожидал короткой работы: декодировать кадры, проталкивать каждый через модель, писать новый...

У меня есть небольшой сайт с видеоинструментами, и один из них — программа масштабирования видео, работающая на WebGPU. На прошлой неделе я создал программу масштабирования GIF на основе того же движка. Я ожидал короткой работы: декодировать кадры, протолкнуть каждый через модель, написать новый GIF. Модельная часть действительно была короткой, потому что я использовал ее как есть. Все вокруг модели занимало время. Я написал свой собственный декодер GIF Сначала я посмотрел ImageDecoder. У этой работы есть две проблемы. Не каждый браузер поддерживает его, и я хотел, чтобы режим пиксельной графики работал везде. Браузеры также фиксируют очень короткие задержки кадров при декодировании GIF, и я хотел, чтобы выходные данные точно сохраняли синхронизацию источника, включая количество циклов. Поэтому я написал небольшой декодер на TypeScript. Он проходит структуру блока один раз, чтобы собрать смещения кадров, задержки и палитры. Затем генератор компонует один кадр за раз и создает копию холста. Таким образом, память остается неизменной: одновременно живут один или два полных холста, независимо от того, содержит ли GIF 20 кадров или 400. Методы утилизации — самая непростая часть. Каждый кадр сообщает игроку, что делать, прежде чем рисовать следующий: сохранить холст, очистить его прямоугольник или восстановить то, что было там раньше. Если ошибешься, старые кадры уйдут.

Хотите внедрить ИИ в ваш бренд?

Спроектируем и развернем автономных агентов и современный цифровой стек под ваши задачи.

Рассчитать проект