我不能理解Type1字体规范中的蓝标部分。你能用执行或停止过冲抑制的例子给我解释一下吗?
发布于 2012-01-24 17:56:37
Adobe Systems在一书中介绍了/BlueScale的值。请参见第5.6节 BlueScale (第45页),其中提供了整个页面来描述BlueScale值。
简单地说,BlueScale告诉字体渲染器应该关闭过冲抑制的字体比例。过冲指的是字形形状的一个特征,它落入字形设计中重要的水平带中。类型1格式将这些带表示为对齐区。对齐区可用于基线或x高度。过冲抑制意味着字体渲染器应该渲染在对齐区中以相同像素高度结束的所有字体特征。
过冲抑制是Type1字体格式中的几个提示之一,它允许字体渲染器在没有太多设备像素来渲染字形形状时生成好看的字形,因此不可能保持字形轮廓的细微差别的保真度。通过确保对齐区中的所有特征都以相同的像素高度渲染,渲染器可以提供一致性(如果不是保真度)。在字形较大或设备像素较小的情况下,另一方面,有足够的像素来保持字形轮廓的保真度,因此没有必要抑制过冲。
/BlueScale值是一个根据设备像素给出一个字符单位(其中1em是1000个字符单位)大小的数字。如果字符单位的大小大于此值,则关闭过冲抑制。如果字符单位的大小较小,则启用过冲抑制。如果字符单位的大小恰好等于BlueScale值,Type Font1格式不清楚会发生什么。
第5.6节提供了在300dpi设备上设置BlueScale值的建议。约束条件是:
BlueScale = (pointsize - 0.49) / 240,即将BlueScale设置为允许一个整数点大小接收过冲抑制的值,并且下一个最大整数点大小关闭过冲过冲(pointsize - 0.49) * (maximum alignment zone height) < 240,即将BlueScale设置为足够小的值,以便在字体中的最大对齐区变得一个设备像素高之前结束过冲抑制。值240基于每英寸72个PostScript语言点单位和每英寸300个设备像素以及每电子正方形1000个字符单位的组合。1点em正方形每点具有1000个字符单位,或72*1000个字符单位/英寸,或72*1000/300个字符单位/设备像素,= 240个字符单位/设备像素。
第5.6节给出了两个示例BlueScale值,用于300dpi设备上的字体点数:
过冲抑制还受/BlueShift参数的影响,如Type1字体格式的第5.7节BlueShift中所述。细节超出了本答案的范围;您真的必须阅读Type1书本身。
第5.6节Type1字体格式的BlueScale稍微清楚地解释了所有这一切,但并不完全严谨。这不是一个简单的话题。如果你真的想理解这些材料,阅读Type1字体格式书的全部内容,加上的坐标系和字体部分,再加上自己练习公式是很重要的。
https://stackoverflow.com/questions/8693290
复制相似问题