IOS中将照片压缩至指定大小

-(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize withImage:(UIImage*)img

{

UIImage *sourceImage =img;

UIImage *newImage =nil;

CGSize imageSize =sourceImage.size;

CGFloat width =imageSize.width;

CGFloat height =imageSize.height;

CGFloat targetWidth =targetSize.width;

CGFloat targetHeight =targetSize.height;

CGFloat scaleFactor =0.0;

CGFloat scaledWidth =targetWidth;

CGFloat scaledHeight =targetHeight;

CGPoint thumbnailPoint= CGPointMake(0.0,0.0);


if(CGSizeEqualToSize(imageSize, targetSize) == NO)

{

CGFloat widthFactor =targetWidth / width;

CGFloat heightFactor =targetHeight / height;


if (widthFactor >heightFactor)

scaleFactor =widthFactor; // scale to fit height

else

scaleFactor =heightFactor; // scale to fit width

scaledWidth= width *scaleFactor;

scaledHeight = height *scaleFactor;


原文地址:http://gaohaijun.blog.163.com/blog/static/176698271201192325646792

/


// center the image

if (widthFactor >heightFactor)

{

thumbnailPoint.y =(targetHeight - scaledHeight) * 0.5;

}

else if (widthFactor< heightFactor)

{

thumbnailPoint.x =(targetWidth - scaledWidth) * 0.5;

}

}


UIGraphicsBeginImageContext(targetSize); // this will crop


CGRect thumbnailRect =CGRectZero;

thumbnailRect.origin =thumbnailPoint;

thumbnailRect.size.width= scaledWidth;

thumbnailRect.size.height = scaledHeight;


[sourceImagedrawInRect:thumbnailRect];


newImage =UIGraphicsGetImageFromCurrentImageContext();

if(newImage == nil)

NSLog(@"could not scaleimage");


//pop the context toget back to the default

UIGraphicsEndImageContext();

return newImage;

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值