ios - 如何在 obj-c 中获得扩展的 sRGB 颜色空间?
问题描述
我需要改变颜色值。需要在 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 将色彩空间更改为 extendedSRGB。
在 iOS 10 之前的 iOS 版本上,以及在 iOS 10 之前的 iOS 版本上链接的应用程序,颜色会在以下两种颜色空间之一中创建和返回:
Device-Dependent Gray Device-Dependent RGB
这些设备色彩空间与 sRGB 色彩空间的显示特性紧密对应。这些颜色空间中的颜色分量值由 0.0 到 1.0 之间的值表示。创建颜色时,输入参数将被限制在此颜色空间内。
如果您的应用在 iOS 10 或之后链接,并且在 iOS 10 或更高版本上运行时,颜色将在扩展颜色空间中创建:
kCGColorSpaceExtendedGray kCGColorSpaceExtendedSRGB
就是这样,我的整个项目都被这个未解决的 API 问题冻结了。:o 有人可以指导我如何将色彩空间更改为扩展 RGB (iOS9 API) 吗?
解决方案
我的应用程序需要支持 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+
推荐阅读
- python - 将字节转换为列表
- python - 在 jupyter、Python 3.x 中使用 numpy.linspace() 时出错
- python - 程序完成后如何打开excel文件
- arrays - Ruby 将活动记录或对象数组转换为哈希数组
- kotlin - 如何从 Exposed 中的 QueryAlias 映射 count() 值
- python - 当用户在 Tkinter 条目小部件中输入表情符号时,在条目上调用 .get 时会引发异常
- php - 在产品元数据中去除 HTML
- java - 使用换行符时 Java GZIP 文件损坏
- react-native - 在 React Navigation 5 中访问导航道具
- r - 编织文件时 xy.coords(x, y, xlabel, ylabel, log) 出错