我是不是需要在代码而不是 IB 中调整下载图像的大小以获得更好的性能?
Posted
技术标签:
【中文标题】我是不是需要在代码而不是 IB 中调整下载图像的大小以获得更好的性能?【英文标题】:Do I need to resize downloaded image in code instead of IB to get better performance?我是否需要在代码而不是 IB 中调整下载图像的大小以获得更好的性能? 【发布时间】:2013-12-17 07:25:13 【问题描述】:在 android 中,良好的做法是在加载图像之前,在代码中调整它的大小,因为按系统调整大小的成本很高。我不知道在ios中是否也是如此。例如,我正在使用 uitableview 显示一些从互联网下载的图像,每个单元格都有一个图像。我不知道每个图像的大小。但是,当它显示在表格中时,我想要每个图像的大小为 75x75。为了获得良好的性能,我应该在加载图像之前在代码中调整图像大小吗?或者我可以在界面生成器中设置大小。他们有同样的表现吗?谢谢!
【问题讨论】:
不,您不需要这样做,只需将 imageView 设置为适当的大小即可。 图像应该具有适合渲染时的尺寸。图像没有理由比渲染它们的画布具有更大的尺寸。这只会浪费系统资源。 @CouchDeveloper,谢谢,这就是我想要的答案。 【参考方案1】:我认为通过代码调整图像大小会提供更好的性能,因为接口生成器只会调整图像大小而不会对它进行优化。
- (UIImage *)imageWithImage:(UIImage *)image convertToSize:(CGSize)size
UIGraphicsBeginImageContext(size);
[image drawInRect:CGRectMake(0, 0, size.width, size.height)];
UIImage *destImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return destImage;
使用上面的代码调整大小
【讨论】:
以上是关于我是不是需要在代码而不是 IB 中调整下载图像的大小以获得更好的性能?的主要内容,如果未能解决你的问题,请参考以下文章