#pragma mark -----图片裁剪------
-(UIImage *)HU_trimImage:(UIImage *)image{
//imageView的宽高比
CGFloat imageViewWidthHeightRatio = _widthHeightRatio;
if (_widthHeightRatio <= 0) {
imageViewWidthHeightRatio = 1;
}
//屏幕分辨率
// CGFloat imageScale = [[UIScreen mainScreen] scale];
CGFloat imageScale = 1;
CGFloat imageWith = image.size.width*imageScale;
CGFloat imageHeight =image.size.height*imageScale;
//image的宽高比
CGFloat imageWidthHeightRatio =imageWith/imageHeight;
CGImageRef imageRef = nil;
CGRect rect;
// NSLog(@"\nimageWith === %f\nimageHeight === %f\nImageView宽高比 == %f\nimageScale == %f",imageWith,imageHeight,imageViewWidthHeightRatio,imageScale);
if (imageWidthHeightRatio>imageViewWidthHeightRatio) {
rect = CGRectMake((imageWith-imageHeight*imageViewWidthHeightRatio)/2, 0, imageHeight*imageViewWidthHeightRatio, imageHeight);
} else if (imageWidthHeightRatio<imageViewWidthHeightRatio) {
rect = CGRectMake(0, (imageHeight-imageWith/imageViewWidthHeightRatio)/2, imageWith, imageWith/imageViewWidthHeightRatio);
}else {
rect = CGRectMake(0, 0, imageWith, imageHeight);
}
imageRef = CGImageCreateWithImageInRect([image CGImage], rect);
UIImage *res = [UIImage imageWithCGImage:imageRef scale:imageScale orientation:UIImageOrientationUp];
/**
一定要,千万要release,否则等着内存泄露吧,稍微高清点的图一张图就是几M内存,很快App就挂了
*/
CGImageRelease(imageRef);
return res;
}
网友评论