如何正确得理解TT字体中的EM_Size
2016-06-28 17:10
267 查看
如何理解EM_Size
http://blog.csdn.net/goodboychina/article/details/51777361Freetype文档中将EM描述为字体设计者假想的正方形。
EM_Size是边长,单位是font unit。
并给出了一个font unit到pixel的换算公式:
pixel_size = point_size * resolution / 72 pixel_coord = grid_coord * pixel_size / EM_size
乍一看,这个公式具有很强的迷惑性。一直无法理解这个公式为什么是这样子的。
FontCreatorManual中也给出了一个换算公式,形式不大一样:
PointSize * resolution / ( 72 points per inch * units_per_em )
对比这两种形式的换算公式,突然灵光一闪:
或许这些公式并不是最初的形式,而是经过整理了的。
更容易理解的形式应该是:
PixelSize = ((FontUnit / EM_Size) * PointSize) * (resolution / 72)
解释:
FontUnit:轮廓的x、y坐标值,单位font unit。
EM_Size:EM的边长,单位:font unit。字体设计人员设置。
PointSize:字号,单位:磅 = 1/72英寸。它表示的是EM的大小。
resolution:显示分辨率(dot per inch),单位:dot/inch。
注:font unit是抽象出来的单位,整数表示。
注:dot与point不是一个概念,point是长度单位,等于1/72英寸,dot是抽象的点。对于显示器来说说像素点,对于打印机来说是一个小墨点。
换算公式的作用是给定字号PointSize和轮廓的FontUnit坐标,计算出轮廓的PixelSize坐标。
相关文章推荐
- flash 系统字体显示问题
- C#及WPF获取本机所有字体和颜色的方法
- 谈谈网页设计中的字体应用Font Set
- PDF里的文字显示模糊的解决方法
- 保证可下载的漂亮动作2008奥运比赛项目字体
- C#实现字体旋转的方法
- 网页设计中的 serif 和 sans-serif字体应用
- 优化WordPress的Google字体以加速国内服务器上的运行
- C#实现缩放字体的方法
- ExtJs默认的字体大小改变的几种方法(自己整理)
- 一个实现字体大中小方法的JavaScript代码
- jquery实现实时改变网页字体大小、字体背景色和颜色的方法
- php修改NetBeans默认字体的大小
- 如何解决修改StaticText的字体
- asp.net调用系统设置字体文本框的方法
- C#读取系统字体颜色与大小的方法
- linux BASH shell下设置字体及背景颜色
- 在shell或者perl中改变字体或背景的颜色
- 详解Bootstrap glyphicons字体图标
- BootStrap glyphicons 字体图标实现方法