Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сохранить canvas в png (https://javascript.ru/forum/misc/32053-sokhranit-canvas-v-png.html)

andrey1402 01.10.2012 22:10

Сохранить canvas в png
 
Привет всем!
Знаю, что эта тема много раз перетиралась, но так и не нашел адекватного ответа на вопрос: можно ли сохранить изображение на canvasе на стороне пользователя (применяя только js)?

Вариантов с php куча - не подходят.
toDataURL - открывает в отдельном окне - не подходит.
Много написано о библиотеке Canvas2Image, но она сохраняет в непонятных форматах (рабочих примеров ее использования нет даже на сайте разработчика - чтоб в png сохранила).

Подскажите куда искать, пожалуйста.

devote 01.10.2012 22:13

Цитата:

Сообщение от andrey1402
Подскажите куда искать, пожалуйста.

берешь исходник кодировщика написанного на Си и переписываешь его под JS, хотя думаю это уже кто нить сделал... все что нужно найти.

devote 01.10.2012 22:14

например вот: https://github.com/tegansnyder/Leaflet-Save-Map-to-PNG

trikadin 01.10.2012 22:17

andrey1402,
toDataURL - можно не открывать в новом окне, а создать картинку и впарить ей как src.

devote 01.10.2012 22:21

Цитата:

Сообщение от trikadin
toDataURL - можно не открывать в новом окне, а создать картинку и впарить ей как src.

ну да точно, она же еще и аргумент получает типа:
.toDataURL("image/png")

andrey1402 01.10.2012 22:22

Цитата:

Сообщение от devote
все что нужно найти

Согласен. Ищу.
Цитата:

Сообщение от devote

Использует saveMap.php
Цитата:

Сообщение от trikadin
toDataURL - можно не открывать в новом окне, а создать картинку и впарить ей как src

Недопонял, но щас попробую разобраться.

andrey1402 02.10.2012 04:39

Цитата:

Сообщение от trikadin (Сообщение 207624)
andrey1402,
toDataURL - можно не открывать в новом окне, а создать картинку и впарить ей как src.

Нельзя - все равно открывается в новом окне (проверено: занусси)), а меняешь заголовок - сохраняет тупо (*.part на Firefox).
http://jsfiddle.net/EtaSE/
Вывод: на чистом js это не сделать. Зря время потратил(

FINoM 02.10.2012 05:32

В хроме есть тег атрибут download.

andrey1402 02.10.2012 07:16

Цитата:

Сообщение от FINoM (Сообщение 207681)
В хроме есть тег download.

Рад за хром) Кроссбраузерность еще нужна.
Пришлось сделать с php:
http://jsfiddle.net/A2sNG/

trikadin 02.10.2012 11:42

Цитата:

Сообщение от andrey1402
Нельзя - все равно открывается в новом окне

Ну, это логично - картинки по умолчанию открываются в самом браузере.


Часовой пояс GMT +3, время: 15:07.