作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我到处寻找,但找不到合适的解决方案。
我有一个 RGB 颜色,我想将其转换为以下格式:0xffffffff
许多答案将其转换为以下格式:#ffffff
有人知道如何将其转换为这种格式(0xffffffff
)吗?
编辑:解决了!我实际上需要一个 int,但我不小心说了 string,woopsie。看来现在可以工作了,谢谢!
片段:
double frequency = .3;
double r = 255;
double g = 255;
double b = 255;
for (int i = 0; i < 32; ++i)
{
// I am trying to make a rainbow, hence this for loop and the Math.sin
r = Math.sin(frequency*i + 0) * 127 + 128;
g = Math.sin(frequency*i + 2) * 127 + 128;
b = Math.sin(frequency*i + 4) * 127 + 128;
int red = (int)r;
int green = (int)g;
int blue = (int)b;
// converting, outputs a string
System.out.println(result);
}
最佳答案
如果您希望数字不是字符串
,而是int
:
0xRRGGBB
RR
、GG
、BB
各自表示 0 - 255 之间的值(RGB 值)。十六进制数字的每个数字的值范围为 0 - 16,这意味着您需要存储最多 16 ^ 6 = 16.777.216
-> dataype int
应该没问题。
然后只需使您的 int
:
int hexval = red * 65536 + green * 256 + blue;
<小时/>您可以选择输出它:
System.out.printf("0x%06X\n", hexval);
关于java - 如何在Java中将RGB颜色转换为十六进制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60684291/
我是一名优秀的程序员,十分优秀!