Хорошо, я знаю, что невозможно фактически отключить коррекцию цвета в кварце. То, что я ищу, является независимой от устройства настройкой цветового пространства, которая не изменяет значения RGB, которые я рисую в CGLayer.
Я перепробовал все профили 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];
Любая помощь будет принята с благодарностью.