我有一个动态填充图像数据的画布标签数组,我需要分析画布的图像数据以进行调试。我怎么能在记忆中看到这些?
我显然可以将它们绘制到屏幕画布上,但这非常耗时,而且我正在寻找类似于在Chrome观看列表中查看变量的解决方案。
编辑:我需要直观地查看画布数据,而不是文本。我想要一种方法来做到这一点,而无需手动将内存画布的数据绘制到屏幕画布上以节省时间。例如,在Firefox的开发人员中,如果将鼠标悬停在图像源或CSS上以显示图像的URL,则会显示带有图像的小工具提示
我想要内存画布类似的东西
答案 0 :(得分:0)
创建一个大型屏幕画布,并使用context.drawImage
的缩放版本将多个缩小尺寸的内存画布绘制到屏幕画布上。您可以在大画布上一次查看4,6,8个较小的画布。有点像四屏安全摄像头显示。
[根据评论添加(以及澄清请求)]
我不知道怎样做你问的问题。
画布不是变量。它基本上是一个位图。
如果要查看像素数据,可以使用context.getImageData
。您将看到的是数千个数组元素,其值均在0-255之间。
以下是图像像素数据的示例:
3,45,117,255,2,46,119,255,4,48,123,255,2,49,127,255,3,51,133,255,2,52,137,255,2,54,140,255,1,55,143,255,7,74,152,255,8,71,148,255,7,69,146,255,5,69,141,255 ,5,74,143,255,2,82,145,255,1,92,149,255,0,97,152,255,31,92,175,255,15,86,174,255,0,79,99,255,0,48,121,255,10,30,177,255,21,35,144,255,1,33,134,255,0,46,155,255 ,0,44,174,255,0,57,120,255,0,51,121,255,0,37,167,255,9,50,156,255,2,52,125,255,15,67,168,255,0,53,162,255,15,71,168,255,4,63,153,255,1,62,145,255,14,69,152,255,9 ,64,155,255,9,83,182,255,14,121,225,255,0,124,232,255,11,120,223,255,11,124,228,255,7,124,229,255,1,123,228,255,8,131,235,255,16,138,239,255,10,130,227,255,0,115,209,255,2,123,238,255,0,123,233,255,...以及更多数千个要素。
如果这是你需要的,这里是如何得到它:
var img=new Image();
img.onload=start;
img.src="yourImageSource";
function start(){
canvas.width=img.width;
canvas.height=img.height;
ctx.drawImage(img,0,0);
var a=ctx.getImageData(0,0,cw,ch).data;
var t="";
var comma="";
for(var i=0;i<a.length;i++){
t+=comma+a[i];
comma=",";
}
console.log(t);
}
如果那不是您想要的,也许您可以编辑您的问题并更好地解释您的需求?