我正在升级已经使用ColorSync Manager API获取附加显示的颜色配置文件的OS X应用。当API中的所有内容都被标记为已弃用时,写作大约在OS X 10.6上。很长一段时间,它仍然可以#include <ColorSyncDeprecated.h>
,但在最新的SDK中不再可能。
该应用已经使用Little CMS实际操作色彩空间,所以我不需要太多。如上所述,它使用ColorSync的唯一方法是使用CMGetSystemProfile
和NCMGetProfileLocation
来获取主要显示的配置文件。
有几个问题与此有些相关,但它们已经存在了几年,并且没有解决问题:
现在在任何OS X Framework中是否有 任何 替代方案,或Apple是否认定没有人想知道其显示的配置文件?< / p>
答案 0 :(得分:2)
The new ColorSync API is defined in
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/ColorSync.framework/Headers
in
ColorSync.h
ColorSyncBase.h
ColorSyncCMM.h
ColorSyncDeprecated.h
ColorSyncDevice.h
ColorSyncProfile.h
ColorSyncTransform.h
and wasn't documented anywhere by Apple the last time I looked.
他们似乎忘了宣布
CFUUIDRef CGDisplayCreateUUIDFromDisplayID (uint32_t displayID);
。
我没有找到任何方法来确定使用当前OS X API的配置文件的位置,因此不得不对它们进行硬编码:
#define COLORSYNC_DIR_NETWORK "/Network/Library/ColorSync/Profiles/"
#define COLORSYNC_DIR_SYSTEM "/System/Library/ColorSync/Profiles/"
#define COLORSYNC_DIR_LOCAL "/Library/ColorSync/Profiles/"
#define COLORSYNC_DIR_USER "/Library/ColorSync/Profiles/"
答案 1 :(得分:1)
您可以使用CoreGraphice API
colorSpace = ::CGDisplayCopyColorSpace(::CGMainDisplayID());
然后,api喜欢:
CGColorSpaceCopyICCData
你可以做一些颜色同步的事情。我认为这很可能是你想用旧的ColorSync API做的。
答案 2 :(得分:0)
这就是我为获取已知直接显示ID的配置文件路径所做的工作。
答案 3 :(得分:0)
Apple当前的文档页面未将ColorSync Manager标记为已弃用。一些数据类型和方法是,但大多数没有这样的指示。也许它已被预先准备好了?