美文网首页
iOS中解决因添加图片导致内存过的大方法

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

作者: luffy的笑容 | 来源:发表于2016-07-29 00:23 被阅读198次

    在开发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中解决因添加图片导致内存过的大方法

          本文链接:https://www.haomeiwen.com/subject/zexzjttx.html