iOS

iOS UIImage 调整图片大小避免模糊

2017-09-18  本文已影响2126人  _10_01_

因需要对UITabBarItemUIImage的大小进行调整,直接使用 UIGraphicsBeginImageContext 调整图片大小将会导致图片模糊,原来使用60px大小,后面切换成180px还是模糊;
后来根据网友的代码,在调整时加上屏幕的缩放倍数后达到预期,记录代码,留用:

- (UIImage *)scaleToSize:(UIImage *)image size:(CGSize)size {
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    // Determine whether the screen is retina
    /*
    if([[UIScreen mainScreen] scale] == 2.0) {                    
        UIGraphicsBeginImageContextWithOptions(size, NO, 2.0);
    } else {
        UIGraphicsBeginImageContext(size);
    }
     */
    UIGraphicsBeginImageContextWithOptions(size, NO, [[UIScreen mainScreen] scale]);
    // 绘制改变大小的图片
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];
    // 从当前context中创建一个改变大小后的图片
    UIImage * scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    // 返回新的改变大小后的图片
    return scaledImage;
}

参考:
iOS缩小图片反而模糊,用什么方法更好?

上一篇下一篇

猜你喜欢

热点阅读