根据 the document , android.graphics.Color 有一个名为 RGBToHSV
的方法可以将 RGB 值转换为 HSV,这是文档告诉我的:
public static void RGBToHSV (int red, int green, int blue, float[] hsv)
Convert RGB components to HSV.
hsv[0]
is Hue [0 .. 360)hsv[1]
is Saturation [0...1]hsv[2]
is Value [0...1]Parameters
- red: red component value [0..255]
- green: green component value [0..255]
- blue: blue component value [0..255]
- hsv: 3 element array which holds the resulting HSV components.
但是当我编写一个程序来测试它时,它无论如何都不起作用。
float[] hsv = new float[3];
RGBToHSV(255, 255, 0, hsv);
Log.i("HSV_H", "" + hsv[0]); // always output 0.0
这是一个错误吗?
最佳答案
您的期望值是多少?对我来说,它似乎有效。
我使用的代码:
float[] hsv = new float[3];
android.graphics.Color.RGBToHSV(255, 255, 0, hsv);
Log.i("HSV_H", "Hue=" + hsv[0]);
Log.i("HSV_H", "Saturation=" + hsv[1]);
Log.i("HSV_H", "Value=" + hsv[2]);
结果:
Hue=60.0
Saturation=1.0
Value=1.0
这是在 1.6 模拟器上使用针对 Android SDK 1.6(API 级别 4)的项目运行的。
关于Android 的 RGBToHSV 方法不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3943204/