Apple Developer Documentation

Type: Class

A representation of an image to be processed or produced by Core Image filters.

코어 이미지 필터로 처리하거나 생성할 이미지의 표현이다.

CIImage 객체를 CIFilter, CIContext, CICector 및 CIColor 와 같은 다른 Core Image 클래스와 함께 사용하여 이미지를 처리할때 내장된 Core Image 필터를 활용할 수 있다. Quartz 2D 영상, Core Video Image Buffer(CVimage Buffer) , URL 기반 객체 및 NSData 객체를 비롯한 다양한 소스에서 제공된 데이터로 CIImage 객체를 생성할 수 있다.

CIImage 객체에 연결된 이미지 데이터가 있지만 이미지는 아니다. CIImage 객체를 이미지 “레시피” 로 생각 할 수 있다.

CIImage 객체에는 이미지를 생성하는 데 필요한 모든 정보가 포함되어 있지만, Core Image는 이미지를 렌더링 하라는 지시를 받을 때 까지는 실제로 이미를 렌더링 하지 않는다.

lazy evaluation(게으른 평가) 방법은 코어 이미지가 최대한 효율적으로 작동할 수 있다.

CIContext 와 CImage 객체는 변경할 수 없으며,이는 각각 스레드 간에 안전하게 공유 될 수 있음을 의미한다.

반대로 CIFilter 객체의 경우는 그렇지 않다. CIFilter 객체는 스레드 간에 안전하게 공유할 수 없다.

앱이 멀티 스레드인 경우, 각 스레드는 자체 CIFilter 객체를 만들어야 한다. 그렇지 않으면 앱이 예기치 않게 작동할 수 있다.

코어 이미지는 자동 조정 방법(auto-adjustment methods)도 제공한다. 이러한 방법은 일반적인 결함에 대한 이미지를 분석하고, 수정하기 위한 필터 세트를 Return한다. 필터는 피부 톤, 채도, 대비 및 그림자 값을 변경하여 이미지 품질을 개선하고 플래시로 인한 적목 현상 또는 기타 아티팩트를 제거하기 위한 값을 사전 설정된다.