2014-05-23 8 views
0

내 이미지 처리 코드의 속도를 높이려고합니다. 내가하려고했던 한 가지 요인 때문에처럼 CIImage직접을 만드는 것이었다 :UIImage 대신 파일에서 직접로드 된 CIImage를 렌더링 할 때 예기치 않은 화면 오버레이 혼합

CIImage* ciImageStrong; 
if (_cachedData) 
{ 
    _cachedData = [NSData dataWithContentsOfFile:pathForResource]; 
    ciImageStrong = [CIImage imageWithData:_cachedData]; 
} 
else 
{ 
    ciImageStrong = [CIImage imageWithContentsOfURL:[NSURL fileURLWithPath:pathForResource]]; 
} 

내 문제는 표준 @"CISourceOverCompositing" 필터를 사용하는 경우, 모든 이미지 부가 적 대신 정상 알파의 인출되어있다 블렌드. 나는 다음과 같은 코드를 사용하면

은 모두 잘 작동합니다 :

UIImage* uiImageStrong; 
if (_cachedData) 
{ 
    _cachedData = [NSData dataWithContentsOfFile:pathForResource]; 
    uiImageStrong = [UIImage imageWithData:_cachedData]; 
} 
else 
{ 
    uiImageStrong = [UIImage imageWithContentsOfFile:pathForResource]; 
} 
CIImage* ciImageStrong = [CIImage imageWithCGImage:uiImageStrong.CGImage]; 

나는 아무 소용에 kCGColorSpaceModelRGB 색 공간으로로드하려고했습니다. 질문 :

  • 아무도 이 벌어지고 알고 있나요?
  • CIImage을 직접로드하여 얻을 수 있는지 알고 있을지도 모릅니다.

답변

0

결국 나는 첫 번째 솔루션이 이미지 로딩 속도를 높이 지 못했음을 알고 CGImage에 대해 충분히 배웠습니다. [UIImage imageWithContentsOfFile:pathForResource]은 매우 빠르며 UIImage.CGImage에는 인식 할 수있는 성능 비용이 없습니다.