【问题标题】:How do you modify the HSV values (hsv[1], hsv[1], hsv[2])?如何修改 HSV 值(hsv[1]、hsv[1]、hsv[2])?
【发布时间】:2015-05-10 03:42:32
【问题描述】:

我有一个扩展 View 的类。该类是在包含搜索栏的片段中创建的。 使用下面的代码,我通过 seekbar.setSatVal(value) 将 seekbar 值传递给视图类。

public void setSatValue(float value){
        mValue = value/100; //seekbar goes from 0 to 100
        setVal(mValue);
    }

然后我从我传递的位图中获取 RGB 值(代码中未显示)并将它们转换为 HSV 值。

int mPixel = mBitmap.getPixel(1,1);

            hsv = new float[3];

            r = Color.red(mPixel);
            g = Color.blue(mPixel);
            b = Color.green(mPixel);

            Color.RGBToHSV(r, g, b, hsv);

我知道我必须使用Color.HSVToColor 将 HSV 值转换回颜色。

如何修改 HSV 值?色调:hsv[0],饱和度:hsv1,值:hsv[2] 我已通读color documentation 并知道每个值的值。

【问题讨论】:

  • 可能和其他数组一样? hsv[0] = 1;

标签: android view hsv


【解决方案1】:

正如建议的那样,这应该可以工作,因为我已经在 Android 中实现了相同的功能 -

float[] hsv = new float[3];
Color.RGBToHSV(red,green,blue,hsv);
hsv[0]=hue; //hue 
hsv[1]=sat; //saturation 
hsv[2]=val; //brightness

hue satval 可以是任何用户定义或计算的值。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-18
    • 2017-04-26
    相关资源
    最近更新 更多