CIImage

Horus-iOS·2022년 5월 31일
0

https://developer.apple.com/documentation/coreimage/ciimage

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

코어 이미지 필터에 의해 처리되거나 생성되는 이미지의 표현입니다.

Declaration

class CIImage : NSObject

Overview

이미지 처리 시 내장된 코어 이미지 필터를 사용하는 경우 다른 코어 이미지 클래스(CIFilter, CIContext, CIVector, CIColor와 같은)의 사용과 동시에 CIImage 객체를 사용할 수 있습니다. 쿼츠 2D 이미지, 코어 비디오 이미지 버퍼(CVImageBuffer), URL 기반 객체, NSData 객체를 포함해 다양한 소스로부터 제공받은 데이터를 통해 CIImage 객체를 생성할 수 있습니다.

CIImage 객체는 이미지와 관련이 있는 이미지 데이터를 가지고 있을지라도 이미지는 아닙니다. CIIamge 객체는 이미지 "레시피"처럼 생각할 수 있습니다. CIImage 객체는 이미지를 제공하기 위한 모든 필수적인 정보를 가지고 있지만, 코어 이미지는 이미지를 렌더하라는 명령이 없다면 실제로 이미지를 렌더하지는 않습니다. 이와 같은 lazy는 코어 이미지가 가능한 효과적으로 작동할 수 있도록 해줍니다.

CIContextCIImage 객체는 변경이 불가능(immutable)하므로 스레드 사이에서 안전하게 공유될 수 있습니다. 다중 스레드는 CIImage 객체를 렌더하기 위해 같은 GPU 혹은 CPU CIContext 객체를 사용할 수 있습니다. 그러나 CIFilter는 변경 가능하므로 앞의 경우와 다르며, 스레드 사이에서 안전하게 공유될 수 없습니다. 앱이 멀티스레드로 작동한다면 각 스레드마다 고유한 CIFilter 객체를 생성해야 합니다. 그렇지 않으면 앱은 기대한 것처럼 작동하지 않을 것입니다.

코어 이미지는 자동 조정 메소드를 제공합니다. 이와 같은 메소드들은 이미지에 대해 흔히 발생하는 결함들을 분석하고, 결함을 수정하기 위한 필터의 집합을 반환합니다. 필터는 이미지 품질 향상을 위해 사전설정된 값이며, 피부톤, 채도, 대비, 그림자, 플래시에 의해 생기는 빨간눈 혹은 기타 결함의 제거를 통해 이미지 품질을 향상시킵니다. (Getting Autoadjustment Filters를 보시기 바랍니다.)

Getting Autoadjustment Filters
https://developer.apple.com/documentation/coreimage/ciimage#1652741

iOS 및 macOS에서 CIImage 객체를 생성하기 위해 사용할 수 있는 모든 메소드에 대한 사항은 Core Image Programming Guide를 보시기 바랍니다.

Core Image Programming Guide
https://developer.apple.com/library/archive/documentation/GraphicsImaging/Conceptual/CoreImaging/ci_intro/ci_intro.html#//apple_ref/doc/uid/TP30001185

0개의 댓글