码迷,mamicode.com
首页 > 移动开发 > 详细

IOS 压缩图片分辨率

时间:2014-10-14 22:52:29      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:io   os   ar   sp   on   ef   line   bs   size   

+ (UIImage *)imageWithMaxSide:(CGFloat)length sourceImage:(UIImage *)image{
    CGFloat scale = [[UIScreen mainScreen] scale];
    CGSize imgSize = CWSizeReduce(image.size, length);
    UIImage *img = nil;

    UIGraphicsBeginImageContextWithOptions(imgSize, YES, scale);  // 创建一个 bitmap context

    [image drawInRect:CGRectMake(0, 0, imgSize.width, imgSize.height)
            blendMode:kCGBlendModeNormal alpha:1.0];              // 将图片绘制到当前的 context 上

    img = UIGraphicsGetImageFromCurrentImageContext();            // 从当前 context 中获取刚绘制的图片 
    UIGraphicsEndImageContext();

    return img;}static inlineCGSize CWSizeReduce(CGSize size, CGFloat limit)   // 按比例减少尺寸{
    CGFloat max = MAX(size.width, size.height);
    if (max < limit) {
        return size;
    }

    CGSize imgSize;
    CGFloat ratio = size.height / size.width;

    if (size.width > size.height) {
        imgSize = CGSizeMake(limit, limit*ratio);
    } else {
        imgSize = CGSizeMake(limit/ratio, limit);
    }

    return imgSize;}


IOS 压缩图片分辨率

标签:io   os   ar   sp   on   ef   line   bs   size   

原文地址:http://my.oschina.net/CgShare/blog/330651

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!