ios中关于image的一个缩放分类

手机中经常会遇到一些非常大的图片,当把它们导入到我们的缓存时有时会造成程序的闪退,即超过了125mb,此时我们有三种方法对图片进行压缩,前两者方法http://blog.csdn.NET/mideveloper/article/details/11473627这位哥们讲的已经很详细了,我自己用OC和Swift写了一个UIImage的分类,也比较好用.

OC:

+(UIImage *)reduceScaleToWidth:(CGFloat)width andImage:(UIImage *)image{
        
        if (image.size.width <= width) {
            return image;
        }
        
        CGFloat height = image.size.height * (width/image.size.width);
        
        CGRect rect = CGRectMake(0, 0, width, height);
        
        UIGraphicsBeginImageContext(rect.size);
        
        [image drawInRect:rect];
        
        UIImage * returnImage = UIGraphicsGetImageFromCurrentImageContext();
        
        UIGraphicsEndImageContext();
        
        return returnImage;
    }

SWIFT

    /// 将图片按指定宽度缩放
    ///
    /// - parameter width: 指定宽度
    ///
    /// - returns: <#return value description#>
    func scaleToWidth(width: CGFloat) -> UIImage {
        if size.width <= width {
            return self
        }
        
        // 计算高度
        let height = size.height * (width / 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
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 在此特此声明:一下所有链接均来自互联网,在此记录下我的查阅学习历程,感谢各位原创作者的无私奉献 ! 技术一点一点积...
    远航的移动开发历程阅读 13,869评论 12 197
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,204评论 4 61
  • 十月一号那天,坐着高铁回家,偶然看了看窗外,看到了西红门的宜家,看到了我一直觉得神秘的黄村火车站,愉快的和北京告别...
    埃_阅读 2,849评论 0 1
  • 刚看完了《无声的告白》,觉得詹姆斯一家人大概都是可怜的人吧。玛丽琳一直觉得自己不应该被家庭束缚,她小的时候就想和别...
    Tomme阅读 4,361评论 0 1
  • 旧年的最后一个礼拜,看完了三本书,风格各异,但都是正儿八经的好书。 前阵子经常看到乔纳森·弗兰岑的名字,先是在BB...
    京南鹿阅读 3,848评论 1 1