Изменение размера UIImage Сохранить качество изображения в Swift - PullRequest
1 голос
/ 16 марта 2019

Я создал изображение из UIView, используя UIGraphicsGetCurrentContext.Это нормально работает, но когда я изменил размер этого изображения к большему размеру, оно было размыто с плохим качеством.Можно ли сохранить качество при изменении размера?Я пробовал много способов, но не работал.- код изображения:

func image(with view: UIView) -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(view.bounds.size, view.isOpaque, 0.0)
    defer { UIGraphicsEndImageContext() }
    if let context = UIGraphicsGetCurrentContext() {
        view.drawHierarchy(in: view.bounds, afterScreenUpdates: true)

        context.setAllowsAntialiasing(true)
        context.setShouldAntialias(true)
        let image = UIGraphicsGetImageFromCurrentImageContext()

        return image

    }
    return nil

}

код, который я использовал для изменения размера, это расширение UIImage

func resizedImage(newSize: CGSize) -> UIImage {
    // Guard newSize is different
    guard self.size != newSize else { return self }
     let aspect_ratio = self.size.width / self.size.height

    var image_w = newSize.height * aspect_ratio

    let finalSize = CGSize(width: image_w, height: newSize.height) 
    UIGraphicsBeginImageContextWithOptions(finalSize, false, 0.0)
    self.draw(in: CGRect(x: 0, y: 0, width: (CGFloat)(finalSize.width), height: (CGFloat)(newSize.height)))
    let newImage: UIImage = UIGraphicsGetImageFromCurrentImageContext()!
    UIGraphicsEndImageContext()
    return newImage
}

и пример изображения: изображение Спасибо

...