Ho il pixel intero che ho ottenuto da get.rgb (x, y), ma non ho alcun indizio su come convertirlo in RGBA. Ad esempio, -16726016 dovrebbe essere Colore (0,200,0,255). Qualche consiglio?
Se indovino giusto, ciò che si ottiene è un numero intero senza segno della forma 0xAARRGGBB
, quindi
int r = (argb)&0xFF; int g = (argb>>8)&0xFF; int b = (argb>>16)&0xFF; int a = (argb>>24)&0xFF;
estrarrebbe i componenti del colore. Tuttavia, una rapida occhiata ai documenti dice che puoi semplicemente farlo
Color c = new Color(argb);
o
Color c = new Color(argb, true);
se vuoi il componente alfa nel colore pure.
AGGIORNARE
I componenti rosso e blu sono invertiti nella risposta originale, quindi la risposta corretta sarà:
int r = (argb>>16)&0xFF; int g = (argb>>8)&0xFF; int b = (argb>>0)&0xFF;
Color c = new Color(-16726016, true); System.out.println(c.getRed()); System.out.println(c.getGreen()); System.out.println(c.getBlue()); System.out.println(c.getAlpha());
stampa fuori:
0 200 0 255
È questo che vuoi dire?