2012-09-30 2 views
1

이미지가 있고 특정 픽셀의 색을 잡기 위해 로봇과 getPixelColor()를 사용하는 방법을 알아 냈습니다. 이미지는 내가 제어하고있는 캐릭터이고 로봇이 이미지 주위를 계속 스캔하여 주변 픽셀이 특정 색상과 같은지 알려주고 싶습니다. 가능한가요? 감사!이미지 주위에 픽셀 색 가져 오기

+0

는 네, 그것은 가능합니다. –

+0

어떻게 말해 줄 수 있습니까? –

+2

나 자신, 나는 로봇을 사용하여 "캐릭터"보다 약간 큰 이미지를 추출한 다음 얻은 BufferedImage를 분석 할 것입니다. 물론 세부 사항은 프로그램의 세부 사항에 달려 있습니다. 아마도 가장 빠른 방법은 BufferedImage의 Raster를 가져온 다음 thats dataBuffer를 가져 와서 그 데이터를 가져 와서 반환 된 배열을 분석하는 것입니다. –

답변

1

나 자신, 나는 "캐릭터"보다 약간 큰 이미지를 추출하기 위해 Robot을 사용하고, 얻어진 BufferedImage를 분석한다. 물론 세부 사항은 프로그램의 세부 사항에 달려 있습니다. 아마도 가장 빠른 방법은 BufferedImage의 Raster를 가져온 다음 thats dataBuffer를 가져 와서 그 데이터를 가져 와서 반환 된 배열을 분석하는 것입니다. 예를 들어

,

// screenRect is a Rectangle the contains your "character" 
// + however many images around your character that you desire 
BufferedImage img = robot.createScreenCapture(screenRect); 
int[] imgData = ((DataBufferInt)img.getRaster().getDataBuffer()).getData(); 

// now that you've got the image ints, you can analyze them as you wish. 
// All I've done below is get rid of the alpha value and display the ints. 
for (int i = 0; i < screenRect.height; i++) { 
    for (int j = 0; j < screenRect.width; j++) { 
    int index = i * screenRect.width + j; 
    int imgValue = imgData[index] & 0xffffff; 
    System.out.printf("%06x ", imgValue); 
    } 
    System.out.println(); 
}