220715 TIL [원하는 범위만큼 이미지 자르기(cropping)]

Doogie·2022년 7월 15일
0

개인프로젝트 중 캐릭터의 사진을 받아와 프로필 사진 형태로 표시하는 부분이 있었는데 홈페이지에서는 캐릭터 전체 사진만 제공해 이미지를 자르는 기능이 필요했다

그러던 중 위와같은 메서드를 발견하였고 홈페이지에서 대충 읽어보니 자를 범위를 정하고 이미지를 cgImage로 변형해 위메서드를 통해 잘라낸 후 다시 UIImage로 반환해주는 방식이었다

extension UIImage {
    func cropImage() -> UIImage? {
        let cropZone = CGRect(x: 220, y: 80, width: 180, height: 180) // 내가 자를 범위
        
        guard let cutImageRef = self.cgImage?.cropping(to: cropZone) else { //자른 이미지(인데 이제 cgImage)
            return nil
        }
        
        return UIImage(cgImage: cutImageRef) //잘린 cgImage를 UIImage로 변환하여 반환
    }
}

UIImage extension을 통해 바로 사용할 수 있는 메서드를 만들어 주었다

결과

원래 이미지자르고 적용한 모습

참고자료
https://developer.apple.com/documentation/coregraphics/cgimage/1454683-cropping

profile
끊임없이 문을 여는 개발자

0개의 댓글