[swift] SDWebImage를 사용하여 이미지 다운로드 중에 이미지에 일부 영역을 선택하고 이를 동그랗게 자르는 방법은 무엇인가요?
import SDWebImage
import UIKit

extension UIImageView {

    func setImage(with url: URL, cropToCircle: Bool) {
        self.sd_setImage(with: url) { [weak self] (image, _, _, _) in
            guard let image = image else { return }
            if cropToCircle {
                self?.image = self?.cropImageToCircle(image: image)
            }
        }
    }

    private func cropImageToCircle(image: UIImage) -> UIImage {
        let renderer = UIGraphicsImageRenderer(size: self.bounds.size)
        let roundedImage = renderer.image { context in
            let bezierPath = UIBezierPath(ovalIn: self.bounds)
            bezierPath.addClip()
            image.draw(in: self.bounds)
        }
        return roundedImage
    }
}

위의 예제 코드는 UIImageView의 확장(extension)으로 작성되었습니다. setImage(with cropToCircle:) 함수를 사용하여 SDWebImage를 통해 이미지를 다운로드하고, cropToCircle 매개 변수를 사용하여 이미지를 원형으로 자릅니다.

이미지가 다운로드 된 후에 cropImageToCircle(image:) 함수를 사용하여 이미지를 동그랗게 자릅니다. 이 함수는 UIGraphicsImageRenderer를 사용하여 원형 이미지를 렌더링합니다.

위의 예제 코드를 사용하여 SDWebImage를 통해 이미지를 다운로드하고 원형으로 자를 수 있습니다.

참고 문서: