Java PrintPixel

TI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 65
0

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

Kopiuj
 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 ?

szweszwe
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 1694
0

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

bogdans
  • Rejestracja: dni
  • Ostatnio: dni
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.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.