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

IOS 缩放图片常用方法

时间:2015-04-08 22:45:53      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:

/**
 *  指定Size压缩图片 (图片会压缩变形)
 *
 *  @param image 原图
 *  @param size  压缩size
 *
 *  @return 压缩后的图片
 */
-(UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size
{
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    UIGraphicsBeginImageContext(size);
    
    // 绘制改变大小的图片
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    
    // 从当前context中创建一个改变大小后的图片
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    
    // 返回新的改变大小后的图片
    return scaledImage;
}

/**
 *  等比缩放图片裁剪指定区域图片
 *
 *  @param image 原图
 *  @param size  裁剪范围
 *
 *  @return 裁剪后的图片
 */
-(UIImage *)compressImageWith:(UIImage *)image scaleToSize:(CGSize)size
{
    // 原图宽
    CGFloat imageWidth = image.size.width;
    // 原图高
    CGFloat imageHeight = image.size.height;
    
    // 缩放比例
    CGFloat widthScale = imageWidth /size.width;
    CGFloat heightScale = imageHeight /size.height;
    
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height));
    
    // 横屏图片
    if (widthScale > heightScale) {
        [image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , size.height)];
    }
    else { // 竖屏图片
        [image drawInRect:CGRectMake(0, 0, size.width , imageHeight /widthScale)];
    }
    
    // 从当前context中创建一个改变大小后的图片
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();

    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    
    return newImage;
    
}

 

IOS 缩放图片常用方法

标签:

原文地址:http://www.cnblogs.com/joesen/p/4403737.html

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