Could anyone explain for me how java stores color in TYPE_INT_RGB and TYPE_INT_ARGB ?
Do these lines of code work properly for calculating red, green and blue ?
int red= (RGB>>16)&255;
int green= (RGB>>8)&255;
int blue= (RGB)&255;
And what about TYPE_INT_ARGB ? How can I get red, green and blue from TYPE_INT_ARGB?
The
TYPE_INT_ARGB
represents Color as anint
(4 bytes) with alpha channel in bits 24-31, red channels in 16-23, green in 8-15 and blue in 0-7.The
TYPE_INT_RGB
represents Color as anint
(4 bytes) int the same way ofTYPE_INT_ARGB
, but the alpha channel is ignored (or the bits 24-31 are 0).Look the javadoc of java.awt.Color and java.awt.image.BufferedImage.
You are correct for TYPE_INT_RGB. The equivalent TYPE_INT_ARGB code would be:
Spelling out the color elements for the bytes from most significant to least significant, you get ARGB, hence the name.
These are constant values that indicate the color model of an instance of
BufferedImage
. These values do not themselves store the color.