我的问题:
我正在制作HTML5游戏,并试图通过一次绘制背景而不是每隔一帧重新绘制一次,以使其更快。
为此,我在画布上绘制了背景,然后尝试从中获取ImageData。不幸的是,我被一个安全错误拦截了。无法执行操作,因为图像来自外部来源。
我研究过这个,看起来这是一个“功能”,阻止坏人从用户的硬盘中窃取内容。虽然我加载的这些图像不是来自硬盘驱动器。
我真的很想加快我的比赛。有没有解决方案来解决安全错误,或者甚至可以直接将图像加载到图像数据中,以便通过循环像素来绘制图像?
(注:我不希望有多个画布来完成这项工作的混乱)
谢谢,甘如何直接将图像绘制到ImageData数组 - HTML5/Javascript
1
A
回答
1
周围有没有办法,但你可以从另一个域使用的绘制图像getImageData
在这种情况下总会引发安全错误。这是为了防止窃取敏感信息,因为网站可以生成包含基于cookie或IP地址的私人用户信息的动态图像。但是,您可以简单地使用服务器端脚本来代理映像。
但老实说getImageData
和putImageData
是相当慢,我不明白这会如何加快你的游戏。在我看来,你认为绘制图像数据比简单地使用drawImage
,它的而不是更快。
如果您希望动画看起来不错,那么您将不得不重绘所有内容,这就是动画的工作方式。
相关问题
- 1. 如何绘制图像的直方图?
- 2. 可绘制图像数组
- 3. 将图像绘制到gtk.DrawingArea?
- 4. 绘制直方图与二维数组
- 5. Java - 如何从图像数组中依次绘制图像
- 6. 如何使用plotutils直接绘制一个数组
- 7. 如何将图像从url数组加载到图像数组?
- 8. 如何绘制数组中的直方图
- 9. 如何使用ImageMagick将镜像文本绘制到图像上?
- 10. 如何在python中绘制RGB图像的3D直方图
- 11. 从一个数组中绘制图像
- 12. 如何绘制swt图像?
- 13. Matlab。如何绘制图像
- 14. 如何绘制图像
- 15. 将图像转换为ImageData(Uint8ClampedArray)
- 16. 将2D图像绘制到Targetmarker上
- 17. 如何直接在桌面上绘制?
- 18. 如何将图像添加到数组?
- 19. iphone:如何将图像复制到图像组?
- 20. 直接在绘图函数中绘制值
- 21. 绘制直方图
- 22. 绘制直方图
- 23. 绘制直方图
- 24. 将Drawline图像绘制成Picturebox图像
- 25. 直接在matplotlib图上绘制箭头
- 26. Pyglet将一组图像绘制成一个较大的图像
- 27. 如何直接在屏幕上绘图
- 28. 如何将AjaxControlToolkit TabPanel绘制到位图
- 29. 如何将UIImage“绘制”到视图中?
- 30. 如何在c中绘制直方图
我明白了。嗯。我只是在想,绘制704个单独的44x44图像会比绘制单个968x748图像数据慢。我不知道。你能想出其他提高效率的方法吗? – Gan 2012-02-16 06:09:53
哦,在这种情况下,我建议你做服务器端脚本来代理图像,而不是使用getImageData,如果你只是使用canvas.toDataURL来创建一个Image对象并用drawImage绘制它,那会更好。 – Delta 2012-02-16 06:18:29
会有办法将图像数据转换为图像吗? – Gan 2012-02-16 06:30:46