问题描述
给出一个图像,当我想转换为标准的sRGB时,我可以使用CGContext来帮助绘制它,如下所示。
给出原始图像
当我直接使用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))
}
}
}
图像如下翻转。为什么会发生翻转,如何避免翻转?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)