iOS像素和点的转换

时间:2024-03-31 07:17:02

首先大家要清楚一些概念:

px: pixel,像素,屏幕上显示的最小单位。

pt: point ,点,是一个标准的长度单位,1pt=1/72英寸.

PPI(DPI):pixel per inch ,像素密度PPI,指每英尺的像素数,表示了清晰度.

1 inch=2.54cm =25.4mm

通常我们所说的iphone5屏幕尺寸为4英尺指的是显示屏对角线的长度

下图是一张比较完整的Iphone尺寸规格

iOS像素和点的转换

可以看出iPhone 6的标准分辨率为750*1334 ,整体放大1.5倍正好是iPhone6+的放大模式

iPhone 4之后(x, y, width, height) = (20, 30, 40, 50),就表示高度为40个点,宽度为50个点,放在(20, 20)个点的位置。这种处理方法,将之前以像素作为单位自动转换成以点作为单位,使得iPhone 3GS的应用程序,不用修改也可运行在iPhone 4上面。

文字,颜色等是矢量数据,放大不会失真。原有的iPhone 3GS程序,在iPhone 4上面运行,文字显示也十分清晰。

而图片并非矢量数据,处理方式有所不同。假设图片 example.png,大小为 30 x 40像素(这里的单位是像素,数字图片的单位通常都为像素)。当这张example.png在iPhone 3GS和iPhone 4中使用时候,都占据屏幕上30 x 40个点。而因为iPhone 4中1个点等于2个像素,也就是30 x 40像素的图片,占据了60 x 80像素的屏幕,因此这图片在iPhone 4中看起来就会模糊。

开发的时候,为使得图片清晰,需要进行图片适配。这时需要准备两张内容相同的图片,放在同一目录下。

当程序中使用example.png的时候,会根据屏幕模式自动选择对应的图片。屏幕1x模式,就会选择example.png, 2x模式就会优先选择[email protected],假如[email protected]不存在,就选择example.png。

ios字体大小的转换:

UIFont

Parameters

fontSize

The size (in points) to which the font is scaled. This value must be greater than 0.0.

fontSize实际的参数是pointSize

iOS像素和点的转换

iPhone 4、5、6共用一套字体大小规范。

iPhone6 plus在放大模式下的字体正好是在此基础上放大了1.5倍: