Как работать с длинными data:url?

Добрый день.
Есть небольшое приложение на js, которое работает с канвой. Так же нужна возможность представить текущее изображение с канвы в виде img-изображения, что бы можно было сохранить на компьютер. При этом все должно работать на клиенте, без обращений к серверу.
Для этого я использую canvas.toDataURL(), который возвращает изображение с канвы в виде data:url строки. На маленьких изображениях работает нормально, а вот с большими изображениями google chrom работать отказывается. Это случается когда полученная строка больше 1000000 символов.
Остальные браузеры работают нормально, а вот в хроме вкладка падает. Причем это случается не только при открытии изображения с новой вкладке, но и при попытке перетянуть ее мышью.

Подскажите, как решить эту проблему? Что надо сделать, что бы в хром не выпендривался? Если честно, я не совсем понимаю в какую сторону вообще думать.

Буду благодарен за любые мысли.
  • Вопрос задан
  • 3274 просмотра
Решения вопроса 1
@Sayonji
Можно попробовать не открывать пользователю картинку для сохранения, а форсировать диалог Save as, вот тут есть код для этого.
А в этом топике показывают, как устанавливать название, которое будет показываться у файла в том диалоге, чтобы не было data:img/png,FGSFDS... на миллион букв.
Но я не пробовал.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы