2009-02-01 64 views
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); 

本採用了蘋果RGB的色彩轉換矩陣和D65白點。

顏色仍然有點偏移,雖然我比這更依賴於設備依賴設置,但我對此感到高興。

以下是我寫的CGLayer爲TIFF:

CIImage *image = [CIImage imageWithCGLayer:cgLayer]; 
NSBitmapImageRep *bitmapImage = [[NSBitmapImageRep alloc] initWithCIImage:image]; 
[[bitmapImage TIFFRepresentation] writeToFile:fileName atomically:YES]; 

任何幫助將不勝感激。

回答

1

爲什麼不聲明你的顏色是你的目的地的相同顏色空間的一部分CGLayer

CGColorSpaceCreateDeviceRGB的DOCO似乎是說就是:

CGColorSpaceCreateDeviceRGB