java - 从负 int 值中获取 RGB 值

标签 java graphics rgb histogram

我必须从 RGB 转换为 HSB,以便对图像执行直方图均衡化。我已将其转换回 RGB,并且得到一个负值,例如 -158435。谁能帮助我了解如何将其转换为颜色,以便我可以将其设置为我的像素?谢谢

最佳答案

只需利用位移位即可。它有效。

int rgb = 0x00F15D49;

int r = (rgb >>> 16) & 0xFF;
int g = (rgb >>>  8) & 0xFF;
int b = rgb & 0xFF;

那就用这个方法 Color.RGBtoHSB(int r, int g, int b, float[] hsbvals);像这样:

float[] hsb = Color.RGBtoHSB(r, g, b, null);

要将其转换回来,只需使用其他方法(已编辑,你是对的):

int rgb = Color.HSBtoRGB(hsb[0], hsb[1], hsb[2]);
System.out.println(Integer.toHexString(rgb));

关于java - 从负 int 值中获取 RGB 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9336637/

相关文章:

r - 如何使用R从图像中获取像素数据

javascript - 在四级渐变的特定百分比处查找 RGB 颜色值

java - @ControllerAdvice 不适用于 Spring 3.2

math - 是否可以创建允许 360 度旋转的四元数扭曲解决方案?

algorithm - 最大线性维度 2d 点集

Java:绘制多个形状的轮廓

colors - 数学上增加RGB颜色的温暖度

java - Java生成1到10的6个不同数字

java - 跨两个文件双向解析属性

java - 如何在将光标放在 HTML 元素上时获取其属性?