Java PrintPixel

Java PrintPixel
TI
  • Rejestracja:ponad 13 lat
  • Ostatnio:ponad 5 lat
  • 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:ponad 11 lat
  • Ostatnio:15 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ść'.

edytowany 1x, ostatnio: szweszwe
bogdans
Moderator
  • Rejestracja:prawie 17 lat
  • Ostatnio:prawie 5 lat
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.


To smutne, że głupcy są tak pewni siebie, a ludzie mądrzy - tak pełni wątpliwości. Bertrand Russell
edytowany 2x, ostatnio: bogdans

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.