如何从纹理中读取像素的颜色(cocos2d-js)?

时间:2014-09-25 20:36:48

标签: textures cocos2d-x pixel cocos2d-js

如何从纹理中读取[x,y]处像素的颜色(在cocos2d-js中)?

1 个答案:

答案 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;
}
祝你好运!