从GWT画布获取像素颜色

时间:2015-06-25 04:58:21

标签: gwt canvas

我正在使用类似于HTML 5画布的GWT画布。我的目标是从画布中获取像素颜色。
我通过使用存储图像数据的CanvasPixelArray找到了一种方法。
图像数据存储像素信息。
我正在使用以下代码从画布中获取像素颜色:

    CanvasPixelArray imageData =     canvas.getRendererCanvas().getContext2d().getImageData(0, 0, canvas.getWidth(), canvas.getHeight()).getData();

    int length = imageData.getLength() / 4;
    int index = 0, r, g, b, a;

    for (int i = 0; i < length; i++) {
      index = 4 * i;

      r = imageData.get(index); //red
      g = imageData.get(++index); //green
      b = imageData.get(++index); //blue
      a = imageData.get(++index); //alpha 

      if (r == 255 || g == 255 || b == 255) { // pixel is white
        System.out.println(r+","+g+","+b+","+a);               
      }
    }

但主要问题是它工作太慢而且性能下降。这是上面代码工作正常的主要问题。

那么从画布获取颜色信息的最佳方式是什么?

非常感谢任何帮助。谢谢。

0 个答案:

没有答案