ios 图片处理( 1.按比例缩放 2.指定宽度按比例缩放)
2016-11-12 10:13
453 查看
点击可查看我所写内容所对应的项目:https://github.com/liyuunxiangGit/CircleOfFriendsDisplay(一个朋友圈的实现)
首先我这里只拿按比例缩放进行讲解。大家可以先看下方的两个效果图:
之前的效果图 图片变形
修改后的 没有变形
代码在此:
首先我这里只拿按比例缩放进行讲解。大家可以先看下方的两个效果图:
之前的效果图 图片变形
修改后的 没有变形
代码在此:
//按比例缩放,size是你要把图显示到多大区域CGSizeMake(300,140)
-(UIImage*)imageCompressForSize:(UIImage*)sourceImagetargetSize:(CGSize)size{
UIImage*newImage=nil;
CGSizeimageSize=sourceImage.size;
CGFloatwidth=imageSize.width;
CGFloatheight=imageSize.height;
CGFloattargetWidth=size.width;
CGFloattargetHeight=size.height;
CGFloatscaleFactor=0.0;
CGFloatscaledWidth=targetWidth;
CGFloatscaledHeight=targetHeight;
CGPointthumbnailPoint=CGPointMake(0.0,0.0);
if(CGSizeEqualToSize(imageSize,size)==NO){
CGFloatwidthFactor=targetWidth/width;
CGFloatheightFactor=targetHeight/height;
if(widthFactor>heightFactor){
scaleFactor=widthFactor;
}
else{
scaleFactor=heightFactor;
}
scaledWidth=width*scaleFactor;
scaledHeight=height*scaleFactor;
if(widthFactor>heightFactor){
thumbnailPoint.y=(targetHeight-scaledHeight)*0.5;
}elseif(widthFactor<heightFactor){
thumbnailPoint.x=(targetWidth-scaledWidth)*0.5;
}
}
UIGraphicsBeginImageContext(size);
CGRectthumbnailRect=CGRectZero;
thumbnailRect.origin=thumbnailPoint;
thumbnailRect.size.width=scaledWidth;
thumbnailRect.size.height=scaledHeight;
[sourceImagedrawInRect:thumbnailRect];
newImage=UIGraphicsGetImageFromCurrentImageContext();
if(newImage==nil){
NSLog(@"scaleimagefail");
}
UIGraphicsEndImageContext();
returnnewImage;
}
//指定宽度按比例缩放
-(UIImage*)imageCompressForWidth:(UIImage*)sourceImagetargetWidth:(CGFloat)defineWidth{
UIImage*newImage=nil;
CGSizeimageSize=sourceImage.size;
CGFloatwidth=imageSize.width;
CGFloatheight=imageSize.height;
CGFloattargetWidth=defineWidth;
CGFloattargetHeight=height/(width/targetWidth);
CGSizesize=CGSizeMake(targetWidth,targetHeight);
CGFloatscaleFactor=0.0;
CGFloatscaledWidth=targetWidth;
CGFloatscaledHeight=targetHeight;
CGPointthumbnailPoint=CGPointMake(0.0,0.0);
if(CGSizeEqualToSize(imageSize,size)==NO){
CGFloatwidthFactor=targetWidth/width;
CGFloatheightFactor=targetHeight/height;
if(widthFactor>heightFactor){
scaleFactor=widthFactor;
}
else{
scaleFactor=heightFactor;
}
scaledWidth=width*scaleFactor;
scaledHeight=height*scaleFactor;
if(widthFactor>heightFactor){
thumbnailPoint.y=(targetHeight-scaledHeight)*0.5;
}elseif(widthFactor<heightFactor){
thumbnailPoint.x=(targetWidth-scaledWidth)*0.5;
}
}
UIGraphicsBeginImageContext(size);
CGRectthumbnailRect=CGRectZero;
thumbnailRect.origin=thumbnailPoint;
thumbnailRect.size.width=scaledWidth;
thumbnailRect.size.height=scaledHeight;
[sourceImagedrawInRect:thumbnailRect];
newImage=UIGraphicsGetImageFromCurrentImageContext();
if(newImage==nil){
NSLog(@"scaleimagefail");
}
UIGraphicsEndImageContext();
returnnewImage;
}
相关文章推荐
- ios 图片处理( 1.按比例缩放 2.指定宽度按比例缩放
- iOS 图片处理方法(按比例缩放,指定宽度按比例缩放)
- iOS 图片处理-按比例缩放 (1.按比例缩放 2.指定宽度按比例缩放)
- iOS 图片处理方法(按比例缩放,指定宽度按比例缩放)
- ios 图片处理( 1.按比例缩放 2.指定宽度按比例缩放)
- 图片指定宽度按比例缩放
- Picasso处理图片,按照设置的宽度比例来缩放
- 一个可以使得上传的图片大小按照指定的宽度,高度自动按比例进行缩放的函数(C#)
- iOS - 以固定宽度等比例缩放图片
- javascript在指定宽度和高度范围内最大化等比缩放图片
- 使用jQuery实现指定图片按比例缩放
- ios 简单的设置图片等比例缩放请求的网络图片
- ios 简单的设置图片等比例缩放请求的网络图片
- ios 简单的设置图片等比例缩放请求的网络图片
- JAVASCRIPT 等比例缩放图片 限定最大宽度和最大高度
- 解决图片太大溢出问题、使用CSS限制图片最大宽度或使图片按比例自动缩放
- 一个对上传图片进行处理的函数(等比例缩放) --koma
- 在指定宽度和高度范围内最大化缩放图片
- C# 图片处理 将 图片数组将图片缩放为指定大小
- 载入图片后按指定宽高缩放比例