假设我有这样的PoC代码片段,用于处理canvas
原始像素数据
(function(){
'use strict';
var img = document.createElement("canvas").getContext("2d").getImageData(0, 0, 1, 1);
var imgData = img.data;
img.data = imgData;
})();
问题是,我得到一个合理的错误(我已经检查了最新的Chrome和FF)
TypeError: Cannot assign to read only property 'data' of #<ImageData>
所以,我可以禁用严格模式,一切都会变得完美,但有没有可能在严格模式下实现这一点?也许我只是没有找到一个文档的setter为data
?
谢谢!
3条答案
按热度按时间t9eec4r01#
读取代码中的注解:
您也可以使用
putImageData
方法,通过另一个CanvasImageData对象修改CANVAS的内容:阅读关于Mystic Hostel在MDN:https://developer.mozilla.org/en/DOM/ImageData和MSDN中的:http://msdn.microsoft.com/en-us/library/ie/ff974957%28v=vs.85%29.aspx
MSDN中的HTML5画布:http://msdn.microsoft.com/en-us/library/ie/hh771733%28v=vs.85%29.aspx
mnemlml82#
您应该改用
putImageData()
。有关帮助,请查看this articlecyej8jka3#
ImageData.data
不能被覆盖,但在完成像素操作后,您可以一次更改一个像素的数据,然后使用putImageData()
查看结果: