IOS 图片不失真(网络图片,本地图片-)-不涉及分辨率(px➗2 跟本地点做比较)

+ (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点

        // 对于分辨率来说,可以全屏,因为全屏会缩小图片,因为图片大

    }


IOS 图片不失真(网络图片,本地图片-)-不涉及分辨率(px➗2 跟本地点做比较)_第1张图片
iPhone 各屏幕尺寸整理

你可能感兴趣的:(IOS 图片不失真(网络图片,本地图片-)-不涉及分辨率(px➗2 跟本地点做比较))