美文网首页
iOS 字体pt和px的转换

iOS 字体pt和px的转换

作者: whlpkk | 来源:发表于2017-05-11 11:14 被阅读2556次

    iOS中,[UIFont systemFontOfSize:18],这里的18,单位是pt。日常工作中,美工给我们的UI图中表面的字号大小,例如36,单位是px。也即像素大小。下面就来讲一下px和pt的转换。

    首先讲两个基本概念:
    物理像素:屏幕的实际分辨率,例如4s的640*960、5s的640*1136等。
    逻辑像素:物理分辨率是硬件所支持的,逻辑分辨率是软件可以达到的。例如4s的320*480、5s的320*568等。

    pt: iOS中的字号单位
    px: 美工给的字体像素大小
    dpi : 每英寸的像素

    px = pt * DPI / 72,所以推理得出 pt = px * 72 / DPI
    如果px是物理像素下的大小,则算出的pt也是物理像素。但是iOS的字号是逻辑像素下的大小。所以需要先将px转换为逻辑像素,即如果是retain屏,例如@2x的,则物理像素px = 逻辑像素px*2。
    这里同理,如果美工给你的是2倍图等,要先转成逻辑像素,即px/2。然后算出的pt就是逻辑像素下的字号大小

    Photoshop 默认的DPI就是72
    所以也就是说,一般美工给的图,如果字体大小是px,2倍图,则iOS中的字号 pt = px / 2。

    eg: 美工给了你一张640*1136的5s用图,并标注其中一行字体大小为28px。首先先将物理像素转换为逻辑像素,即 28 / 2 = 14px,然后带入公式,pt = 14 * 72 / DPI,将DPI = 72带入公式,得pt = 14,所以可知,对应iOS的字体大小即为14号字体。

    相关文章

      网友评论

          本文标题:iOS 字体pt和px的转换

          本文链接:https://www.haomeiwen.com/subject/trcotxtx.html