2012-03-31 4 views
0

화면에서 데이터를 긁어 내야하는 프로그램을 작성하고 있는데, 화면의 각 픽셀로 이동하여 색상을 저장하면됩니다.하지만 이것은 매우 뛰어난 opration이며 시간자바에서 픽셀 인식 ​​가속화

는 folowing 코드는 내가

try 
{ 
    Robot r = new Robot(); 
    for(int a = 0; a < height; a++) 
    { 
      for (int b = 0; b < width; b++) 
      { 
       Color p = r.getPixelColor(a, b); 
       int red = p.getRed(); 
       int blue = p.getBlue(); 
       int green = p.getGreen(); 

       screen[a][b][0] = red; 
       screen[a][b][1] = blue; 
       screen[a][b][2] = green; 
      } 
     } 
} 
catch(AWTException e) {} 

내가이를 향상시킬 수 있습니다하거나 사용 Robot.createScreenCapture()이 클래스 나 메소드

답변

1

를 사용하여 어떤 대안이있는 모든 방법이 데이터를 긁어 사용하고 무엇인가만들기 하나의 메소드 호출에서 특정 영역의 210.

보안상의 이유로 작동하지 않는 경우, 두 번째 옵션은 소스를 수정하여 BufferedImage에 UI를 렌더링 한 다음 복제하여 복제를 분석하거나 (변경을 방지 할 수있는 경우 직접 분석 할 수 있음) 그것).

+0

변수에 할당하는 경우 화면의 픽셀 인 것처럼 반복 할 수 있습니까 아니면 다른 방식으로해야 할 필요가 있습니까 – Dan

+0

질문이 실제로 의미가 없습니다. BufferedImage를 사용하는 방법을 알고 있습니까? 그렇지 않다면, 다음을 읽어라 : http://www.exampledepot.com/egs/java.awt.image/imagepixel.html 아마도, 당신은 더 빠른 액세스를 위해 픽셀을'int' 배열로 복사하고 싶을 것이다. 3 개의 배열을 만드는 대신 전체 RGB 색상입니다. –

+0

고마워요. 이건 내가 찾고 있던 바로 그거야. – Dan