1

好的,我知道实际上不可能在石英中禁用颜色校正。我正在寻找的是一种与设备无关的色彩空间设置,它不会改变我在 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];

任何帮助将不胜感激。

4

1 回答 1

1

为什么不将您的颜色声明为与您的目的地相同的颜色空间的一部分CGLayer

doco forCGColorSpaceCreateDeviceRGB似乎只是在说:

CGColorSpaceCreateDeviceRGB

于 2009-02-06T10:21:24.067 回答