Показать сообщение отдельно
  #2 (permalink)  
Старый 07.07.2016, 05:21
Профессор
Отправить личное сообщение для Яростный Меч Посмотреть профиль Найти все сообщения от Яростный Меч
 
Регистрация: 12.04.2010
Сообщений: 557

Соображения навскидку:

1. Не надо использовать getImageData. Анимированная гифка - это несколько неанимированных гифок в одном файле, только с общим заголовком и футером, и, возможно, с общей палитрой (если у всех одинаковая). Потому нет смысла делать вручную из imageData, лучше использовать метод toBlob для каждой канвы.

2. У каждого блоба, используя метод slice, взять изображение - некую внутреннюю часть, без заголовочной информации. Общий заголовок сотворить вручную, используя Uint8Array. Так же сделать общий футер. И всё это добро передать в конструктор Blob. Потом к этому блобу подойти с функцией URL.createObjectURL, либо в крайнем случае использовать FileReader, хотя не знаю, в каком браузере это нужно (где есть FileReader, но нет URL.createObjectURL).

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

Последний раз редактировалось Яростный Меч, 07.07.2016 в 12:01.
Ответить с цитированием