使用UIGraphicImageRenderer的CGContext重绘图像,翻转图像如何防止翻转?

问题描述

给出一个图像,当我想转换为标准的sRGB时,我可以使用CGContext来帮助绘制它,如下所示。

给出原始图像

enter image description here

当我直接使用CGContext时,它会正确重绘

extension UIImage {
    func toSRGB() -> UIImage {        
        guard let cgImage = cgImage,let colorSpace = CGColorSpace(name: CGColorSpace.sRGB),let cgContext = CGContext(
                data: nil,width: Int(size.width),height: Int(size.height),bitsPerComponent: 8,bytesPerRow: 0,space: colorSpace,bitmapInfo: CGImageAlphaInfo.premultipliedLast.rawValue)
            else { return self }
        cgContext.draw(cgImage,in: CGRect(origin: .zero,size: size))

        guard let newCGImage = cgContext.makeImage()
            else { return self }

        return UIImage.init(cgImage: newCGImage)
    }
}

但是,如果我使用CGContext中的UIGraphicImageRenderer

extension UIImage {
    func toSRGB() -> UIImage {
        guard let cgImage = cgImage else { return self }

        let renderer = UIGraphicsImageRenderer(size: size)
        return renderer.image { ctx in
            ctx.cgContext.draw(cgImage,size: size))
        }
    }
}

图像如下翻转。为什么会发生翻转,如何避免翻转?

enter image description here

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)