//样本1uIImage.cgImage
//样本2UIImage(cgImage:cgImage)在上面的代码中,示例1将UIImage转换为CGImage,示例2将CGImage转换为UIImage。我的问题是:
样品1和……
的 样品:1 强>
如果由于内存限制而清除了图像数据, 调用此方法会强制将数据加载回内存。 重新加载图像数据可能会导致性能下降。
请参考: https://developer.apple.com/documentation/uikit/uiimage/1624159-cgimage
的 样品:2 强>
不幸的是,没有相同的文件可用。
但我亲自检查了样本1和2的转换持续时间,使用下面的代码。
//Image Size: 3 MB let image = UIImage.init(named: "2.jpg")! print("Start Conversion: Image to CGImage",Date()) let cgImageSample = image.cgImage print("End Conversion: Image to CGImage",Date()) print("Start Conversion: CGImage to UIImage",Date()) let imageConverted = UIImage(cgImage: cgImageSample!) print("End Conversion:CGImage to UIImage",Date())
的 控制台日志: 强>
开始转换:图像到CGImage 2019-03-18 05:17:02 +0000结束 转换:图像到CGImage 2019-03-18 05:17:03 +0000开始 转换:CGImage到UIImage 2019-03-18 05:17:03 +0000结束 转换:CGImage到UIImage 2019-03-18 05:17:04 +0000
开始转换:图像到CGImage 2019-03-18 05:17:02 +0000结束
转换:图像到CGImage 2019-03-18 05:17:03 +0000开始
转换:CGImage到UIImage 2019-03-18 05:17:03 +0000结束
转换:CGImage到UIImage 2019-03-18 05:17:04 +0000
的 结论: 强> 两次操作都需要1秒进行转换。
的 建议: 强> 如果你想转换许多图像,那么它是繁重的操作。如果您想转换单个图像,那么它不会影响性能太多。