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;
}