09 septiembre 2006

Java: Convertir valores RGB

Si queremos extraer de un color de 3 bytes (24 bits) los 3 canales Rojo (R), Verde (G) y Azul (B) podemos utilizar las instrucciones siguientes:

int blue= color24bits & 0x0000FF;
int green=(color24bits & 0x00FF00) >> 8;
int red= (color24bits & 0xFF0000) >> 16;

ó

int blue= color24bits & 255;
int green=(color24bits >> 8) & 255;
int red= (color24bits >> 16) & 255;

El proceso inverso, calcular el número de 3 bytes que se corresponde con los 3 colores sería:

int color24bits=(red << 16) | (green << 8) | blue;

Información relacionada: http://www.sromero.org/articulos/gfx/graf13.html