0
자바에서 픽셀 검색과 관련하여 문제가 있습니다. 현재 나의 클래스/프로그램은 내 목적에 따라 느려지는 픽셀 단위로 픽셀 단위로 검색하고 있습니다. 자바가 픽셀을 훨씬 빨리 검색하지 않아서 사람들에게 물어볼 생각이 들었습니다. 픽셀을 RGB 색상으로 검색하고 있습니다. 하지 명백한 getRGB를 법 (이것이 -Java의 빠른 픽셀 검색
은 아마final int rot = 0;
final int gruen = 0;
final int blau = 0;
int toleranz = 1;
Color pixelFarbe;
Dimension bildschirm = Toolkit.getDefaultToolkit().getScreenSize();
Robot roboter = null;
try {
roboter = new Robot();
} catch (AWTException e) {
e.printStackTrace();
OrbitRaider.log("Robot is not working.");
}
for(int x = 0; x <= bildschirm.getWidth(); x++)
{
for(int y = 0; y <= bildschirm.getHeight(); y++)
{
// Pixelfarbe bekommen
pixelFarbe = roboter.getPixelColor(x, y);
// Wenn Pixelfarbe gleich unserer Farbe
if((pixelFarbe.getRed() < (rot - toleranz)) || (pixelFarbe.getRed() > (rot + toleranz))
&& (pixelFarbe.getGreen() < (gruen - toleranz)) || (pixelFarbe.getGreen() > (gruen + toleranz))
&& (pixelFarbe.getBlue() < (blau - toleranz)) || (pixelFarbe.getBlue() > (blau + toleranz))){("Could not find Pixel Color");
}
else{
System.out.println("Pixelcolor found at x: " + x + " y: " + y);
}
}
}
! getPixelColor가 호출 될 때마다 원시 DLL을 호출하면 매우 느린 결과가 발생합니다. 대신 화면의 스냅 샷을 찍고 메모리에 저장된 픽셀을 확인해야합니다. 그게 너에게 문제가된다면. 더 많은 정보를 제공해야합니다. – Chill
@Chill :'java.awt.Robot'입니다. 그리고 그렇습니다. 단일 픽셀을 얻는 것은 확실히 느립니다. – maaartinus
jdk에 픽셀 긁기 기능이 있다는 것을 알지 못했습니다. 나는 다른 언어로 경험 한 것에서 이야기하고 있었다. 아래의 Ibalazscs 대답은 내가하는 것이 맞습니다. 주요 병목 현상은 사용자가 가지고있는 정보를 스캔하는 것이 아니라 초기 픽셀 정보를 실제로 얻는 것입니다. 일괄 처리하면 훨씬 빠릅니다. – Chill