如何从 UIImagePickerController 库中调整图像大小

问题描述

UIImagePickerController如何调整图片的大小,如果图片的长宽都超过1500,长宽都必须缩小到65%。例如,如果调整大小后照片的大小为 2000x3000,则两个参数都应乘以 0.65 并变为 1300x1950。 并且,如果照片的长宽不超过1500,照片应该保持不变

解决方法

请找到根据最大尺寸和比例调整大小的代码。

extension UIImage {
    func resizeImage(maxSize: CGFloat,scale : CGFloat) -> UIImage {
        let size = self.size
        
        if (size.width > maxSize || size.height > maxSize) {
            let newSize = CGSize(width: size.width * scale,height: size.height * scale)
            let rect = CGRect(x: 0,y: 0,width: newSize.width,height: newSize.height)
            
            UIGraphicsBeginImageContextWithOptions(newSize,false,1.0)
            self.draw(in: rect)
            let newImage = UIGraphicsGetImageFromCurrentImageContext()
            UIGraphicsEndImageContext()
            
            return newImage!
        }
        return self
    }
}

让 resizedImage = yourImage.resizeImage(maxSize: 1500,scale: 0.65)