我应该在渲染到屏幕之前调整 UIImage 的大小吗?
Should I resize UIImage before rendering to screen?
在开发 ios 应用程序时,假设我有大尺寸 UIImage
let image = UIImage(named: "unicorn")! // actual image size is 2000x2000
我应该在渲染到屏幕之前调整大小
let size = CGSize(width: 100.0, height: 100.0)
// use AlamorefireImage UIImage extension to resize UIImage
let scaledImage = image.af_imageScaled(to: size)
// render
imageView.image = scaledImage
或者我直接渲染图像到屏幕
imageView.frame.size = CGRect(width: 100, height: 100)
imageView.image =image
哪个绘图性能更好?
让我们考虑下一个案例:
如果您使用的是捆绑包(项目文件夹)中的图像。
最好的方法是使用资产目录。在这种情况下,您必须以所需的确切大小存储图像,例如。 100x100 pt(特定屏幕尺寸的特定图像,例如 1x 为 100x100,2x 为 200x200,3x 为 300x300)。这是性能的最佳选择。
如果您从网络下载图像。我想最好的方法是在服务器上放一张缩略图和一张大图。例如。列表中的小用户照片大小为 100x100 像素,用户个人资料页面上的大用户照片大小为 500x500 像素。
在某些情况下,您 从网络下载仅具有大尺寸的图像 例如。 2000x2000。在这种情况下,您可以像您建议的那样在渲染之前调整图像大小。但是不要在主线程上这样做以防止应用程序冻结。如果此图像将在应用程序中多次使用(例如,在 table 视图单元格中),您甚至可以将此重新缩放的图像保存到缓存中,并在下次从缓存中使用它。
在开发 ios 应用程序时,假设我有大尺寸 UIImage
let image = UIImage(named: "unicorn")! // actual image size is 2000x2000
我应该在渲染到屏幕之前调整大小
let size = CGSize(width: 100.0, height: 100.0)
// use AlamorefireImage UIImage extension to resize UIImage
let scaledImage = image.af_imageScaled(to: size)
// render
imageView.image = scaledImage
或者我直接渲染图像到屏幕
imageView.frame.size = CGRect(width: 100, height: 100)
imageView.image =image
哪个绘图性能更好?
让我们考虑下一个案例:
如果您使用的是捆绑包(项目文件夹)中的图像。 最好的方法是使用资产目录。在这种情况下,您必须以所需的确切大小存储图像,例如。 100x100 pt(特定屏幕尺寸的特定图像,例如 1x 为 100x100,2x 为 200x200,3x 为 300x300)。这是性能的最佳选择。
如果您从网络下载图像。我想最好的方法是在服务器上放一张缩略图和一张大图。例如。列表中的小用户照片大小为 100x100 像素,用户个人资料页面上的大用户照片大小为 500x500 像素。
在某些情况下,您 从网络下载仅具有大尺寸的图像 例如。 2000x2000。在这种情况下,您可以像您建议的那样在渲染之前调整图像大小。但是不要在主线程上这样做以防止应用程序冻结。如果此图像将在应用程序中多次使用(例如,在 table 视图单元格中),您甚至可以将此重新缩放的图像保存到缓存中,并在下次从缓存中使用它。