1

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

4

1 回答 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 回答