使用從CGColorSpaceCreateDeviceRGB()返回的色彩空間時,將對任何CGContextDrawImage()調用應用色彩空間轉換,導致比沒有此轉換時的blitting效果差5-6倍。在blitting時避免進行色彩空間轉換,Mac OS X 10.11 SDK
爲了避免這種色彩空間轉換,我們一直在使用該系統顯示器配置文件創建的色彩空間:
CMProfileRef smp = 0;
if (CMGetSystemProfile(&smp) == noErr)
{
colorSpace = CGColorSpaceCreateWithPlatformColorSpace(smp);
CMCloseProfile(smp);
}
else
colorSpace = CGColorSpaceCreateDeviceRGB();
上述工作良好,完全禁止使用的色彩空間轉換爲CGContextDrawImage()。
CMGetSystemProfile已經標誌着自10.6過時,但由於我們還沒有發現任何其他的可能性,以避免這些色彩空間轉換,我們一直在我們的代碼爲高性能的blitting。
在10.11 SDK中,ColorSpace API CMGetSystemProfile()被刪除。有沒有合適的替換方法,或者有關如何禁用顏色空間轉換的替代方法?
只是我2美分。使用漏斗發現下面的電話是什麼,並打開Apple TSI門票以供選擇。這是一個非常專業化的問題,但我期待着回答(如果你有問題的話)。 –