У меня есть эта функция, чтобы превратить содержимое холста в данные PNG.
function saveImage()
{
var img = canvas.toDataURL("image/png");
var imgWin = window.open('','', 'width=880, height=720');
imgWin.document.write('<!doctype html><html><head></head>' +
'<body> <img src="' + img +'" alt=""/> </body> </html>');
}
Работает как шарм и помещает png прямо на экран, как и должно быть. Теперь я могу легко перетащить его на рабочий стол в Chrome.
Но с Firefox я получаю ссылку, а в IE (которого я действительно не забочусь о поддержке приложения, которое я создаю) она вообще не будет перетаскиваться.
Я понимаю, что это связано с тем, как браузеры обрабатывают DataURL. Но есть ли способ превратить этот DataURL-png в реальное изображение, которое сохраняется в кеше или в другом месте, откуда я могу его прочитать?
Так это
var img = canvas.toDataURL("image/png");
<img src="' + img +'" alt=""/>
превратится во что-то вроде:
var img = canvas.toDataURL("image/png");
img.goNinjaAndTurnIntoRealPng()
<img src="../local/img.png" alt=""/>