为何是 960 × 640

【本文原载:DaringFireball ,作者:约翰·格鲁伯(John Gruber) ,原文链接

自从上个月我暗示今年夏天的新一代 iPhone 将会配备双倍于当前分辨率的 960 × 640 显示屏以来,我收到了许多对此表示怀疑的反馈——来自读者的邮件。他们不理解苹果为什么需要这样做,大多数反馈的主要内容是这样的:现有的 iPhone 已经拥有很漂亮的高分辨率显示屏,所以,如果现有的已经足够好,苹果为何还要自寻烦恼去采用更昂贵的显示屏呢?

当前 iPhone 和 iPod touch 采用的是 480 × 320 分辨率的显示屏,考虑到屏幕的对角线长度约为 3.5 英寸,这意味着每平方英寸包含约 162 个像素。(各个版本的  iPhone 和 iPod touch 的屏幕物理大小有细微的差异,如果非要讲究的话,各种款型的 iPhone 和 iPod touch 的每平方英寸像素值(pixel-per-inch, ppi ) 在 160~163 之间。这点差异可以忽略不计。)

我在 2007 年 6 月制作了一个表格,统计了苹果当前 Mac 家族的所有显示屏的每平方英寸像素值:最高的是 17 英寸 MacBook Pro 高分辨率显示屏,达 133 ppi (现在 15 英寸 MacBook Pro 的可选配置「高分辨率亚光显示屏」也达到这一水平);其他款的 ppi 值多在 100~110 之间。iPad 的 1024 × 768 显示屏的 ppi 值是 132 —— 比大多数 Mac 的都要高,但却明显不及现有的 iPhone 和 iPod touch。

现在已经有 Android 手机采用 800 × 480 分辨率的 AMOLED 显示屏,其对角线长度约为 3.7 英寸,这意味着每平方英寸包含约 250 个像素。较小的文字在 Nexus One 上看起来明显要比在我的 iPhone 3GS 上看的更清晰。不过,有两个原因让 Android 的这一优势又削弱了。首先,Android 只采用了 Droid 家族的字体——这种低质量的字体设计时只考虑了在低分辨率的显示屏上获得最佳效果。这种影响就相当于,当你印刷时却选用了针对电子屏幕优化的字体,比如 Chicago 。 其次,因为 AMOLED 显示屏的每一个像素并不能复制呈现任何一种颜色,可以说它不是真正的 800 × 480 分辨率。这种显示屏要比同等大小的 LED 显示屏少 33% 的附属象素(sub-pixels),一个像素包含三个附属像素,分别控制红、绿、蓝三原色。

所以,相对于其他电子设备的显示屏,iPhone 的 162 ppi 确实是很高的分辨率。但是如果和印刷比起来,iPhone 的分辨率可以说是很粗糙的。对比一下 iPhone 或 iPod touch 的字体与光滑的杂志上的印刷字体,你就能发现 iPhone 上的字体和反锯齿变形。而在高质量印刷杂志上的字体上,你看不到一个真正的「点」(印刷颗粒)。

下一代 iPhone 正争取实现这一级别的分辨率——不仅仅是要超越竞争对手设备的分辨率水平,还要与光学质量的印刷相竞争。在 3.5 英寸的显示屏上实现 960 × 640 分辨率,意味着每平方英寸像素值高达 325~330(可能会更高,下一代 iPhone 的屏幕尺寸好像只有 3.4 英寸)。它的每英寸点数(dpi) 要比 600 dpi 的印刷机要少,但是结合了反锯齿技术后,我相信,下一代 iPhone 屏幕上的排版将与高质量的印刷难分伯仲。当前只有 1 个像素占据的空间,以后将被 4 个像素填满。

这对开发者意味着什么?(我也不知道)

让 iPhone 应用程序利用如此之高的分辨率,我不确定这个故事会是怎样。如果让现有的未经改动的应用程序直接在双倍分辨率的 iPhone 屏幕上运行,仅用肉眼来看,应该与在当前的 iPhone 上没有区别——这和让现有的 iPhone 应用在双倍分辨率的iPad 运行不同。因为 iPad 不仅分辨率扩大了,同时像素需要填充的物理区域也扩大了。

我也不确定这对 iPhone 的网页应用开发者意味着什么。我觉得 Mobile Safari 不会继续绘制「像素」单位到物理显示屏像素,因为新旧 iPhone 的物理像素尺寸相差太大了。我猜测,也仅仅是猜测,Mobile Safari 将会切换到一个系统,能让「像素」单位呈现为一个虚拟像素:如果是在现有的 iPhone 上,则直接绘制到物理像素;如果是在新的 960 × 640 的 iPhone 上,则绘制 2 × 2 个像素矩形到与 480 × 320 分辨率的一个像素同样大小的物理区域。

我曾经期望在本月初的 iPhone OS 4.0 SDK 发布活动中找到一些分辨率缩放问题的线索,不过,不走运。显然,我们只有等到 6 月初的全球开发者大会(WWDC)了。