이미지 필터링은 iOS 앱에서 사진을 수정하고 향상시킬 수 있는 강력한 기능 중 하나입니다. Swift를 사용하여 이미지에 다양한 필터를 적용하는 방법을 알아보겠습니다.
필터 적용을 위한 준비
먼저 UIImage
객체에 이미지를 로드해야 합니다. 다음은 이미지를 로드하는 방법입니다.
guard let originalImage = UIImage(named: "originalImage") else {
return
}
이제 우리는 originalImage
를 기준으로 다양한 필터를 적용할 것입니다.
필터 적용하기
iOS에서 이미지 필터를 적용하기 위해 Core Image
프레임워크를 사용할 수 있습니다. Core Image
는 다양한 이미지 처리 작업을 수행할 수 있는 강력한 도구입니다. 다음은 Core Image
를 사용하여 이미지에 필터를 적용하는 방법입니다.
import CoreImage
// 이미지 필터 생성
guard let filter = CIFilter(name: "CIPhotoEffectMono") else {
return
}
// 이미지 설정
let ciImage = CIImage(image: originalImage)
filter.setValue(ciImage, forKey: kCIInputImageKey)
// 필터링된 이미지 얻기
guard let outputCIImage = filter.outputImage,
let outputImage = CIContext().createCGImage(outputCIImage, from: outputCIImage.extent) else {
return
}
// 필터링된 이미지를 UIImage로 변환
let filteredImage = UIImage(cgImage: outputImage)
위의 코드에서 CIPhotoEffectMono
는 이미지에 흑백 필터를 적용하는 필터입니다. CIFilter(name:)
를 사용하여 원하는 필터를 생성하고, setValue(_:forKey:)
를 사용하여 입력 이미지를 설정합니다. 마지막으로 CIContext().createCGImage(_: from:)
를 사용하여 필터링된 이미지를 얻고, 이를 UIImage
로 변환합니다.
다른 필터 적용하기
iOS는 다양한 이미지 필터를 제공합니다. 영상을 블러 처리하는 CIGaussianBlur
, 색상을 조정하는 CIColorControls
, 이미지를 왜곡시키는 CIPerspectiveTransform
등 다양한 필터를 사용할 수 있습니다. 필터의 이름은 CIFilter
클래스의 filterNames(inCategory:)
메서드를 통해 확인할 수 있습니다.
let filterNames = CIFilter.filterNames(inCategory: kCICategoryBuiltIn)
for filterName in filterNames {
print(filterName)
}
위의 코드는 사용 가능한 모든 필터의 이름을 콘솔에 출력합니다.
결론
Swift를 사용하여 iOS 앱에서 이미지 필터를 적용하는 방법을 알아보았습니다. Core Image
프레임워크를 활용하여 간편하고 효과적으로 이미지를 향상시킬 수 있습니다. 필요한 경우 다양한 필터를 적용하여 원하는 결과를 얻을 수 있습니다.
참고: