IOS开发笔记,对图像的缩放操作

#pragma mark- 缩放图片按比例
+ (UIImage *)scaleImage:(UIImage *)image toScale:(float)scaleSize
{
    UIGraphicsBeginImageContext(CGSizeMake(image.size.width*scaleSize,image.size.height*scaleSize));
    [image drawInRect:CGRectMake(0, 0, image.size.width * scaleSize, image.size.height *scaleSize)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

#pragma mark- 缩放图片按大小
+ (UIImage *)scaleImage:(UIImage *)image toSize:(CGSize)scaleSize
{
    UIGraphicsBeginImageContext(scaleSize);
    [image drawInRect:CGRectMake(0, 0, scaleSize.width, scaleSize.height)];
    UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return scaledImage;
}

#pragma mark- 缩放图片按大小,同时保持比例
+ (UIImage *)thumbnailWithImageWithoutScale:(UIImage *)image size:(CGSize)asize
{
    UIImage *scaleImage;
    CGSize newSize = CGSizeMake(96.0, 96.0);
    if (nil == image) {
        scaleImage = nil;
    }
    
    else{
        
        CGSize oldsize = image.size;
        
        CGRect rect;
        
        if (newSize.width/newSize.height > oldsize.width/oldsize.height) {
            
            rect.size.width = newSize.height*oldsize.width/oldsize.height;
            
            rect.size.height = newSize.height;
            
            rect.origin.x = (newSize.width - rect.size.width)/2;
            
            rect.origin.y = 0;
            
        }
        
        else{
            
            rect.size.width = newSize.width;
            
            rect.size.height = newSize.width*oldsize.height/oldsize.width;
            
            rect.origin.x = 0;
            
            rect.origin.y = (newSize.height - rect.size.height)/2;
            
        }
        
        UIGraphicsBeginImageContext(newSize);
        
        CGContextRef context = UIGraphicsGetCurrentContext();
        
        CGContextSetFillColorWithColor(context, [[UIColor clearColor] CGColor]);
        
        UIRectFill(CGRectMake(0, 0, newSize.width, newSize.height));//clear background
        
        [image drawInRect:rect];
        
        scaleImage = UIGraphicsGetImageFromCurrentImageContext();
        
        UIGraphicsEndImageContext();
        
    }
    
    return scaleImage;

}

+ (BOOL)checkImageValid:(UIImage *)imageObj
{
    if (imageObj && imageObj.size.height > 0 && imageObj.size.width > 0)
    {
        return YES;
    }
    
    return NO;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值