본문 바로가기
iOS Swift/개발 이모저모

[사진]Mantis Library 활용하여 이미지 크롭해보기

by 호두빵 2022. 12. 21.

extension MyPageViewController : CropViewControllerDelegate {
    func cropViewControllerDidCrop(_ cropViewController: CropViewController, cropped: UIImage, transformation: Transformation) {
        print("successfully cropped")
        print("cropped is \(cropped)")
        self.croppedProfileImage = cropped
        
        cropViewController.dismiss(animated: true, completion: nil)
    }
    
    func cropViewControllerDidCancel(_ cropViewController: CropViewController, original: UIImage) {
        cropViewController.dismiss(animated: true, completion: nil)
    }
    
    private func openCropVC(image: UIImage) {
        
        var mantisConfig = Config()
        mantisConfig.cropShapeType = .circle(maskOnly: false)
        
        let cropViewController = Mantis.cropViewController(image: image, config: mantisConfig)
        cropViewController.delegate = self
        cropViewController.modalPresentationStyle = .fullScreen
        
        self.present(cropViewController, animated: true)
    }
}

extension으로 CropViewControllerDelegate를 걸어주고 예를들어 myPuppy라는 이미지를 크롭하고 싶다고 가정하면 그 뷰컨트롤러에서 self.openCropVC(image: myPuppy) 이런 식으로 호출해서 사용하면 됩니다. 그 후로 사용자가 원하는 모양에 맞게 크롭을 완료하고 크롭이 완성되면 cropViewControllerDidCrop이 호출되는데 이때 cropped가 완성된 이미지라고 보면 됩니다. 이후에는 크롭뷰컨트롤러가 더 이상 필요하지 않으므로 dismiss해주면 끝-!