gpt4 book ai didi

Java - 十进制颜色到RGB颜色

转载 作者:搜寻专家 更新时间:2023-11-01 01:00:27 26 4
gpt4 key购买 nike

我有一个十进制(非十六进制)颜色代码,我需要使用 Java 将其转换为三种 RGB 颜色。

例如,16777215(纯白色)需要转换为红色:255 绿色:255 蓝色:255。
65280(纯绿色)需要转换为红色:0 绿色 255:蓝色:0

Here是更多示例的转换器。


只是在上面链接的页面上做了一些小计算并使用了计算器,我确定:

  • 红色等于 65536 (256^2)
    • (255x65536 = 16711680,又名纯红色)
  • 绿色等于 256 (256^1)
    • (255x256 = 65280,又名纯绿色)
  • 蓝色等于 1 (256^0)
    • (255x1 = 255,又名纯蓝色)

我可以说它显然与字节有关,但我遗漏了最后一点。我不是最了解位/字节/等的整个概念以及它如何与 Java 交互的人,所以它可能相当简单。

那么,有人知道解决这个问题的最佳方法吗?使用 Java 将单个数字十进制颜色转换为三个独立的 RGB 值的最佳方法是什么?

最佳答案

您说得对:RGB 值被编码为 int 中的字节。 R 是字节 2,G 是字节 1,B 是字节 0,总和为 24 位色深。根据字节顺序,这可能是一种可能的表示。

00000000 00000000 00000000 00000000  <-- 32bit int
^ ^ ^
| | |
+--red here | +--green here
8bit | 8bit
|
+--blue here
8bit

您可以通过一些位移和屏蔽来提取 RGB 值:

int red = (color >> 16) & 0xff;
int green = (color >> 8) & 0xff;
int blue = color & 0xff;

关于Java - 十进制颜色到RGB颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21222935/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com