Загрузить элемент canvas на веб-сервер / в базу данных? - PullRequest
2 голосов
/ 28 августа 2010

Я ищу хороший метод для загрузки элемента canvas из Firefox на веб-сервер или в базу данных, чтобы иметь возможность перезагрузить его позже.

Мои идеи: 1. Моя первая идея состояла в том, чтобы использовать getImageData() и сохраните холст как объект ImageData в базе данных, но это может быть не очень хорошим решением, поскольку эти объекты могут быть довольно большими.2. Вторая идея заключается в использовании метода Flash / Javascript для загрузки холста в виде PNG на веб-сервер.

Есть ли у вас какие-либо комментарии к этим методам или, возможно, есть другое хорошее решение?

Ответы [ 2 ]

0 голосов
/ 29 августа 2010

Элементы холста имеют функцию toDataURL, которая сериализует изображение на холсте как PNG, закодированный в URL данных .Вы можете опубликовать изображение с помощью формы (установив значение скрытого элемента ввода в URL-адрес данных) или в фоновом режиме, используя AJAX.

Вы должны знать, что toDataURL (или любой другой метод полученияданные пикселей) вызовет исключение безопасности, если холст не является "чистым от источника".Например, если вы когда-нибудь позвоните drawImage с изображением из другого домена, вы больше не сможете использовать функции toDataURL или getImageData.

0 голосов
/ 28 августа 2010

Я не уверен, что буду беспокоиться о размере, если размер изображения обычно не превышает 10 МБ. Это действительно проблема?

Если нет, то использование getImageData() будет наиболее практичным и простым методом IMO.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...