可能没注意的小功能(三):图像性能优化模拟器Debug
2020-06-11 本文已影响0人
橙橙橙橙橘子啦
关于图像的优化有很多细节,这里说一个点,当你需要优化页面图像性能的时候,用模拟器或真机运行的时候,点击Debug,会有几个选项,其中有两个值得注意:
- Color Blended Layers (混合)
- Color Missaligend Images(拉伸)
如果是直接使用:tempImageView.image = UIImage(named: " "),一般会出现一下两种情况:
- 此时勾选Color Blended Layers会显示红色
- 勾选Color Missaligend Images会显示黄色



这两种情况表明此时会更多的消耗GPU性能
这时可以使用图片上下文加载的方法,减少GPU的计算
func avatarImage(image:UIImage, size:CGSize) -> UIImage? {
let rect = CGRect(origin: CGPoint(), size: size)
UIGraphicsBeginImageContextWithOptions(rect.size, true, 0)
image.draw(in: rect)
let result = UIGraphicsGetImageFromCurrentImageContext()
UIGraphicsEndImageContext()
return result
}
override func viewDidLoad() {
super.viewDidLoad()
let rect = CGRect(x: 100, y: 100, width: 100, height: 100)
let tempImageView = UIImageView(frame: rect)
view.addSubview(tempImageView)
let image = UIImage(named: "timg")!
tempImageView.image = avatarImage(image: image, size: rect.size)
}
之后在勾选就不会出现红色或者黄色了。
类似的还有设置圆角,更详细的原理这里就先不说了,只是记录一下直接使用的方法