开发者

Upload canvas element to webserver/database?

I'm searching for a good method to upload a canvas element from Firefox to a webserver or database to have the ability to reload it later.

My ideas: 1. my first idea was to use getImageData() and save the canvas as an ImageData object to the database, but this might not a good solution because these objets can get quite large. 2. second idea is to use a Flash/Javascript method to upload the canvas as an PNG to the webserver.

Do you have any comments on 开发者_StackOverflow社区these methods or maybe have another good solution?


Canvas elements have a toDataURL function that serializes the image on the canvas as a PNG, encoded into a data URL. You could either post the image with a form (by setting a hidden input element's value to the data URL) or in the background using AJAX.

You should be aware that toDataURL (or any other method of getting the pixel data) will throw a security exception if the canvas is not "origin-clean". For example, if you ever call drawImage with an image from a different domain, you can no longer use the toDataURL or getImageData functions.


I'm not too sure I would be worried about size unless images are typically > 10 mb in size. Is that really an issue?

If not, using getImageData() would be the most practical and simplest method IMO.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜