샘성의 iOS 개발 일지

UIImage를 원하는 사이즈로 조절하는 법 본문

iOS/UiKit

UIImage를 원하는 사이즈로 조절하는 법

SamusesApple 2023. 6. 8. 17:41
728x90

 

  Asset에 불러온 이미지를 사용할 때 해당 이미지를 그대로 사용하는 경우 이미지가 터무니없이 작거나 과하게 큰 경우를 흔히 겪을 수 있다.

 

이럴 때 UIImage에 메서드 하나를 확장하여 추가하면 손쉽게 이미지의 크기를 변경할 수 있다.

 

 

소스코드

extension UIImage {
    
    func resizeImage(targetSize: CGSize) -> UIImage {
        // 1. 얼마나 더 크기를 늘려야하는지 측정
        let widthRatio = targetSize.width / size.width
        let heightRatio = targetSize.height / size.height
        
        // 2. 1번에서 얻은 측정값 중 더 작은 값 비교하여 얻기
        let scaleFactor = min(widthRatio, heightRatio)
        
        // 3. 2번 값으로 새로운 이미지 사이즈 생성(찌그러짐 방지하기 위해 같은 배율로 늘리기)
        let scaledImageSize = CGSize(
            width: size.width * scaleFactor,
            height: size.height * scaleFactor
        )

        // 4. 3번에서 생성한 새로운 이미지 사이즈로 만드는 renderer 생성
        let renderer = UIGraphicsImageRenderer(
            size: scaledImageSize
        )
		
        // 5. renderer로 이미지 새로 그리기
        let scaledImage = renderer.image { _ in
            self.draw(in: CGRect(
                origin: .zero,
                size: scaledImageSize
            ))
        }
        
        return scaledImage
    }
}

 

 

사용 예시

728x90