iOS开发

iOS - 图像处理

2017-11-24  本文已影响0人  Gold_xiaohui

图像处理函数

//1.生成背景色为color的图片方法
+ (UIImage*) GetImageWithColor:(UIColor*)color andHeight:(CGFloat)height;

//2.图片剪裁
+ (UIImage *)clipWithImageRect:(CGRect)clipRect clipImage:(UIImage *)clipImage;

//3.图片压缩
+ (UIImage *)compressImagewithImage:(UIImage *)image;
+ (UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize;

具体代码

1.生成背景色为color的图片方法

+ (UIImage*) GetImageWithColor:(UIColor*)color andHeight:(CGFloat)height
{
    CGRect r= CGRectMake(0.0f, 0.0f, 1.0f, height);
    UIGraphicsBeginImageContext(r.size);
    CGContextRef context = UIGraphicsGetCurrentContext();
    
    CGContextSetFillColorWithColor(context, [color CGColor]);
    CGContextFillRect(context, r);
    
    UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    
    return img;
}

2.图片剪裁

//返回裁剪区域图片,返回裁剪区域大小图片
+(UIImage *)clipWithImageRect:(CGRect)clipRect clipImage:(UIImage *)clipImage{
    UIGraphicsBeginImageContext(clipRect.size);
    
    [clipImage drawInRect:CGRectMake(-clipRect.origin.x,-clipRect.origin.y,clipImage.size.width *clipImage.scale,clipImage.size.height *clipImage.scale)];
    
    UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
    
    UIGraphicsEndImageContext();
    
    return newImage;
}

3.图片压缩

1.//图片压缩(像素)
+(UIImage *)compressImagewithImage:(UIImage *)image{
        
    //图片压缩(像素)
    NSData *newImageData = nil;
    newImageData = UIImageJPEGRepresentation(image, 0.0);
    UIImage *newImage = [UIImage imageWithData:newImageData];
    
    UIImage *newImage2 = [[UIImage alloc]init];
    
//通过剪切压缩把图片压缩到1m以下
   //    if ((float)newImageData.length/1024 > 10000) {
//        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/6, newImage.size.height/6)];
//    }else if ((float)newImageData.length/1024 > 1500){
//        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/4, newImage.size.height/4)];
//    }else if ((float)newImageData.length/1024 > 1024){
//        newImage2 = [self imageWithImage:newImage scaledToSize:CGSizeMake(newImage.size.width/2, newImage.size.height/2)];
//    }else{
//        newImage2 = newImage;
//    }

    return newImage2;
}
2.//图片压缩(尺寸)
//图片压缩(尺寸)
+ (UIImage *)imageWithImage:(UIImage*)image scaledToSize:(CGSize)newSize{
    UIGraphicsBeginImageContext(newSize);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();
    return newImage;
    
}
上一篇 下一篇

猜你喜欢

热点阅读