J'ai le pixel entier que j'ai obtenu de getRGB(x,y)
, mais je n'ai aucune idée sur la façon de le convertir au format RGBA. Par exemple, -16726016
Doit être Color(0,200,0,255)
. Des conseils?
Si je devine bien, ce que vous obtenez en retour est un entier non signé de la forme 0xAARRGGBB
, alors
int b = (argb)&0xFF;
int g = (argb>>8)&0xFF;
int r = (argb>>16)&0xFF;
int a = (argb>>24)&0xFF;
extrairait les composants de couleur. Cependant, un rapide coup d'œil à la docs dit que vous pouvez simplement faire
Color c = new Color(argb);
ou
Color c = new Color(argb, true);
si vous souhaitez également le composant alpha dans la couleur.
[~ # ~] mise à jour [~ # ~]
Les composants rouge et bleu sont inversés dans la réponse d'origine, donc la bonne réponse sera:
int r = (argb>>16)&0xFF;
int g = (argb>>8)&0xFF;
int b = (argb>>0)&0xFF;
mis à jour également dans le premier morceau de code
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());
imprime:
0
200
0
255
C'est ça que tu veux dire?