这是一个更合乎逻辑的问题,一切都运转良好。
我有一个ImageView,为此我从Web服务器下载图像。我们的Web服务器保留了最大尺寸的图像,然后我将图像重新缩小以用于所需的设备。所以说,如果我有一个尺寸为200 * 200的UIImageView并且我正在下载400 * 400的图像,我将图像重新缩放到200 * 200,然后我将它放在imageview中,我尝试将200×400图像放入200通过200图像视图,它看起来很好(没有像素化)。我实施降尺度的方式是
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
在图像上下文中。现在我觉得苹果可能会这样做,因为它重新调整我的图像以适应图像视图,所以它真的需要吗?或者我应该直接在图像视图中放置高分辨率图像?
需要的建议。
答案 0 :(得分:1)
您应该可以将400x400 UIImage分配给200x200 UIImageView。 CoreAnimation将处理下面的图像缩放。
图像质量
如果您想尝试不同的图像缩放质量,可以在UIImageView的图层上设置minificationFilter
。默认值为kCAFilterLinear
,我认为这对您的使用没有问题。将选择400x400图像中的多个像素并线性混合在一起以获得200x200图像像素颜色。 kCAFilterNearest
会以图像质量为代价获得更好的性能(选择400x400图像中的单个像素来获取200x200图像像素的颜色)。
您可以尝试使用kCAFilterTrilinear
进行实验,这样可以以牺牲某些性能为代价来提高图像质量。虽然this guy's在iPad 2上成功使用它,但文档并未明确说明哪些设备会产生影响,这让我觉得现在所有设备都支持它。该文档还指出,您的图像可能需要具有2的幂的尺寸才能产生影响。
<强> 性能 强>
您可以将图像从200x200缩小,作为性能优化以节省内存和CoreAnimation渲染时间(包括图像缩放),但除非您有理由认为您的应用程序的性能实际上会从中受益,否则我不会这样做此