Resize UIImage to 200x200pt/px

前端 未结 13 2141
后悔当初
后悔当初 2020-11-27 11:25

I have been struggling resizing an image. Basically I have stumpled upon: How to scale down a UIImage and make it crispy / sharp at the same time instead of blurry?

13条回答
  •  我在风中等你
    2020-11-27 11:43

    This code uses UIGraphicsImageRenderer introduced in iOS 10: in my testing it was 10-40% faster than earlier samples with UIGraphicsBeginImageContext (Swift 4 / Xcode 9):

    extension UIImage {
            func renderResizedImage (newWidth: CGFloat) -> UIImage {
                let scale = newWidth / self.size.width
                let newHeight = self.size.height * scale
                let newSize = CGSize(width: newWidth, height: newHeight)
    
                let renderer = UIGraphicsImageRenderer(size: newSize)
    
                let image = renderer.image { (context) in
                    self.draw(in: CGRect(origin: CGPoint(x: 0, y: 0), size: newSize))
                }
                return image
            }
        }
    

提交回复
热议问题