你可以序列化/反序列化JavaScript中的画布对象?Javascript画布序列化/反序列化?
10
A
回答
3
您可以通过canvas.getImageData()和.putImageData()获得直接像素访问。您也可以使用canvas.toDataURL()将图像序列化到数据URL以发布到服务器。
这只适用于较新的浏览器。
14
除了getImageData
方法,您可以使用canvas.toDataURL()
来获取数据URL编码的PNG。如果您需要序列化为一个字符串,则无需手动将原始数据转换为字符串。您可以通过创建图像并将src设置为数据URL来反序列化,然后将其绘制到画布上。
[编辑,以考虑异步加载(由olliej建议)。]
function serialize(canvas) {
return canvas.toDataURL();
}
function deserialize(data, canvas) {
var img = new Image();
img.onload = function() {
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext("2d").drawImage(img, 0, 0);
};
img.src = data;
}
如果我没有记错,一些旧版本的Safari,也许歌剧不支持toDataURL
,但较新版本做。
相关问题
- 1. 序列化GWT画布
- 2. Json.NET:序列化/反序列化阵列
- 3. 反序列化
- 4. 反序列化
- 5. 反序列化序列
- 6. 序列化/反序列化/ OOP
- 7. JQuery序列化和反序列化
- 8. WCF的XmlElement序列化/反序列化
- 9. boost C++序列化/反序列化
- 10. Android HashMap序列化/反序列化
- 11. 序列化/反序列化MQMessage
- 12. PHP反序列化序列化数据
- 13. WPF BitmapImage序列化/反序列化
- 14. 序列化/反序列化PHP数组
- 15. 火腿不序列化+反序列化
- 16. 部分xml序列化/反序列化
- 17. jQuery序列化和反序列化
- 18. C#XML序列化/反序列化
- 19. 序列化和反序列化规则
- 20. IPC:WM_COPYDATA +序列化/反序列化
- 21. Kryo序列化empy反序列化
- 22. 序列化和反序列化(C#)
- 23. Spring Remoting序列化和反序列化
- 24. C#XML序列化/反序列化
- 25. 序列化/反序列化系统.Uri
- 26. 属性序列化/反序列化
- 27. 反序列化序列化对象
- 28. Silverlight序列化/反序列化问题
- 29. 序列化/反序列化和Proguard
- 30. J2ME:JSON序列化/反序列化
从技术上说,图像不能保证同步加载,所以你应该真的在图像处理器 – olliej 2009-04-20 07:40:38