Javascript 画布中颜色到灰度的转换

Javascript 画布中颜色到灰度的转换,javascript,canvas,webos,enyo,Javascript,Canvas,Webos,Enyo,我正在试用一个示例代码,它可以在WebOS(enyo)中将彩色图像转换为画布上的灰度。当我使用ctx.getImageData方法读取像素时,imageData只包含零。下面的链接提供了我正在使用的示例: WebOS支持从画布读取像素数据吗?我做错什么了吗 关于逻辑和代码,我参考了以下链接: 这很好。您应该将回调中的getimagedata从图像的onload事件中移动过来 比如: draw: function(image) { this.ctx.drawImage(event.ta

我正在试用一个示例代码,它可以在WebOS(enyo)中将彩色图像转换为画布上的灰度。当我使用ctx.getImageData方法读取像素时,imageData只包含零。下面的链接提供了我正在使用的示例:

WebOS支持从画布读取像素数据吗?我做错什么了吗

关于逻辑和代码,我参考了以下链接:


这很好。

您应该将回调中的getimagedata从图像的onload事件中移动过来

比如:

draw: function(image) {
    this.ctx.drawImage(event.target, 0, 0);
    this.greyImage();
},
并在绑定事件后设置源

image.onload = enyo.bind(this, "draw");
image.src = "images/image.png";
避免赛车状态

现在,在加载实际像素之前检索imagedata。这将导致一个空数组