【发布时间】:2013-03-09 01:38:00
【问题描述】:
为了从特定坐标的图像中获取颜色,我使用了这个答案get-pixel-color-from-canvas-on-mouseover。但是,在 Microsoft 第 56 页的 Powerpoint 上,它说 getImageData 必须使用一次,因为来自显卡的调用非常密集。他们举了一个例子,但它是为了分析整个画面。
有没有办法只使用一次 getImageData,然后只分析来自特定 x 和 y 坐标的数据,就像我说的 5 个随机位置一样?
编辑:用于检查示例所做的每个像素:
var imageData = ctx.getImageData(0, 0, width, height);
var inputData = imageData.data;
for(var y = 0; y < height; y++) {
for (car x = 0; x <width; x++) {
var r = inputData[i+0];
var g = inputData[i+1];
var b = inputData[i+2];
但我想要的是它确实像下面那样,但在外面有 imageData: 如何读取包含我想要的位置的数组?因为括号里的数字是颜色值类型(r,g,b)
for (var i=0; i<slider; i++)
{
var objectx = position.getX();
var objecty = position.getY();
var imageData = context.getImageData(objectx, objecty, 1, 1).data;
var hex = "#" + ("000000" + rgbToHex(p[0], p[1], p[2])).slice(-6);
}
【问题讨论】:
-
您能不能说的详细点......??
-
是的,您可以使用 getImageData 一次,并可以针对特定的 x 和 y 对其进行 n 次分析,因为图像数据将存储在数组变量中,并且在您分配其他变量之前不会更改数组的值 ...
-
为了更清楚,我已经编辑了我的问题。希望对你有帮助
标签: javascript image html canvas