我必须从 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/