我正在尝试使用BufferedImage
为setRGB()
(TYPE_INT_RGB)中的单个像素着色,但我不确定如何格式化RGB值。我希望结果为一个整数。是否有一种方法需要三个int
值(红色,绿色,蓝色)并为setRGB()
返回格式正确的整数?
答案 0 :(得分:4)
new Color(red, green, blue).getRGB();
答案 1 :(得分:2)
假设您有r
,g
和b
,请执行以下操作:
int pixel = (r << 16) | (g << 8) | b;
这是因为BufferedImage
中的像素是4字节的整数。 4字节按顺序表示Alpha,Red,Green和Blue。因此,如果您将红色左移两个字节并将绿色左移一个字节,然后按位 - 或r
,g
和b
,您将获得一个与{一起使用的有效像素{1}}。