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