我想迭代画布像素并将其颜色设为RGB,但即使画布上有图像,所有像素都有0,0,0 RGB值。
这是我的代码; (我的测试图像在jsfiddle中看不到)
for(i = 400; i < 1000; i += 4) {
red = imageData.data[i];
green = imageData.data[i + 1];
blue = imageData.data[i + 2];
alpha = imageData.data[i + 3];
console.log(red + "," + green + "," + blue + "," + alpha);
}
答案 0 :(得分:0)
这很可能是因为您的画布污染并且Web浏览器安全性不允许您读取它的数据。这是因为跨域安全性:您正在从其他域加载图像或视频并在画布上绘制它们。如果没有跨域安全性,您可以例如窃取用户Facebook照片等。
Mozilla Developer Network有一篇很好的文章如何处理这个问题
但是,我的建议是尽可能从同一个域加载HTML页面和图像,以避免CORS问题。
答案 1 :(得分:0)
工作示例 - http://jsfiddle.net/mwPfa/3/
这些是值得一提的事情:
img.crossOrigin = "Anonymous";
加载 - 不是每个图像都可以在这里工作。