texto setfont setcolor poner font como colores color codigo clase cambiar java int rgb negative-number

setfont - setcolor java



Convierte un valor rgb int negativo en bruto a un valor rgb de 3 nĂºmeros (2)

Ok, estoy trabajando en un programa que toma una imagen, aísla un bloque de píxeles en una matriz y luego obtiene cada valor de rgb individual para cada píxel en esa matriz.

Cuando hago esto

//first pic of image //just a test int pix = myImage.getRGB(0,0) System.out.println(pix);

Escupe -16106634

Necesito obtener el valor (R, G, B) de este valor int

¿Hay una fórmula, alg, método?


int pix = myImage.getRGB(0,0); Color c = new Color(pix,true); // true for hasalpha int red = c.getRed(); int green = c.getGreen(); int blue = c.getBlue();


El método BufferedImage.getRGB(int x, int y) siempre devuelve un píxel en el modelo de color TYPE_INT_ARGB . Entonces solo necesitas aislar los bits correctos para cada color, así:

int pix = myImage.getRGB(0, 0); int r = (pix >> 16) & 0xFF; int g = (pix >> 8) & 0xFF; int b = pix & 0xFF;

Si quieres el componente alfa:

int a = (pix >> 24) & 0xFF;

Alternativamente, puede usar el constructor Color(int rgba, boolean hasalpha) para mayor comodidad (a costa del rendimiento).