Stap 11: Bedoel waardeberekening
Het eerste wat dat we doen is om te nemen van een screenshot van het hele scherm:
screenShot = screenshotRobot.createScreenCapture (nieuwe rechthoek (nieuwe Dimension(screenWidth,screenHeight)));
We opnieuw alle RGB-waarden naar nul.
rood = groen = blauw = 0;
Daarna moeten we herhalen van alle pixels op het gebied van de huidige kleur. Twee voor-loops zal dat werk voor ons doen. In elke step verhogen we ons standpunt met de breedte van de huidige stap.
Links
voor (xPosition = startXSide; xPosition < endXSide; xPosition += stepWidth) {}
voor (yPosition = startYSide; yPosition < endYSide; yPosition += stepWidth) {}
currentPixel = screenShot.getRGB (xPosition, yPosition);
rode += (int) (255 & (currentPixel >> 16));
groene += (int) (255 & (currentPixel >> 8));
blauw = + (int) (255 & (currentPixel));
}
}
De breedte van de stap bepaalt u hoeveel pixels invloed op de gemiddelde waarde. Hoe hoger deze waarde is, des te sneller de voor loops zal worden verwerkt, omdat we een heleboel pixels missen. De andere kant van de medaille is de berekening van de gemiddelde waarde. Het is meer precies als u als u veel pixels analyseren. Aan de andere kant is het niet nodig om te kijken naar elke één omdat nauwe pixels dezelfde kleur hebben.
Het is een compromis tussen snelheid en nauwkeurigheid. Gewoon uitproberen van een paar waarden en toezicht op de bijgewerkte waarde.
Wij vatten alle rode, alle groene en alle blauwe waarden van alle pixels en kloof door het nummer van deze pixels. Nu hebben we de gemiddelde waarde.
rode / = numberOfSidePixels;
groen / = numberOfSidePixels;
blauw / = numberOfSidePixels;
Als u wilt dat de toepassing om te slapen voor een tijdje na een berekening cyclus kunt u de waarde voor 'Slaap'.