iOS中解决因添加图片导致内存过的大方法

在开发app的过程中,某个空间需要加载相册中的图片,而相册中的图片都是高清图片,动辄十几M的大小,这样添加过多的图片后,会导致内存剧增,影响app的使用.

这里解决的办法就是通过重绘图片的frame,原始图片的高度h1,宽度w1,再定义自己想要得到的图片的宽度w2,通过h1 * w2 / w1来计算程序员自己想要得到的图片的高度,然后通过获取图片上下文的方式,重新返回一个UIImage,给控件赋值的时候用重绘后的UIImage就能解决该问题了

这里分享一个免费的裁剪图片的神网站,裁剪完不影响分辨率
https://tinypng.com

//解决内存问题
func getScaleImage(width: CGFloat) -> UIImage {
    if self.size.width <= width {
        return self
    }else {
        let height = (self.size.height * width)/self.size.width
        
        let rect = CGRect(x: 0, y: 0, width: width, height: height)
        
        UIGraphicsBeginImageContext(rect.size)
        self.drawInRect(rect)
        
        let image = UIGraphicsGetImageFromCurrentImageContext()
        
        UIGraphicsEndImageContext()
        
        return image
        
    }
}

你可能感兴趣的:(iOS中解决因添加图片导致内存过的大方法)