[swift] 이미지를 실루엣으로 만들기

Swift에서는 이미지를 실루엣으로 만들기 위해 Core Graphics를 사용할 수 있습니다. Core Graphics는 이미지를 다루고 변경하는데 사용되는 강력한 프레임워크입니다. 이제 실루엣 이미지를 만드는 방법에 대해 알아보겠습니다.

1. 이미지 로드하기

먼저, 실루엣으로 만들 이미지를 프로젝트에 추가해야합니다. 프로젝트 내의 이미지 파일을 로드하는 방법은 다음과 같습니다:

if let image = UIImage(named: "silhouette.png") {
    // 이미지 로드 성공
} else {
    // 이미지 로드 실패
}

2. 이미지 그리기

Core Graphics를 사용하여 이미지를 그릴 때, UIGraphicsImageRenderer 클래스를 사용하는 것이 효율적입니다. 다음 코드는 빈 이미지 컨텍스트를 생성하고, 이미지를 그리는 방법을 보여줍니다:

let renderer = UIGraphicsImageRenderer(size: image.size)
let silhouetteImage = renderer.image { context in
    image.draw(at: CGPoint.zero)
}

3. 실루엣 필터 적용하기

우리는 그린 이미지에 실루엣 필터를 적용할 것입니다. 이를 위해 Core Image 프레임워크의 기능을 사용할 수 있습니다. 다음 코드에서는 CIFilter를 사용하여 실루엣 필터를 적용하는 방법을 보여줍니다:

let imageCI = CIImage(image: silhouetteImage)
let filter = CIFilter(name: "CIMaskToAlpha")
filter?.setValue(imageCI, forKey: kCIInputImageKey)
let outputCI = filter?.outputImage
let context = CIContext(options: nil)
let outputCG = context.createCGImage(outputCI!, from: outputCI!.extent)
let silhouetteImageWithFilter = UIImage(cgImage: outputCG!)

4. 결과 확인하기

이제 silhouetteImageWithFilter 변수에는 실루엣으로 변환된 이미지가 저장되어 있습니다. 예를 들어, 이 이미지를 UIImageView에 표시할 수 있습니다:

let imageView = UIImageView(image: silhouetteImageWithFilter)
// imageView를 원하는 위치에 추가 또는 표시

이제 실루엣으로 변환된 이미지를 사용할 수 있습니다. 이 방법을 사용하면 다른 형태의 이미지를 실루엣으로 만들 수 있습니다.

참고자료