如何在obj-c中获得扩展的sRGB色彩空间?

时间:2018-04-24 11:01:09

标签: ios objective-c

我需要改变颜色值。 需要在RGB之间进行转换 - > HSV - > RGB等。

不幸的是,-getHue()方法无法正常使用sRGB。

[col getHue:&hue saturation:&sat brightness:&val alpha:&alpha];

    NSLog(@"HUE == %f", hue);
    NSLog(@"SAT == %f", sat);
    NSLog(@"VAL == %f", val);

我的应用需要支持iOS9 +。我不知道如何使用旧的obj-c API将colorspace更改为extendedSRGB。

  

在iOS 10之前的iOS版本上,以及在版本的iOS上链接的应用程序   在iOS 10之前的iOS中,颜色是以两种颜色之一创建和返回的   色彩空间:

Device-Dependent Gray

Device-Dependent RGB
     

这些设备颜色空间与显示屏紧密对应   sRGB色彩空间的特征。颜色组件值   这些颜色空间由0.0到1.0之间的值表示。什么时候   创建一个颜色,输入参数被钳制以适应   这个色彩空间。

     

如果您的应用是在iOS 10上或之后进行链接以及在iOS 10上运行时   或者以后,在扩展颜色空间中创建颜色:

kCGColorSpaceExtendedGray

kCGColorSpaceExtendedSRGB

这就是我的整个项目因这个未解决的API问题而冻结。 :o有人可以指导我如何将色彩空间更改为extendedRGB(iOS9 API)??

1 个答案:

答案 0 :(得分:1)

  

我的应用程序要求支持iOS9 +。我不知道如何使用旧的obj-c API将颜色空间更改为extendedSRGB。

iOS 10之前不存在扩展的色彩空间,因此无法在iOS 9或更早版本上使用它们。请参阅此处的Apple文档,其中列出了支持kCGColorSpaceExtendedSRGB的版本:

https://developer.apple.com/documentation/coregraphics/kcgcolorspaceextendedsrgb

  

SDK

     
      
  • iOS 10.0 +
  •   
  • macOS 10.12 +
  •   
  • tvOS 10.0 +
  •   
  • watchOS 3.0 +
  •