+ (CGRect )scaleImage:(UIImage *)image toSize:(CGRect)newSize{
float actualHeight = image.size.height;
float actualWidth = image.size.width;
float imgRatio = actualWidth/actualHeight;
float maxRatio = newSize.size.width/newSize.size.height;
if(imgRatio!=maxRatio){
if(imgRatio < maxRatio){
imgRatio = newSize.size.height/ actualHeight;
actualWidth = imgRatio * actualWidth;
actualHeight = newSize.size.height;
}else{
imgRatio = newSize.size.width / actualWidth;
actualHeight = imgRatio * actualHeight;
actualWidth = newSize.size.width;
}
}
CGRect rect = CGRectMake(0.0,0.0, actualWidth, actualHeight);
return rect;
}
图片不失真方法:http://superdanny.link/2016/01/28/iOS-Upload-Image/
https://www.jianshu.com/p/76f7eb00ef13
/*******************************************************************************************************************/
以下是涉及分辨率,对于图片像素px 确保不失真,方案
CGFloatw =790;
CGFloath =200;
//point = px / scale
CGFloatscale = [[UIScreenmainScreen]scale];
CGFloatnewW = w/scale;
CGFloatnewH = h/scale;
if (newW < [UIScreen mainScreen].bounds.size.width) {
NSLog(@"iphone6+");
//XR scale = 2; newW = 395点 屏幕宽点 = 414点
//6S+ scale = 3; newW = 250点 屏幕宽点 = 414点
//对于分辨率来说, 无法全屏,因为全屏会放大图片,因为图片小
}else{
NSLog(@"iphone6以下");
// 6S scale = 2; newW = 395点 屏幕宽点 = 375点
// 对于分辨率来说,可以全屏,因为全屏会缩小图片,因为图片大
}

网友评论