Swift由于高解析度的内存问题而终止了Image Edit

时间:2019-03-20 09:01:03

标签: ios swift uiimage

如果应用使图像变暗为高分辨率图像的代码 由于内存问题而终止。 使用高分辨率图像时如何使用代码?

extension UIImage {
    func getDarkened() -> UIImage? {
        UIGraphicsBeginImageContextWithOptions(size, false, 0)
        defer { UIGraphicsEndImageContext() }

        guard let ctx = UIGraphicsGetCurrentContext(), let cgImage = cgImage else {
            return nil
        }

        // flip the image, or result appears flipped
        ctx.scaleBy(x: 1.0, y: -1.0)
        ctx.translateBy(x: 0, y: -size.height)

        let rect = CGRect(origin: .zero, size: size)
        ctx.draw(cgImage, in: rect)
        UIColor(white: 0, alpha: 0.5).setFill()
        ctx.fill(rect)

        return UIGraphicsGetImageFromCurrentImageContext()
    }
}

在imageView中使用现有图像会按预期工作,但是当您在图像中使用我的代码时,它将终止。

0 个答案:

没有答案