iOS中经常会遇到需要对图片处理的情况,对图片处理的分为两种: 图片压缩 与 图片剪裁。
1 图片压缩:
指的在不改变图片大小的情况下,通过改变图片质量来实现简单的压缩, iOS中图片压缩如下:
UIImage * image = [UIImage imageNamed:@"test.png"];
// 0.6为压缩比, 该值范围为0-1, 方法返回值为NSData
NSData * imageData = UIImageJPEGRepresentation(image, 0.6);
2 图片剪裁: 图片剪裁也分为两种方式,(1) 设定一个size,将这个图片填充入这个size内,来实现压缩
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
(2)将图片中某一块剪裁出来(抠图)
//写一个继承UIImage的类,内部定义一个方法如下
- (UIImage *)cropImageWithX:(CGFloat)x y:(CGFloat)y width:(CGFloat)width height:(CGFloat)height {
//X Y为设定的裁剪零点, width, height为剪裁出来的图片的宽与高
CGRect rect = CGRectMake(x, y, width, height);
CGImageRef imageRef = CGImageCreateWithImageInRect(self.CGImage, rect);
UIImage *image = [UIImage imageWithCGImage:imageRef];
return image;
}