Соображения навскидку:
1. Не надо использовать getImageData. Анимированная гифка - это несколько неанимированных гифок в одном файле, только с общим заголовком и футером, и, возможно, с общей палитрой (если у всех одинаковая). Потому нет смысла делать вручную из imageData, лучше использовать метод toBlob для каждой канвы.
2. У каждого блоба, используя метод slice, взять изображение - некую внутреннюю часть, без заголовочной информации. Общий заголовок сотворить вручную, используя Uint8Array. Так же сделать общий футер. И всё это добро передать в конструктор Blob. Потом к этому блобу подойти с функцией URL.createObjectURL, либо в крайнем случае использовать FileReader, хотя не знаю, в каком браузере это нужно (где есть FileReader, но нет URL.createObjectURL).
Метод toBlob асинхронный, с коллбэком, потому надо будет их несколько запустить параллельно и дождаться всех результатов. Но, думаю, для такого сурового чувака как ты это не проблема.
Последний раз редактировалось Яростный Меч, 07.07.2016 в 12:01.
|