RGB

gao_yan 2010-06-18 01:09:12
java.awt.Color有三种构造函数:
public Color(int r, int g, int b);
public Color(int rgb);
public Color(float r, float g, float b);

想问一下第二种中的rgb怎样和r,g,b分开设置时对应。
...全文
102 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
高亮 2010-06-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 gao_yan 的回复:]
引用 1 楼 natalya13 的回复:

api里说了
Color
public Color(int rgb)创建具有指定组合的 RGB 值的不透明的 sRGB 颜色,此 sRGB 值的 16-23 位表示红色分量,8-15 位表示绿色分量,0-7 位表示蓝色分量。绘制时实际使用的颜色取决于从给出的可用于特定输出设备的颜色空间中找到的最匹配颜色。alpha 值的默认值为 255。

……
[/Quote]
没用是指在这个构造方法中没用,无论是多少都按FF(256不透明)处理,在两个参数(第二个是boolean)中才处理透明度,
gao_yan 2010-06-19
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 natalya13 的回复:]

api里说了
Color
public Color(int rgb)创建具有指定组合的 RGB 值的不透明的 sRGB 颜色,此 sRGB 值的 16-23 位表示红色分量,8-15 位表示绿色分量,0-7 位表示蓝色分量。绘制时实际使用的颜色取决于从给出的可用于特定输出设备的颜色空间中找到的最匹配颜色。alpha 值的默认值为 255。

参数:
rgb - 组合的 RGB 分量
……
[/Quote]
大概明白了,但是那个“没用”是怎么确定的。。。。
tigermfh 2010-06-19
  • 打赏
  • 举报
回复
一个int类型的数据共有32位R占据这32位的16-23位,G占据8-15位,B占据0-7位,24-32位是alpha (透明度)举一个简单的例子
int a = 1246789;
a 转换成2进制后是00000000000100110000011001000101共32位
那么
R=00010011,即11
G=00000110,即6
B=01000101,即69
也就相当于#0B0645
高亮 2010-06-18
  • 打赏
  • 举报
回复
api里说了
Color
public Color(int rgb)创建具有指定组合的 RGB 值的不透明的 sRGB 颜色,此 sRGB 值的 16-23 位表示红色分量,8-15 位表示绿色分量,0-7 位表示蓝色分量。绘制时实际使用的颜色取决于从给出的可用于特定输出设备的颜色空间中找到的最匹配颜色。alpha 值的默认值为 255。

参数:
rgb - 组合的 RGB 分量
也就是说#FF FF FF FF
分别是 没用 R G B

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧