如何从纹理(在 cocos2d-js 中)读取 [x,y] 处的像素颜色?
问问题
961 次
1 回答
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);
一旦你有一个画布元素,你应该能够得到一个像素的颜色:
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;
}
祝你好运!
于 2014-10-06T15:21:46.510 回答