LED TV ljus (11 / 14 steg)
Steg 11: Menar värdeberäkningen
Det första vi gör är att ta en skärmdump av hela skärmen:
Skärmdump = screenshotRobot.createScreenCapture (nya rektangel (nya Dimension(screenWidth,screenHeight)));
Då återställs alla RGB-värden till noll.
röd = grön = blå = 0;
Efter det har vi att iterera över alla pixlar som påverkar den aktuella färgen. Två for-loopar kommer att göra det jobbet för oss. I varje steg öka vi vår ståndpunkt med nuvarande steg bredd.
Vänster
för (xPosition = startXSide; xPosition < endXSide; xPosition += Stegbredd) {
för (yPosition = startYSide; yPosition < endYSide; yPosition += Stegbredd) {
currentPixel = screenShot.getRGB (xPosition, yPosition);
röd += (int) (255 & (currentPixel >> 16));
grön += (int) (255 & (currentPixel >> 8));
blå = + (int) (255 & (currentPixel));
}
}
Steg bredd styr hur många bildpunkter påverkar medelvärdet. Ju högre värdet är, desto snabbare en för öglor kommer att behandlas, eftersom vi missar många pixlar. Den andra sidan av myntet är beräkningen av medelvärdet. Det är mer exakt om du om du analyserar många pixlar. Å andra sidan är det inte nödvändigt att undersöka varenda en eftersom nära pixlar har fått samma färg.
Det är en kompromiss mellan hastighet och precision. Bara prova några värden och övervaka ett uppdateringsvärde.
Vi sammanfatta alla röda, alla gröna och alla blå värden på alla pixlar och dividera med antalet denna pixlar. Nu har vi medelvärdet.
röd = numberOfSidePixels;
grön / = numberOfSidePixels;
blå / = numberOfSidePixels;
Om du vill att programmet ska sova en stund efter en beräkningscykel kan du ändra värdet för "Sleep".