gpt4 book ai didi

cocoa - 禁用quartz 2d 中的颜色校正

转载 作者:行者123 更新时间:2023-12-03 17:18:20 26 4
gpt4 key购买 nike

好吧,我知道实际上不可能禁用 quartz 中的颜色校正。我正在寻找的是一个独立于设备的色彩空间设置,它不会改变我在 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];

任何帮助将不胜感激。

最佳答案

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

CGColorSpaceCreateDeviceRGB 的 doco 似乎就是这样说的:

CGColorSpaceCreateDeviceRGB

关于cocoa - 禁用quartz 2d 中的颜色校正,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/501199/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com