【发布时间】:2011-10-09 10:55:22
【问题描述】:
我似乎无法从我的画布 (Chrome 12) 中获取像素数据。我做错了什么?
完整示例。我所有的控制台日志都为零。我希望混合使用黑白像素。
澄清:我正在绘制一个黑色方块来测试我是否可以正确检索像素数据。我希望有一些255, 255, 255(白色)和一些0, 0, 0(黑色)。我只得到白色像素数据。
<html>
<canvas id="canvas" style="border: 1px solid black" width="20" height="20"></canvas>
<script>
var x;
var y;
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
// some of the pixels should be black, some white.
context.fillRect(0, 0, 10, 10);
var imageData = context.getImageData(0, 0, canvas.width, canvas.height);
for (y = 0; y < imageData.height; y ++)
{
for (x = imageData.width - 1; x >= 0; x--)
{
console.log(x, y,
imageData.data[((y*(imageData.width*4)) + (x*4)) + 0],
imageData.data[((y*(imageData.width*4)) + (x*4)) + 1],
imageData.data[((y*(imageData.width*4)) + (x*4)) + 2]);
}
}
</script>
</html>
【问题讨论】:
-
在我的 Chrome 12 jsfiddle.net/va3C5 上运行良好。请检查它是否适合您,如果适合,您的问题出在其他地方。
-
什么工作正常?我在该页面上看不到任何控制台输出。
-
日志中的输出:imgur.com/xwYxR
-
@Niklas .. 乔说他有零而不是没有日志......
-
是的,同样的事情:全为零。我想要 0 和 255s 的混合