好的,我知道实际上不可能在石英中禁用颜色校正。我正在寻找的是一种与设备无关的色彩空间设置,它不会改变我在 CGLayer 中绘制的 RGB 值。
我尝试了系统库中的所有 ICC 配置文件,它们都改变了颜色。
这是我得到的最好结果:
const CGFloat whitePoint[] = {0.95047, 1.0, 1.08883};
const CGFloat blackPoint[] = {0, 0, 0};
const CGFloat gamma[] = {1, 1, 1};
const CGFloat matrix[] = {0.449695, 0.244634, 0.0251829, 0.316251, 0.672034, 0.141184, 0.18452, 0.0833318, 0.922602 };
CGColorSpaceRef colorSpace = CGColorSpaceCreateCalibratedRGB(whitePoint, blackPoint, gamma, matrix);
这使用了 Apple RGB 的颜色转换矩阵和 D65 白点。
颜色仍然会发生一些变化,尽管我对此比设备相关设置更满意。
以下是我将 CGLayer 写入 TIFF 的方法:
CIImage *image = [CIImage imageWithCGLayer:cgLayer];
NSBitmapImageRep *bitmapImage = [[NSBitmapImageRep alloc] initWithCIImage:image];
[[bitmapImage TIFFRepresentation] writeToFile:fileName atomically:YES];
任何帮助将不胜感激。