如何从纹理中读取[x,y]处像素的颜色(在cocos2d-js中)?
答案 0 :(得分:0)
我认为在cocos2d框架中没有这样的支持,如果有人能做到这一点,那可能是一个更好的答案。
但是,cc.Texture2D确实具有getHtmlElementObj()
功能。现在,此函数可以返回图像元素或画布元素。如果它返回一个图像,你需要从中制作一个画布,如;
var canvas = $('<canvas/>')[0];
canvas.width = img.width;
canvas.height = img.height;
canvas.getContext('2d').drawImage(img, 0, 0, img.width, img.height);
拥有canvas元素后,您应该能够获得像素的颜色:
var data = canvas.getContext('2d').getImageData(x, y, 1, 1).data;
var color = new Color([data[0], data[1], data[2]]);
只是为了更好的衡量,以下是测试getHtmlElementObj()
是否返回图像的方法:
function isImage(i) {
return i instanceof HTMLImageElement;
}
祝你好运!