【问题标题】:How to choose 1 UIImage size for all iPhone resolutions?如何为所有 iPhone 分辨率选择 1 UIImage 大小?
【发布时间】:2016-02-22 14:12:44
【问题描述】:

如果我(目前)只能添加一种图片尺寸,我应该选择哪种图片尺寸? 图片将用于UITableViewCell,宽度很可能是从边缘到边缘,而高度可能会有所不同。

那么我应该添加 1242 像素宽度的图像,然后应用程序本身会将其缩小到 750/640 像素吗?或者我应该使用 750px,因为 iPhone 6 的用户比 6+ 多,而且更多的用户会有更好看的图像(换句话说,更多的人会看到原始图像,而不是缩放)?

【问题讨论】:

    标签: ios uiimage screen-resolution


    【解决方案1】:

    使用 1242 像素的图像并将其缩小。获得最佳图像质量集yourUIImageView.layer.minificationFilter = kCAFilterTrilinear。使用三线性过滤时,您不会看到图像质量有任何差异。

    另一种选择是在使用之前缩小图像:

    extension UIImage {
      public func rescale(width: CGFloat, _ height: CGFloat) -> UIImage {
        let newSize = CGSizeMake(width, height)
    
        UIGraphicsBeginImageContextWithOptions(newSize, false, 0.0)
        drawInRect(CGRectMake(0.0, 0.0, newSize.width, newSize.height))
        let scaledImage = UIGraphicsGetImageFromCurrentImageContext()
        UIGraphicsEndImageContext()
    
        return scaledImage
      }
    }
    
    let myImage = UIImage(named: "myimage").rescale(newWidth, newHeight)
    

    【讨论】:

    • 如果我只是添加像cell.myImageView.image = someImage 这样的图像,这很糟糕吗?好吧,换句话说,它有多糟糕?
    • 如果你设置了 minificationFilter 那么你可以将图像设置为 imageview。记得设置正确的 contentMode 以保持图像纵横比正确。
    • Sooo,我选择了Aspect Fit,将UImage.frame.size调整为与原始图像成比例,然后cell.myImageView.image = someImagecell.myImage.layer.minificationFilter = kCAFilterTrilinear
    • 这就是你需要做的所有事情。
    猜你喜欢
    • 2012-05-13
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 1970-01-01
    • 2016-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多