如何确保滴管工具返回一致的值,尽管不同的显示配置文件
How do I ensure an eyedropper tool returns a consistent value, despite differing display profiles?
我正处于一个不令人羡慕的位置,为一个需要在Windows和OSX上运行的应用程序处理一个庞大的已建立的代码库。我目前正在编写的一个部分包含一些滴管/颜色选择器工具的遗留代码。不幸的是,我没有太多的Mac开发经验,所以我希望有人能给我的问题一些启发。
滴管颜色在某些情况下略有错误,我跟踪问题到预期的CGColorSpaceRef之间的差异,这是通过调用CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB)和主显示配置文件设置的实际颜色空间。将操作系统显示配置文件设置为通用RGB可消除差异,但我希望滴管无论显示配置文件是什么都能获得一致的颜色。
检索主监视器显示配置文件并使用它而不是通用的RGB配置文件,以确保滴管工具获得一致的值吗?我找到了CGColorSpaceCreateWithPlatformColorSpace(…)函数,但根据文档,它自OSX 10.6以来已被弃用。在Quartz中,当前的处理方法是什么?
我在这方面感到有点受限制,因为我既没有权限也没有专业知识来进行重大更改,例如添加对其他框架的依赖。
NSColor有如下功能:
-(void)getRed:(CGFloat *)red green:(CGFloat *)green blue:(CGFloat *)blue alpha:(CGFloat *)alpha
返回由设备相关颜色空间转换而来的RGB组件。
示例取自Radiant Color Picker
CGFloat red, green, blue, a;
NSColor *colorAsRGB = [_color colorUsingColorSpaceName:NSDeviceRGBColorSpace];
[colorAsRGB getRed:&red green:&green blue:&blue alpha:&a];
相关链接:
NSColor
使用Colorspaces
相关文章:
- 无法找到/读取配置文件.conf-FileIOException
- 在WSL:configure_file上对config_file的每次调用都失败:配置文件时出现问题
- 一种在C++中读取TXT配置文件的简单方法
- FFMPEG配置文件级别id大小无效
- 配置文件解析器仅返回以前的值
- 我的程序有一个保存配置文件的GUI,如何双击此配置文件以直接加载带有配置数据的GUI?
- Boost program_options将多个配置文件解析结果存储到一个parsed_options中
- Windows 后台服务(系统配置文件)无法使用 C++ 访问 win 10 上的用户 appData 文件夹?
- 我应该如何获取配置文件的绝对路径与 Windows .exe一起发布?
- JPG-如何从ICC配置文件部分APP2读取/提取数据
- 检测到 Conan 配置文件设置与 CMake 之间的编译器版本不匹配
- boost::p rogram_options 配置文件格式
- 如何在Boost::program_options配置文件中为非字符串的自定义选项值类型处理空格
- 如何在 Boost Program_Options 中使用命令行和分层配置文件的选项
- 如何将不可编译的配置文件添加到QT工程中?
- OpenGL不能在核心配置文件中使用glVertexAttrib进行绘制
- 错误 VSP1011:无法获取调试信息.与 /配置文件链接器开关链接
- 解析程序配置文件
- 如何确保滴管工具返回一致的值,尽管不同的显示配置文件
- Boost日志在使用配置文件时不显示严重性或按严重性过滤