Paso 11: Cálculo del valor de media
Lo primero que hacemos es tomar una captura de pantalla de toda la pantalla:
Imagen = screenshotRobot.createScreenCapture (nuevo rectángulo (nuevo Dimension(screenWidth,screenHeight)));
Luego nos restaura todos los valores de RGB a cero.
rojo = verde = azul = 0;
Después de eso tenemos que iterar sobre todos los píxeles que afectan el color actual. Dos para lazos hará ese trabajo por nosotros. En cada paso aumentamos nuestra posición por el actual ancho de paso.
Izquierda
para (xPosition = startXSide; xPosition < endXSide; xPosition += stepWidth) {}
para (yPosition = startYSide; yPosition < endYSide; yPosition += stepWidth) {}
currentPixel = screenShot.getRGB (xPosition, yPosition);
rojo += (int) (255 & (currentPixel >> 16));
verde += (int) (255 & (currentPixel >> 8));
azul = + (int) (255 y (currentPixel));
}
}
La anchura de paso controla cuántos píxeles afectan el valor medio. Cuanto mayor sea este valor es, cuanto más rápido el de lazos se procesará, ya que perder un montón de píxeles. La otra cara de la moneda es el cálculo del valor promedio. Es más exacto que si lo analizan muchos píxeles. Por otro lado no es necesario mirar cada uno porque píxeles cercanos tienen el mismo color.
Es un compromiso entre velocidad y precisión. Sólo probar algunos valores y supervisar el valor de la actualización.
Sumamos todo rojo, todo verde y azul todos valores de los píxeles y dividir por el número de este píxeles. Ahora tenemos el valor medio.
rojo = numberOfSidePixels;
verde / = numberOfSidePixels;
azul / = numberOfSidePixels;
Si quieres la aplicación para dormir un rato después del ciclo de un cálculo puede cambiar el valor de 'Sleep'.