2011-12-17 2 views
2

는 여기에 스크린 샷을 쓴 클래스는 다음과 같습니다Robot.createScreenCapture은 색상을 변화

public class imagemanipulation { 

    Dimension screenResolution; 
    Rectangle screenRectangle; 
    Robot robot; 

    imagemanipulation() { 
     try { 
      screenResolution = Toolkit.getDefaultToolkit().getScreenSize(); 
      screenRectangle = new Rectangle(screenResolution); 
      robot = new Robot(); 
     } catch (AWTException ex) { 
      Logger.getLogger(imagemanipulation.class.getName()).log(Level.SEVERE, null, ex); 
     } 
    } 

    public BufferedImage newScreenshot() { 
     BufferedImage image = robot.createScreenCapture(screenRectangle); 
     return image; 
    } 

} 

내가이 위에서 찍은 화면의 스크린 샷 모두 BufferedImagewhatever.getRGB(x,y)을 사용하고, 그것의 좌표입니다 다른 이미지의 일부분을 찾은 다음 일치하는 부분이있는 x 및 y 위치를 반환합니다. 이것은 흑백 이미지에는 좋지만 착색에는 적합하지 않습니다. 내가 가지고있는 문제는 createScreenCapture이 원래 있었던 스크린 샷의 RGB 색상을 변경했기 때문에 createScreenCapture으로 찍은 이미지를 다른 이미지와 비교할 때 결코 작동하지 않는다는 것입니다.

내 생각에 createScreenCapture은 스크린 샷에서 색상의 양을 줄여야 만 더 효율적이라고 생각하지만 그 일을 막을 수있는 방법이 있습니까?

+0

* "스크린 샷의 RGB 색상을 원래의 색상으로 변경"* 원래 '원래'는 무엇을 의미합니까? 어떤 소프트웨어가 원본 이미지를 생성합니까? 또한 로봇 인 경우 로봇이 수행 할 수있는 최적화 (또는 수행하지 않을 수도 있음)가 다른 호출에서 일정 할 것이라고 추측 할 수 있습니다. "Robot"으로 수행 된 두 개의 스크린 샷 사이에서 '변경된 영역'(예 : GUI가 하나에 표시됨)을 성공적으로 감지하는 소프트웨어를 작성했습니다. –

+0

기본적으로 내 문제는 로봇에 의해 캡처 된 모든 이미지가 올바른 색상 값을 잃어 가고있는 것입니다. 로봇을 사용하여 촬영 한 이미지의 색상이 너무 왜곡되어 있으므로이 변색 때문에 다른 이미지와 비교할 수 없습니다. 왜 로봇이 이것을하고 있는지 나는 잘 모르겠습니다. – Macmee

+0

그 단어들 속에서 ** 어떤 소프트웨어가 원본 이미지를 생성합니까? ** –

답변

1

참고로이 example을 클릭하면 바탕 화면의 한 지점으로 드래그하여 주변 화면의 확대 이미지를 표시 할 수 있습니다. 캡처 된 이미지 위에 마우스를 가져 가면 색상이 도구 설명에 표시됩니다. 플랫폼에서 유틸리티를 사용하여 결과가 올바른지 확인했습니다. 이를 프로그램 및 결과와 비교할 수 있습니다.