【问题标题】:Covert color to rgb value in java在java中将颜色转换为rgb值
【发布时间】:2017-09-11 16:20:20
【问题描述】:

我知道将颜色转换为其 RGB 的公式。 例如。

Color c=new Color(100,100,100);
Int rgb1= c.getRed()*65536+c.getGreen()*256+c.getBlue();

这就是我们获得单个 RGB 值的方式。

使用java编程

int rgb2=c.getRGB();

当我比较这两个 rgb1 和 rgb2 时,它们显示出不同的值。 我的第一个方程式有什么问题。请解决我的问题。谢谢

【问题讨论】:

  • getRead() 返回什么?
  • 对不起它的 getRed()。我已经更正了。
  • 附带说明,左移a << b 在数学上等价于乘法a * 2^b。由于您使用的是打包字节而不是实际数字,因此将这些乘法作为左移进行操作会更惯用。 (red << 16) | (green << 8) | blue

标签: java


【解决方案1】:

那是因为第一种方法忽略了颜色的 Alpha 值。
可以看到c.getAlpha()返回255,你没有使用这个值,但是c.getRGB();确实使用了它,所以它返回FF646464(以十六进制为底),这与646464不同。

【讨论】:

  • 没想到。你能告诉我如何添加 alpha 值吗?
  • 这是一个类似于 OP 中的示例,它显示了这种情况。 ideone.com/dWwtk8
  • @Radiodef 感谢您的回答。但我知道那个。我只需要我的第一个方程的正确版本
  • 如果您的意思是使用乘法的表达式,您可以根据我的其他评论找到。 (c.getAlpha() * 16777216) + ...ideone.com/CdzusM
猜你喜欢
  • 2017-06-24
  • 2013-12-10
  • 1970-01-01
  • 2013-12-05
  • 2013-08-04
  • 2019-02-08
  • 2013-06-15
  • 2021-11-27
  • 2011-05-05
相关资源
最近更新 更多