Java PrintPixel

0

Witam, szukałem w internetach przykładów które ładują obraz i liczą piksele obrazu. Trafiłem na taki przykład

 public void printPixelARGB(int pixel) {
    int alpha = (pixel >> 24) & 0xff;
    int red = (pixel >> 16) & 0xff;
    int green = (pixel >> 8) & 0xff;
    int blue = (pixel) & 0xff;
    System.out.println("argb: " + alpha + ", " + red + ", " + green + ", " + blue);
  }

co w tym przykładzie oznacza alpha ? i po co są wartości 24,16,8 ?

0

Może poczytaj co to jest (A)RGB https://pl.wikipedia.org/wiki/RGBA
Alfa w tym przypadku to 'przezroczystość'.

0

alpha to przezroczystość, ma znaczenie gdy rysujesz dwa obrazki w jednym miejscu.
Kolor piksela jest zapisywany na 32 bitach, pierwsze 8 to alpha, kolejne osiem to red,... przykładowa zawartość piksela:
pixel = 01010111 00110101 11100011 10101010, druga grupa to red
po przesunięciu o 16 bitów w prawo
pixel >> 16 = xxxxxxxx xxxxxxxx 01010111 00110101
0xff = 00000000 00000000 00000000 11111111
zatem
(pixel >> 16) & 0xff = 00000000 00000000 00000000 00110101
ma wartość składowej czerwonej piksela.

1 użytkowników online, w tym zalogowanych: 0, gości: 1