UIImage缩放

前面讲了截取UIImage指定大小区域,很方便的截取`UIImage`。今天要和大家分享的是`UIImage`的缩放。

两种缩放:

1.缩放到指定大小,也就是指定的`size`.

2.等比缩放。

缩放到指定大小

-(UIImage*)imageCompressWithSimple:(UIImage*)imagescaledToSize:(CGSize)size

{

UIGraphicsBeginImageContext(size);

[imagedrawInRect:CGRectMake(0,0,size.width,size.height)];

UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

returnnewImage;

}

等比缩放

通过缩放系数

-(UIImage*)imageCompressWithSimple:(UIImage*)imagescale:(float)scale

{

CGSizesize=image.size;

CGFloatwidth=size.width;

CGFloatheight=size.height;

CGFloatscaledWidth=width*scale;

CGFloatscaledHeight=height*scale;

UIGraphicsBeginImageContext(size);//thiswillcrop

[imagedrawInRect:CGRectMake(0,0,scaledWidth,scaledHeight)];

UIImage*newImage=UIGraphicsGetImageFromCurrentImageContext();

UIGraphicsEndImageContext();

returnnewImage;

}

`scale`是缩放系数。

通过计算得到缩放系数

-(UIImage*)imageByScalingAndCroppingForSize:(CGSize)targetSize

{

UIImage*sourceImage=[UIImageimageNamed:@"test.jpg"];

UIImage*newImage=nil;

CGSizeimageSize=sourceImage.size;

CGFloatwidth=imageSize.width;

CGFloatheight=imageSize.height;

CGFloattargetWidth=targetSize.width;

CGFloattargetHeight=targetSize.height;

CGFloatscaleFactor=0.0;

CGFloatscaledWidth=targetWidth;

CGFloatscaledHeight=targetHeight;

CGPointthumbnailPoint=CGPointMake(0.0,0.0);

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

{

CGFloatwidthFactor=targetWidth/width;

CGFloatheightFactor=targetHeight/height;

if(widthFactor>heightFactor)

scaleFactor=widthFactor;//scaletofitheight

else

scaleFactor=heightFactor;//scaletofitwidth

scaledWidth=width*scaleFactor;

scaledHeight=height*scaleFactor;

//centertheimage

if(widthFactor>heightFactor)

{

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

}

elseif(widthFactor<heightFactor)

{

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

}

}

UIGraphicsBeginImageContext(targetSize);//thiswillcrop

CGRectthumbnailRect=CGRectZero;

thumbnailRect.origin=thumbnailPoint;

thumbnailRect.size.width=scaledWidth;

thumbnailRect.size.height=scaledHeight;

[sourceImagedrawInRect:thumbnailRect];

newImage=UIGraphicsGetImageFromCurrentImageContext();

if(newImage==nil)

NSLog(@"couldnotscaleimage");

//popthecontexttogetbacktothedefault

UIGraphicsEndImageContext();

returnnewImage;

}

转载于:https://www.cnblogs.com/sjcries/p/5413417.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值