谁能给我解释一下java是如何在TYPE_INT_RGB和TYPE_INT_ARGB中存储颜色的?
这些代码行在计算红色、绿色和蓝色时是否正常工作?
int red= (RGB>>16)&255;
int green= (RGB>>8)&255;
int blue= (RGB)&255;那TYPE_INT_ARGB呢?如何从TYPE_INT_ARGB获取红色、绿色和蓝色?
发布于 2011-05-14 18:40:41
TYPE_INT_ARGB将颜色表示为int (4字节),其中alpha通道位于24-31位,红色通道位于16-23位,绿色通道位于8-15位,蓝色通道位于0-7位。
TYPE_INT_RGB以与TYPE_INT_ARGB相同的方式将颜色表示为int (4字节),但alpha通道被忽略(或位24-31为0)。
看看java.awt.Color和java.awt.image.BufferedImage的javadoc。
发布于 2011-12-25 22:25:06
您对TYPE_INT_RGB的选择是正确的。等效的TYPE_INT_ARGB代码为:
int rgb = rgbColor.getRGB(); //always returns TYPE_INT_ARGB
int alpha = (rgb >> 24) & 0xFF;
int red = (rgb >> 16) & 0xFF;
int green = (rgb >> 8) & 0xFF;
int blue = (rgb ) & 0xFF;按照从最高有效位到最低有效位的顺序拼写字节的颜色元素,得到ARGB,因此得名。
发布于 2011-05-14 18:43:49
这些是常量值,用于指示BufferedImage实例的颜色模型。这些值本身并不存储颜色。
https://stackoverflow.com/questions/6001211
复制相似问题