iPhone-使图像适应视网膜显示

iPhone-使图像适应视网膜显示,iphone,cocoa-touch,uikit,retina-display,Iphone,Cocoa Touch,Uikit,Retina Display,我有一个关于为iPhone4的视网膜显示更新我的应用程序图形的问题 我将每个视图的分辨率保持在480 x 320点 所以我想知道:假设我有一个100 x 50的UIImageView。 这对我的实际图像更好,我将加载到200 x 100像素@163 ppi或100 x 50像素@326 ppi?就“轻盈”而言,这是一回事吗?哪种方式更可取 谢谢,你太棒了 洛伦佐问得好 因为我不知道苹果是如何检查图像的,也许你应该加载200x100个图像(用@2x like命名文件)image@2x.png而不是

我有一个关于为iPhone4的视网膜显示更新我的应用程序图形的问题

我将每个视图的分辨率保持在480 x 320点

所以我想知道:假设我有一个100 x 50的UIImageView。 这对我的实际图像更好,我将加载到200 x 100像素@163 ppi或100 x 50像素@326 ppi?就“轻盈”而言,这是一回事吗?哪种方式更可取

谢谢,你太棒了

洛伦佐

问得好

因为我不知道苹果是如何检查图像的,也许你应该加载200x100个图像(用@2x like命名文件)image@2x.png而不是image.png)

但是,如果您尝试其他选项并进行一些基准测试,请毫不犹豫地告诉我们结果


祝你好运

如果我错了,请纠正我,我不是图形专家,但这是我对主题的理解:

PPI——每英寸像素数(或点数)——它不是图像数据的属性,而是屏幕(硬件)的属性,理论上你无法控制它。换句话说,png文件并不描述每英寸显示多少个点,它只描述每个像素的颜色

没有像图像文件的PPI这样的东西。在决定图像的分辨率时,您应该记住目标设备的PPI,以便在屏幕上以正确的大小显示图像,而不必在软件中拉伸图像并失去清晰度。1英寸屏幕上显示的100x100图像具有100ppi,2英寸屏幕上显示的相同图像具有50ppi

简言之: 图像没有PPI,它们有分辨率,这将决定文件的大小

1)按照上面的描述,将UIImageView定义为100 x 50像素

2) 有一个100x50像素的图像文件“MyImage”,还有一个200x100像素的图像文件,并将其命名为“MyImage@2x“

3) 在代码中,请参考图像文件“MyImage”


iOS将自动选择正确的图像。在没有视网膜显示器的旧设备上(如iPhone 3GS),将使用“MyImage”文件。在具有视网膜显示器的较新设备上,将使用“@2x”版本。

使用两个图像,一个用于视网膜,一个用于旧屏幕?某些图像格式确实支持存储DPI(≈PPI)图像旁边的值。但是,对它的支持的实现差别很大,所以它不是真正可以依赖的东西。这是正确的。我要添加的唯一一件事是用适当的扩展名命名文件(即“.png”)。是的,我知道这一点。因此,最好只是将大小增加一倍,并使用命名功能来正确加载图像。但让旧设备自动缩小图像比例又如何呢?我看到cocoa touch通过一个简单的算法实现了这一点,但我担心的是RAM的使用。