gpt4 book ai didi

xcode4 - 从 RGB 到 HSV 的 UIColor 转换,将亮度设置为 UIColor

转载 作者:行者123 更新时间:2023-12-02 07:43:03 27 4
gpt4 key购买 nike

在我的应用程序中,我尝试使用不同的颜色进行绘制。我有自己的颜色选择器,但我想将颜色亮度添加到此选择器 slider 。对于 understudying :我选择一种颜色显示在 View 中的某个地方作为背景颜色,我想为这种颜色添加 slider ,它将从 1 滑动到 0 并改变颜色的亮度并在窗口中显示颜色。因此,我想问一下是否有任何可能的方法如何转换。

在我的项目中我使用这个:

CGContextSetRGBStrokeColor(current, R, G, B, A);

所以每当我滑动 slider 时,我都需要更改颜色的亮度,因此我需要将我的 UIColor - 表示为 RGB 转换为 HSV,然后再转换回 RGB 以便再次使用它.

是否存在任何 RGB 到 HSV 的转换算法,或者在 iOS 5 或 Xcode4 中是否有任何算法?

最佳答案

+(struct hsv_color)HSVfromRGB:(struct rgb_color)rgb
{
struct hsv_color hsv;

CGFloat rgb_min, rgb_max;
rgb_min = MIN3(rgb.r, rgb.g, rgb.b);
rgb_max = MAX3(rgb.r, rgb.g, rgb.b);

if (rgb_max == rgb_min) {
hsv.hue = 0;
} else if (rgb_max == rgb.r) {
hsv.hue = 60.0f * ((rgb.g - rgb.b) / (rgb_max - rgb_min));
hsv.hue = fmodf(hsv.hue, 360.0f);
} else if (rgb_max == rgb.g) {
hsv.hue = 60.0f * ((rgb.b - rgb.r) / (rgb_max - rgb_min)) + 120.0f;
} else if (rgb_max == rgb.b) {
hsv.hue = 60.0f * ((rgb.r - rgb.g) / (rgb_max - rgb_min)) + 240.0f;
}
hsv.val = rgb_max;
if (rgb_max == 0) {
hsv.sat = 0;
} else {
hsv.sat = 1.0 - (rgb_min / rgb_max);
}

return hsv;
}

关于xcode4 - 从 RGB 到 HSV 的 UIColor 转换,将亮度设置为 UIColor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9142427/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com