CN101331520A - 字体提示中的笔画对比 - Google Patents
字体提示中的笔画对比 Download PDFInfo
- Publication number
- CN101331520A CN101331520A CNA2006800476558A CN200680047655A CN101331520A CN 101331520 A CN101331520 A CN 101331520A CN A2006800476558 A CNA2006800476558 A CN A2006800476558A CN 200680047655 A CN200680047655 A CN 200680047655A CN 101331520 A CN101331520 A CN 101331520A
- Authority
- CN
- China
- Prior art keywords
- stroke
- font
- convergent
- divergent
- contrast
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 claims description 30
- 210000003813 thumb Anatomy 0.000 claims 5
- 238000013459 approach Methods 0.000 abstract description 2
- 238000009877 rendering Methods 0.000 abstract 1
- 238000004891 communication Methods 0.000 description 8
- 230000015654 memory Effects 0.000 description 8
- 238000012545 processing Methods 0.000 description 7
- 238000004590 computer program Methods 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 5
- 238000007639 printing Methods 0.000 description 5
- 238000013461 design Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000012423 maintenance Methods 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000005055 memory storage Effects 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 230000002093 peripheral effect Effects 0.000 description 2
- 230000002194 synthesizing effect Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000004304 visual acuity Effects 0.000 description 2
- 230000000739 chaotic effect Effects 0.000 description 1
- 238000010425 computer drawing Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T3/00—Geometric image transformations in the plane of the image
- G06T3/40—Scaling of whole images or parts thereof, e.g. expanding or contracting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/203—Drawing of straight lines or curves
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
- G06T9/20—Contour coding, e.g. using detection of edges
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Controls And Circuits For Display Device (AREA)
- Image Generation (AREA)
Abstract
使用编程性约束或“提示”,对一定范围的字体尺寸与显示分辨率保持笔画对比。“字体提示”方法的一个实现实施对笔画粗细的调整,使得对于足以呈现笔画对比的字体尺寸与显示分辨率保持笔画对比。字体提示指令确定笔画对比阈值,它可用于判定在呈现字形时是保持还是忽略笔画对比。在一个实现中,笔画对比阈值基于关联于字样的一或多个笔画对比关系。在其它实现中,笔画对比阈值基于最小尺寸阈值或小写/大写笔画对比关系。
Description
背景
许多计算系统可通过在屏幕或某种其它媒体诸如打印页上显示文本来向用户演示信息。人类视觉系统的物理特性以及各种类型与质量的电子显示或打印技术在类型设计者在开发可演示文本的字样时对类型设计者提出独特的挑战。
在印刷术中,字样由一组协调的字符设计组成。字样通常由字母、数字、标点符号、意符和符号(统称为字符或字形)组成。Arial、Times New Roman、Verdana和Georgia是四种字样的示例。在传统上,词语“字体(font)”表示特定尺寸(通常以点为单位测量)、粗细(例如,细体、印刷体、粗体、黑体)和方向(例如,罗马体、斜体、倾斜)的全部字样。对于一种给定的字样,每一字符一般对应于单个字形,尽管一些字样的某些字符可包括多个字形。
笔画是许多字形的主要特征。例如,可将表示字符‘E’的字形视为包括三个水平笔画(也称为“水平线(crossbar)”)和一个垂直笔画。
在许多字样中,各笔画可具有不同的相对宽度或粗细。笔画粗细的关系称为“笔画对比(stroke contrast)”。笔画对比有助于字样的可读性与美感。对于现代类型设计者的一个挑战是,以对于一定范围的字体尺寸与显示分辨率最佳保持笔画对比的方式来显示给定字样的字形。
概述
本文描述和要求保护的实现使用编程性约束或“提示”来帮助对于一定范围的字体尺寸和显示分辨率保持笔画对比。“字体提示”方法的一个实现对笔画粗细实施调整使得对于足以呈现笔画对比的字体尺寸与显示分辨率保持笔画对比。或者,如果字体尺寸与显示分辨率不足以呈现给定字体的所有必需的笔画粗细,则可平衡某些笔画粗细以适应这些尺寸与分辨率限制同时还可改变其它笔画粗细以保持至少部分笔画对比。字体提示指令确定笔画对比阈值,它可用于决定在呈现字形时是保持还是忽略笔画对比。在一个实现中,笔画对比阈值基于关联于字样的一或多个笔画对比关系。在另一实现中,笔画对比阈值基于最小尺寸阈值。在又一实现中,笔画对比阈值基于小写/大写笔画对比关系。
在一些实现中,提供作为计算机程序产品的制品。计算机程序产品的一个实现提供计算机系统可读且编码计算机程序的计算机程序存储介质。计算机程序产品的另一实现可在包含在载波中、由计算系统使用并编码计算机程序的计算机数据信号中提供。在此还描述并叙述了其它实现。
提供本概述以简化的形式介绍下面在详细说明中进一步描述的一些概念。本概述不是要标识要求保护主题的关键特征或本质特征,也不应当用于限制要求保护主题的范围。
附图简述
图1例示示例性字体提示模块和所得到的字符显示。
图2例示呈现给定字体中的字形的示例性操作。
图3例示通过笔画对比保持字体提示定义字样的示例性操作。
图4例示呈现使用笔画对比保持字体提示呈现字体中的字形的示例性操作。
图5例示可在实现所述技术时使用的示例性系统。
详细说明
可缩放的轮廓字体被定义为用坐标、数学曲线和/或其它参数描述的连续形或轮廓状。通常,字形可通过高分辨率表示来定义,轮廓是其中的一示例。其它高分辨率表示可非限制性地包括分类的轮廓线、组件元素、位图、数学描述及其它表示。
在字体定义中描述的基本轮廓可在显示或输出(打印)单独字形时从存储器(例如字体文件或字体高速缓存)中读出。字体定义可基于字体设计单位(或“字体单位”)的具有x与y轴的笛卡儿格网,尽管也可使用其它坐标框架。使用这样的字体单位,指定的字样中字形的基本轮廓可与所显示的字形尺寸或输出设备的分辨率无关地进行描述。
当要生成一个字形时,缩放基本轮廓至指定的尺寸且随后用于在显示器或硬拷贝输出设备上以指定的尺寸创建离散的点光栅(例如像素的位图)。如果以过分简单的方法产生这样的位图,诸如简单地关闭其中央位于经缩放的轮廓之内的每一像素或者打印机单元,则会出现许多视觉上令人分心的伪像,诸如特征未对齐以及形状的中断(称为“漏失(drop-out)”)。例如,如果缩放字形并以小尺寸呈现和/或呈现至低分辨率显示器,则通过像素开启/关闭表示字形将仅粗略地逼近经缩放的轮廓,因为所得到的像素太大且本质上是离散的而难以遵从经缩放的轮廓。
因此,可使用称为“字体提示(font hinting)”的额外处理来优化对给定尺寸与显示分辨率的字形的呈现。字体提示代码可被包括在每一单独字形的字体定义中,或者与其相关联。字体提示为光栅图象处理器(RIP)提供信息以增强字体的光栅化。例如,字体提示可用于使经缩放的轮廓变形以改进呈现。字体提示可用于(1)保证应当等粗的笔画显得等粗;(2)抑制不需要的过冲(例如,在非有意地将一个圆形字母如“O”缩放为显得比扁平字母如“M”高的时候);(3)对齐不同字形上应当具有相同高度的特征;(4)保持干线之间的空间开放(例如“m”的垂直笔画之间的空间应当可见);(5)强制一组平行笔画之间的间隔一致;以及(6)补偿光栅化算法中的错误,诸如引起漏失的错误。
图1例示示例性字体提示模块100以及得到的字符显示102、104、106与108。如在字符显示102中可见,字符“H”包括两个主垂直笔画110和112以及一个水平笔画114(也称为“水平线”)。在字符显示102中的字符以特定的尺寸与分辨率显示并且表现出笔画对比,其中与水平笔画114(例如1像素)相比,垂直笔画110与112较粗或者具有较大的笔画粗细(例如3像素)。字体提示模块100接收指定字体的字符“H”的经缩放的轮廓并且执行字体提示指令来使经缩放的轮廓变形以便增强呈现。
字符显示104以比字符显示102小的尺寸且更高的分辨率显示字符“H”。不过,该尺寸与显示分辨率的组合能够保持与在字符显示102中看到的相同笔画对比——3像素的垂直笔画与1像素的水平笔画。字体提示模块100接收指定字体的字符“H”的经缩放的轮廓并且执行字体提示指令来使该定义变形以适应特定的尺寸与分辨率。
相比之下,字符显示106也以比字符显示102小的尺寸显示字符“H”,但其分辨率比字符显示104低。单靠缩放,字符的某些方面将不会映射到字符显示106中显示的“H”。而是,垂直笔画看上去比在字符显示104时高,在垂直方面上偏离中心,并且相对于衬线特征偏离中心,而水平笔画将相对于垂直笔画的长度偏离中心。因此,对于该尺寸与显示分辨率的组合,字体提示模块100执行字体提示指令来使该定义变形以调整这些特征并且通过在垂直与水平笔画的粗细方面施加某种差异来保持部分笔画对比。尽管笔画对比与字符显示102和104不同,但在字符显示106中仍可感知,因而保持了字样的可读性与个性。
然而,字符显示108以与字符显示104和106相似的尺寸显示字符“H”,但其分辨率比字符显示106更低。在该配置中,字体提示模块100已经无法保持笔画对比,这从垂直与水平笔画一致的笔画粗细来看是显然的。
因此,字形的尺寸和显示器的分辨率可引起给定字体的所显示字形的错误。具体地,这些参数会破坏某些字体的笔画对比。因此,字体提示模块100执行字体提示指令来使字形的经缩放的轮廓变形,以便尽可能地保持笔画对比。
图2例示呈现给定字体的字形的示例性操作200。定义操作202定义字样。如所述的,字样一般定义为包括一组坐标,该组坐标定义其字符集中每一字形的基本轮廓。在一些实现中,字样中各个字形的定义可由印刷工人手动定义。在其它实现中,各个字形的定义可使用字形示例的计算机实现分析或者基本轮廓的直接计算机化生成来自动确定。还有其它实现可将各个字形或字体的手动定义与计算机化定义两者结合起来。
另一个定义操作204定义使给定尺寸与显示分辨率的字形的经缩放的轮廓变形的字体提示指令。例如,字体提示指令可以在呈现时执行操作以移动“H”的经缩放的轮廓来确保垂直笔画具有一致的宽度。在一个实现中,定义操作204在给定字样(或其部分)的字体定义中记录笔画粗细的测量。可分析这些测量以确定关联于字样的一或多个笔画对比关系。
读操作206读取字形的字体定义与字体提示代码。在一个实现中,字体定义可存储在硬盘上的字体库中。或者,字体定义可被高速缓存在存储器中供每次呈现字形时重新使用。
缩放操作208缩放为字形指定的基本轮廓。在一个实现中,基本轮廓是使用与笛卡儿平面对齐的坐标以字体单位来定义的,并且缩放可使用对这些坐标的变换来完成。缩放操作208可由计算机或计算机化设备的应用程序、操作系统或者其它系统中关联于字体提示模块的缩放模块来执行。一个示例性缩放算法在下面示出:
其中Xn表示基于字体单位的笛卡儿格网中关联于字形的X坐标,X′n表示像素坐标系统中关联于字形的相应的经缩放的X坐标,尺寸表示经缩放的字形的点尺寸,分辨率表示输出设备的分辨率,粒度表示关联于坐标格网(即全身正方形(em square))的粒度度量,按照字体单位每全身(em)。因子‘72’反映每英寸的点数。
指令操作210对字形的经缩放的轮廓执行字体提示代码。在一个实现中,使经缩放的轮廓变形以遵守字体提示代码基于关联于字样的一或多个笔画对比关系、经缩放的字形尺寸和显示设备的分辨率计算的垂直和垂直笔画宽度。指令操作210的示例实现的细节参考图4提供。如果按照经缩放的字形的尺寸和显示分辨率是可能的,则在指令操作210中提供的字体提示的结果是表现出一些笔画对比的经缩放的轮廓。字体提示代码的其它方面可改变经缩放的字形的其它特征,包括修复漏失、过冲等。
呈现操作212基于变形后的经缩放的轮廓生成字形的位图。例如,其中心位于变形后的经缩放的轮廓内的像素可关闭(例如暗),同时其中心位于变形后的经缩放的轮廓之外的像素可开启(例如亮)。应当理解,各个像素的状态也可以是渐进的(例如较亮或较暗)而不只是开或关。也有可能使用替换规则来生成位图。例如,可将各个像素细分为子像素(例如像素的不同颜色通道),使得各个子像素被开或关(或者较亮或较暗)。呈现操作212可由计算机或计算机化设备的应用程序、操作系统或其它系统中的呈现模块执行。
图3例示用笔画对比保持字体提示定义字样的示例性操作300。定义操作302定义给定字样的各个字形的基本轮廓。如前所述,基本轮廓可使用坐标、曲线和/或其它参数来定义。在一个实现中,手或计算机绘制的字形基本轮廓可数字化为字体单位并且存储在字体文件中。然而,各个字形的基本轮廓也可从计算机化模型或图象生成。
粗细操作304确定字样中代表性字形或多个字形的垂直笔画的笔画粗细(例如宽度)和水平笔画的笔画粗细。在一个实现中,在一系列预处理步骤中,自动提示器程序建立一个数据结构来表示字形中标识的所有笔画(垂直、水平和斜向)的组成部分。自动提示器程序生成轮廓的线段列表,按照某种度量,这些线段应该足够直以成为笔画的边。自动提示器程序随后标识实质上反向平行的边和连续边的对(例如在字形“H”的垂直笔画的一侧上,边被水平线“中断”)以建立表示各个笔画的数据结构的一部分。每一边与代表性控制点相关联,按照某种印刷上的试探过程,控制点最佳地描述该边。例如,在数字上完全笔直的边上,仅需要两个控制点,并且任一控制点可起到代表性控制点的用途。相比之下,例如在略微凹入的边上,在最大凹度的地方的控制点可标识为用于所述用途。
随后通过选择笔画每一侧上的表示性控制边、取控制边上代表性控制点之间的欧几里德距离并且将该距离投影到垂直于笔画的主方向的法向量上来确定距离。例如,对于标识为垂直笔画(方向为y方向)的笔画,用于确定笔画粗细的两个控制点不必彼此水平相对,因此距离被投影到水平法线(即x方向)上。
计算操作306处理笔画粗细测量。在一个实现中,平均在单个字样上的垂直笔画粗细以产生合成垂直笔画粗细,并且平均在该单个字样上的水平笔画粗细以产生合成水平笔画粗细。在一替换实现中,使用来自一或多个参考字形的垂直和水平笔画粗细来表示合成的垂直和水平笔画粗细。在又一替换实现中,可使用每一各个字形的平均垂直和水平笔画粗细作为该字形的合成垂直与水平笔画粗细。
确定操作308使用合成笔画粗细来确定给定字样或字样中各个字形的笔画对比关系。例如,在字样“Verdana”中,主垂直笔画以198字体单位的粗细设计而主水平笔画以176字体单位的粗细设计。使用将较细笔画作为较粗笔画的百分比的笔画对比关系,所得到的笔画对比关系是89%。也可使用其它形式的笔画对比关系,包括比率、斜率等,以及将较粗笔画粗细作为较细笔画粗细的百分比的关系。存储操作310记录关联于字样和/或字样的各个字形的一或多个笔画对比关系。其它参数也可与字样和/或各个字形相关联,包括可在字体提示过程中使用的分辨率阈值、最小尺寸阈值、笔画对比关系等等。
图4例示呈现使用笔画对比保持字体提示呈现字体中的字形的示例性操作400。当选择一个字形来输出时,在读操作402中,从字体库(或高速缓存)读出基本字形轮廓的字体定义以及相关联的字体提示指令和其它参数。缩放操作404基于指定的字形尺寸与显示设备的分辨率缩放基本轮廓。
舍入操作406以像素测量经缩放的字形轮廓的笔画粗细(即垂直或水平)的较大者并且将测得的笔画粗细舍入到最接近的像素或者某种像素相关的舍入点。调整操作410按照笔画粗细关系对舍入的较大笔画粗细进行调整,并舍入以将经调整的笔画粗细度量确定为笔画度量阈值。例如,在一个实现中,如果字形的舍入垂直笔画粗细为5像素(笔画粗细的较粗者)并且笔画对比关系为89%,则经调整的笔画粗细度量为:
经调整的笔画对比度量=舍入(5像素的89%)
=舍入(4.45像素)
=4像素
判定操作412测试经缩放的轮廓是否满足笔画对比阈值。例如,如图4所示,如果经调整的笔画粗细度量与较大笔画粗细相差至少指定的分辨率阈值如一像素,则经缩放的轮廓满足笔画对比阈值。判定操作412有效地标识字形在笔画对比阈值的哪一侧。在笔画对比阈值的一侧上,保持笔画对比;在笔画对比阈值的另一侧上,忽略笔画对比。
在上面具有一像素的指定分辨率阈值的示例中,四像素的经调整笔画粗细度量与较大笔画粗细(五像素)相差至少一像素(示例性分辨率阈值)。因此,满足笔画对比阈值,并且分配操作414将经调整的笔画粗细度量分配给字形的较小笔画粗细,从而保持笔画对比。否则,如果经调整的笔画粗细度量没有与较大笔画粗细相差至少一像素,诸如在下面描述的情形中:
经调整的笔画对比度量=舍入(5像素的91%)
=舍入(4.55像素)
=5像素
则不满足笔画对比阈值,并且另一个分配操作416将较大笔画粗细分配给字形的较小笔画,从而牺牲了笔画对比。
字体提示操作418使较小笔画的经缩放的轮廓变形以具有所分配的笔画粗细。如果分配了经调整的笔画粗细度量(例如在分配操作414中),则基于该变形,较小的笔画表现出与较大笔画相差至少分辨率阈值的对比。相比之下,如果分配了较大的笔画粗细(例如在分配操作416中),则基于该变形,较小的笔画不表现出与较大笔画的对比。
可使用各种不同方法来确定笔画对比阈值,诸如上面所述的经调整笔画对比度量方法。在一个替换实现中,笔画对比阈值基于最小尺寸阈值(诸如最小像素每全身阈值)。如果经缩放的字形尺寸大于或等于最小尺寸阈值,则将保持笔画对比。在一些印刷应用中,像素每全身尺寸可表示输出设备环境的真实特性。例如,42像素每全身对应于300点每英寸(dpi)输出设备(例如激光或喷墨打印机)上的10个点,它表示典型的文本字体尺寸和低端输出设备的典型分辨率两者。因此,例如,印刷工程师可为这样的输出设备设置42像素每全身的最小尺寸阈值,使得任何要呈现为满足最小尺寸阈值(例如大于或等于最小尺寸阈值)的字形被呈现为保持笔画对比(例如,诸如通过使用分配操作414)。对比之下,任何要呈现为不满足最小尺寸阈值(例如小于最小尺寸阈值)的字形被呈现为忽略笔画对比(例如,诸如通过使用分配操作416)。
在又一实现中,可控制大写和小写字符的笔画之间的笔画对比。对于一些字样,大写字符的主垂直笔画可大于相应的小写字符的主垂直笔画。例如,在Verdana中,字符的大写主垂直笔画被设计为具有198字体单位的粗细,然而,同一字符的小写主垂直笔画被设计为具有188字体单位的粗细,呈现95%的大写/小写笔画对比关系。
在某些输出上下文中,大写主笔画可用比小写主笔画低的像素每全身来满足笔画对比阈值,得到在一定的尺寸/分辨率条件下表现出笔画对比的大写字符,而在相同的尺寸/分辨率条件下不表现出笔画对比的小写字符。该情形可导致不希望的且引起混乱的效果,其中大写字符显得比小写字符明显地较宽或较粗。
因此,在该实现中,基于大写/小写笔画对比关系确定笔画对比阈值。如果字形的经缩放的轮廓满足笔画对比阈值(例如,使用与参考判定操作412描述的相似测试;最小像素每全身尺寸,或者某种其它方法),则经缩放的字形被呈现为对于大写和小写字符都保持笔画对比(例如,诸如通过使用分配操作414)。对比之下,如果经缩放的字形不满足笔画对比阈值,则经缩放的字形被呈现为忽略笔画对比但保持大写与小写字符之间的一致性。因此,在该情形中,计算字样中大写字符与小写字符之间的合成垂直和水平笔画粗细,并且将合成垂直笔画粗细应用于大小写字符的垂直笔画,以及将合成水平笔画粗细应用于大小写字符的水平笔画。应当理解,合成笔画粗细可用各种方法计算,包括平均大写和小写笔画粗细,比例分配大写和小写笔画粗细等等。
用于实现本发明的图5的示例性硬件和操作环境包括计算机20形式的通用计算设备,计算机20包括处理单元21、系统存储器22和将包含系统存储器在内的各种系统组件耦合至处理单元21的系统总线23。可以仅有一个处理器单元21,也可以有不止一个处理器单元21,使得计算机20的处理器包括单个中央处理单元(CPU),或者包括多个处理单元,它们统称为并行处理环境。计算机20可以是常规计算机、分布式计算机或者任何其它类型的计算机;本发明不受此限制。
系统总线23可以是任何若干类型的总线结构,包括存储器总线或存储器控制器、外围总线、交换网、点对点连接以及使用任何各种总线架构的局部总线。系统存储器还可简称为存储器,并且包括只读存储器(ROM)24和随机存取存储器(RAM)25。基本输入/输出系统(BIOS)26被存储在ROM 24中,它包含帮助计算机20内的元件之间诸如在启动时传送信息的基本例程。计算机20还包括读写硬盘(未示出)的硬盘驱动器27,读写可移动磁盘29的磁盘驱动器28,以及读写可移动光盘31如CD ROM或其它光介质的光盘驱动器30。
硬盘驱动器27、磁盘驱动器28和光盘驱动器30分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。这些驱动器及其相关联的计算机可读介质为计算机20提供计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。本领域技术人员应当了解,可存储计算机能访问的数据的任何类型的计算机可读介质可在示例性操作环境中使用,诸如磁带盒、闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等。
可在硬盘、磁盘29、光盘31、ROM 24或RAM 25中存储许多程序模块,包括操作系统35、一或多个应用程序36、其它程序模块37以及程序数据38。用户可通过诸如键盘40和定点设备42等输入设备将命令和信息输入到个人计算机20中。其它输入设备(未示出)可包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备常常通过耦合到系统总线的串行端口接口46连接到处理单元21,但可通过其它接口如并行端口、游戏端口或通用串行总线(USB)来连接。监示器47或其它类型的显示设备也可通过接口诸如视频适配器48连接到系统总线23。除了监示器,计算机一般包括其他外围输出设备(未示出),诸如扬声器和打印机。
计算机20可使用至一或多个远程计算机诸如远程计算机49的逻辑连接在网络化环境中运行。这些逻辑连接是通过耦合到计算机20或作为其一部分的通信设备来实现的;本发明不限于特定类型的通信设备。远程计算机49可以是另一个计算机、服务器、路由器、网络PC、客户机、对等设备或其它普通网络节点,并且一般包括许多或全部上面相对于计算机20所述的元件,尽管在图5中仅例示了存储器存储设备50。图5描绘的逻辑连接包括局域网(LAN)51和广域网(WAN)52。这样的网络环境在办公室网络、企业级计算机网络、内联网或因特网(它们都是网络类型)中是常见的。
当在LAN网络连接的环境中使用时,计算机20通过网络接口或适配器53(它是一种类型的通信设备)连接到局域网51。当在WAN网络连接环境中使用时,计算机20一般包括调制解调器54、网络适配器、一种类型的通信设备、或者用于在广域网52上建立通信的任何其它类型的通信设备。调制解调器54可以是内置或外置的,通过串行端口接口46连接到系统总线23。在网络化环境中,相对于个人计算机20描绘的程序模块或其部分可存储在远程存储器存储设备中。要了解,所示的网络连接是示例性的,并且可使用在计算机之间建立通信链接的其它装置和通信设备。
在示例性实现中,缩放模块、字体提示模块、呈现模块和其它模块可包含在由存储在存储器404和/或存储设备408与410中并且由处理单元402处理的指令中。字体定义、字体提示代码、笔画对比关系、分辨率阈值、最小尺寸阈值、笔画对比阈值、经缩放的字体轮廓、所呈现的位图以及其它数据可存储在存储器404和/或存储设备408与410中。
在此描述的技术实现为一或多个系统中的逻辑操作和/或模块。逻辑操作可实现为一系列在一或多个计算机系统中执行的处理器实现的步骤,以及实现为一或多个计算机系统中的互连机器或电路模块。同样,可按照模块执行或影响的操作提供各种组件模块的描述。所得到的实现是选择性的,取决于实现所述技术的底层系统的性能要求。因此,构成在此所述技术的实施例的逻辑操作可不同地称为操作、步骤、对象或模块。而且,应当理解,可按任何顺序执行逻辑操作,除非明确地要求或者特定顺序为权利要求语言在本质上必需。
上述描述、示例和数据提供对本发明示例性实施例的结构和用途的完整描述。尽管上面已经用某种程度的特殊性或者参考一或多个单独的实施例描述了本发明的各种实施例,但本领域的技术人员可在不脱离本发明的精神或范围的情况下对所公开的实施例作出众多更改。具体地,应当理解,所述技术可独立于个人计算机来使用。因此构想了其它实施例。包含在上述说明中并且在附图中描述的全部内容应当解释为仅说明特定实施例的例示而且不是限制性的。在不脱离所附权利要求书定义的本发明的基本元素的情况下,可在细节或结构方面作出改变。
尽管已经以专用于结构特征和/或方法学领域的语言描述了本主题,但要理解,所附权利要求书定义中的主题不必受限于上述这些特定特征或动作。相反,上述特定特征和动作是作为实现要求保护主题的示例形式来公开的。
Claims (20)
1.一种控制字样的字形中笔画对比以便由具有一显示分辨率的输出设备以指定字形尺寸演示的方法,其中,所述字形具有定义的基本表示,所述方法包括:
按照所述指定的字形尺寸与所述显示分辨率,缩放(206)所述字形的基本表示;
基于所述指定的字形尺寸与所述显示分辨率,确定(208)笔画对比阈值;
如果所述字形的经缩放的表示满足所述笔画对比阈值,则使所述经缩放的表示变形(210)以保持所述字形中的笔画对比;以及
如果所述字形的经缩放的表示不满足所述笔画对比阈值,则使所述经缩放的表示变形(210)以忽略所述字形中的笔画对比。
2.如权利要求1所述的方法,其特征在于,还包括:
确定关联于所述字样的笔画对比关系,其中,所述笔画对比阈值基于所述笔画对比关系。
3.如权利要求2所述的方法,其特征在于,所述笔画对比关系将所述字形的基本表示的垂直笔画粗细与所述字形的基本表示的水平笔画粗细联系起来。
4.如权利要求1所述的方法,其特征在于,所述确定操作包括:
确定关联于所述字样的笔画对比关系;以及
选择所述字形的经缩放的表示的垂直笔画粗细或所述字形的经缩放的表示的水平笔画粗细中的较大笔画粗细;
将所述较大笔画粗细舍入到最接近的像素相关舍入点;以及
基于所述笔画对比关系调整所述舍入的较大笔画粗细以产生经调整的笔画粗细度量作为所述笔画对比阈值。
5.如权利要求4所述的方法,其特征在于,如果经调整的笔画粗细度量与所述舍入的较大笔画粗细相差至少分辨率阈值,则确定所述字形的经缩放的表示满足所述笔画对比阈值。
6.如权利要求4所述的方法,其特征在于,所述使经缩放的表示变形以保持所述字形中的笔画对比的操作包括:
选择所述字形中具有所述字形的经缩放的表示的垂直笔画粗细或所述字形的经缩放的表示的水平笔画粗细中较小笔画粗细的笔画;以及
使所选择的笔画变形以具有所述经调整的笔画粗细度量的笔画粗细。
7.如权利要求4所述的方法,其特征在于,如果所述经调整的笔画粗细度量没有与所述舍入的较大笔画粗细相差至少分辨率阈值,则确定所述字形的经缩放的表示不满足所述笔画对比阈值。
8.如权利要求4所述的方法,其特征在于,所述使经缩放的表示变形以省略所述字形中的笔画对比的操作包括:
选择所述字形中具有所述字形的经缩放的表示的垂直笔画粗细或所述字形的经缩放的表示的水平笔画粗细中较小笔画粗细的笔画;以及
使所选择的笔画变形以具有所述较大笔画粗细的笔画粗细。
9.如权利要求1所述的方法,其特征在于,还包括:
为所述输出设备呈现所述字形。
10.如权利要求1所述的方法,其特征在于,还包括:
确定关联于所述字样的最小尺寸阈值,其中所述笔画对比阈值基于所述最小尺寸阈值。
11.如权利要求1所述的方法,其特征在于,还包括:
确定将所述字样的大写字符的笔画粗细与所述字样的小写字符联系起来的笔画对比关系,其中,所述笔画对比阈值基于所述笔画对比关系。
12.如权利要求11所述的方法,其特征在于,所述笔画对比关系将所述字形大写形式的基本表示的笔画粗细与所述字形小写形式的基本表示的笔画粗细联系起来。
13.如权利要求1所述的方法,其特征在于,所述确定操作包括:
确定将所述字样的大写字符的笔画粗细与所述字样的小写字符的笔画粗细联系起来的笔画对比关系;以及
选择所述字形的经缩放的表示的垂直字符笔画粗细或所述字形的经缩放的表示的水平字符笔画粗细中的较大字符笔画粗细;
将所述较大笔画粗细舍入到最接近的像素相关舍入点;以及
基于所述笔画对比关系调整所述舍入的较大笔画粗细以产生经调整的笔画粗细度量作为所述笔画对比阈值。
14.如权利要求13所述的方法,其特征在于,如果所述经调整的笔画粗细度量与所述舍入的较大笔画粗细相差至少分辨率阈值,则确定所述字形的经缩放的表示满足所述笔画对比阈值。
15.如权利要求13所述的方法,其特征在于,所述使经缩放的表示变形以保持所述字形中的笔画对比的操作包括:
选择所述字形中具有所述字形的经缩放的表示的垂直笔画粗细或所述字形的经缩放的表示的水平笔画粗细中较小笔画粗细的笔画;以及
使所选择的笔画变形以具有所述经调整的笔画粗细度量的笔画粗细。
16.如权利要求13所述的方法,其特征在于,如果所述经调整的笔画粗细度量没有与所述舍入的较大笔画粗细相差至少分辨率阈值,则确定所述字形的经缩放的表示不满足所述笔画对比阈值。
17.如权利要求13所述的方法,其特征在于,所述使经缩放的表示变形以忽略所述字形中的笔画对比的操作包括:
基于所述字形大写形式的经缩放的表示的笔画粗细与所述字形小写形式的经缩放的表示的笔画粗细两者,计算合成笔画粗细;以及
使所述字形大写形式的经缩放的表示和所述字形小写形式的经缩放的表示两者的笔画变形以具有所述合成笔画粗细。
18.如权利要求17所述的方法,其特征在于,所述计算合成笔画粗细的操作包括:
平均所述字形大写形式的经缩放的表示的笔画粗细与所述字形小写形式的经缩放的表示的笔画粗细。
19.一种控制字样的字形中的笔画对比以便由具有一显示分辨率的输出设备演示的系统,其中所述字形具有定义的基本表示,所述方法包括:
缩放模块(208),按照指定的字形尺寸与所述显示分辨率缩放所述字形的表示;以及
字体提示模块(100),基于所述指定的字形尺寸和所述显示分辨率确定笔画对比阈值,如果所述字形的经缩放的表示满足所述笔画对比阈值,则使所述经缩放的表示变形以保持所述字形中的笔画对比,以及如果所述字形的经缩放的表示不满足所述笔画对比阈值,则使所述经缩放的表示变形以忽略所述字形中的笔画对比。
20.一种控制字样的字形中的笔画对比以便由具有一显示分辨率的输出设备演示的系统,其中所述字形具有定义的基本表示,所述方法包括:
缩放模块(208),按照指定的字形尺寸与所述显示分辨率缩放所述字形的表示;
字体提示模块(100),基于所述指定的字形尺寸与所述显示分辨率确定笔画对比阈值,其中所述笔画对比阈值基于将来自一或多个基本表示的笔画粗细联系起来的笔画对比关系;以及
呈现模块(212),如果所述字形的经缩放的表示满足所述笔画对比阈值,则为所述输出设备生成所述经缩放的表示的位图以保持所述字形中的笔画对比,以及如果所述字形的经缩放的表示不满足所述笔画对比阈值,则为所述输出设备生成所述经缩放的表示的位图以忽略所述字形中的笔画对比。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/311,946 | 2005-12-19 | ||
US11/311,946 US7583267B2 (en) | 2005-12-19 | 2005-12-19 | Stroke contrast in font hinting |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101331520A true CN101331520A (zh) | 2008-12-24 |
Family
ID=38172893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2006800476558A Pending CN101331520A (zh) | 2005-12-19 | 2006-11-22 | 字体提示中的笔画对比 |
Country Status (8)
Country | Link |
---|---|
US (1) | US7583267B2 (zh) |
EP (1) | EP1964064A2 (zh) |
JP (1) | JP2009520238A (zh) |
KR (1) | KR20080078844A (zh) |
CN (1) | CN101331520A (zh) |
BR (1) | BRPI0619369A2 (zh) |
TW (1) | TW200745990A (zh) |
WO (1) | WO2007078465A2 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013091559A1 (en) * | 2011-12-20 | 2013-06-27 | Peking University Founder Group Co., Ltd. | Character display method and device |
CN103959280A (zh) * | 2012-06-21 | 2014-07-30 | 汉阳信息与通讯有限公司 | 用于使用图示符内插来产生字体的设备和方法 |
CN104965658A (zh) * | 2015-07-23 | 2015-10-07 | 上海斐讯数据通信技术有限公司 | 显示设备及其全屏信息浏览方法和系统 |
CN107220222A (zh) * | 2016-03-22 | 2017-09-29 | 文鼎科技开发股份有限公司 | 字型调整方法 |
CN109447055A (zh) * | 2018-10-17 | 2019-03-08 | 甘肃万维信息技术有限责任公司 | 一种基于ocr字形相近文字识别方法 |
CN111260743A (zh) * | 2020-01-08 | 2020-06-09 | 北大方正集团有限公司 | 文字笔画的调整方法和装置 |
Families Citing this family (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7292249B2 (en) | 2004-05-28 | 2007-11-06 | Microsoft Corporation | Appropriately rendering a graphical object when a corresponding outline has excessive control points |
US8253742B2 (en) | 2004-05-28 | 2012-08-28 | Microsoft Corporation | Rendering stroke pairs for graphical objects |
US7256786B2 (en) * | 2004-05-28 | 2007-08-14 | Microsoft Corporation | Appropriately rendering a graphical object when a corresponding outline has exact or inexact control points |
WO2010134919A1 (en) * | 2009-05-21 | 2010-11-25 | Hewlett-Packard Development Company, L.P. | Generation of an individual glyph, and system and method for inspecting individual glyphs |
US9483167B2 (en) | 2010-09-29 | 2016-11-01 | Adobe Systems Incorporated | User interface for a touch enabled device |
US9229636B2 (en) | 2010-10-22 | 2016-01-05 | Adobe Systems Incorporated | Drawing support tool |
US20130132907A1 (en) * | 2011-03-02 | 2013-05-23 | Adobe Systems Incorporated | Shape pixel rendering |
US8842120B2 (en) | 2011-03-02 | 2014-09-23 | Adobe Systems Incorporated | Physics rules based animation engine |
US8416243B2 (en) * | 2011-03-10 | 2013-04-09 | Konica Minolta Laboratory U.S.A., Inc. | Approximating font metrics for a missing font when substituting an available replacement |
US10031641B2 (en) | 2011-09-27 | 2018-07-24 | Adobe Systems Incorporated | Ordering of objects displayed by a computing device |
CN103186365B (zh) * | 2011-12-30 | 2015-08-12 | 北大方正集团有限公司 | 一种根据字形轮廓变化生成控制指令的方法及系统 |
US9230514B1 (en) * | 2012-06-20 | 2016-01-05 | Amazon Technologies, Inc. | Simulating variances in human writing with digital typography |
US9323726B1 (en) * | 2012-06-27 | 2016-04-26 | Amazon Technologies, Inc. | Optimizing a glyph-based file |
EP2784771A1 (en) * | 2013-03-25 | 2014-10-01 | Samsung Electronics Co., Ltd. | Display apparatus and method of outputting text thereof |
KR102178258B1 (ko) * | 2013-09-27 | 2020-11-12 | 삼성전자주식회사 | 디스플레이 장치 및 이의 글자 효과 제공 방법 |
US20150348278A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Dynamic font engine |
JP6570643B2 (ja) * | 2015-01-30 | 2019-09-04 | イー インク コーポレイション | 電気光学ディスプレイのためのフォント制御、ならびに、関連する装置および方法 |
KR101720897B1 (ko) * | 2016-03-04 | 2017-04-10 | 주식회사 윤디자인그룹 | 글자 사이의 간격 적분을 통한 폰트 생성 방법 및 이를 수행하는 컴퓨터 프로그램 |
TWI809353B (zh) * | 2021-02-09 | 2023-07-21 | 捷思博科技有限公司 | 用於鍵盤圖像比對之影像辨識系統、方法及電腦可讀媒介 |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5068905A (en) * | 1989-12-28 | 1991-11-26 | Eastman Kodak Company | Scaler gate array for scaling image data |
US5241653A (en) * | 1990-04-12 | 1993-08-31 | Adobe Systems Incorporated | Apparatus and method for adjusting and displaying scaled, rasterized characters |
US5796409A (en) * | 1993-04-06 | 1998-08-18 | Ecole Polytechnique Federale De Lausanne | Method for producing contrast-controlled grayscale characters |
JPH06297779A (ja) * | 1993-04-14 | 1994-10-25 | Brother Ind Ltd | 印字装置 |
US5664086A (en) * | 1993-04-16 | 1997-09-02 | Adobe Systems Incorporated | Method and apparatus for generating digital type font, and resulting fonts using generic font and descriptor file |
US5586241A (en) * | 1993-06-10 | 1996-12-17 | Hewlett-Packard Company | Method and system for creating, specifying, and generating parametric fonts |
US5577170A (en) * | 1993-12-23 | 1996-11-19 | Adobe Systems, Incorporated | Generation of typefaces on high resolution output devices |
JP3483946B2 (ja) * | 1994-08-19 | 2004-01-06 | 三菱電機株式会社 | フォント処理装置及びフォント処理方法 |
US5929866A (en) * | 1996-01-25 | 1999-07-27 | Adobe Systems, Inc | Adjusting contrast in anti-aliasing |
US6151032A (en) | 1996-09-20 | 2000-11-21 | Dynalab, Inc. | Stroke-based glyph-outline font generation in low/high resolution space |
US6597360B1 (en) * | 1998-10-07 | 2003-07-22 | Microsoft Corporation | Automatic optimization of the position of stems of text characters |
US6678410B1 (en) * | 1999-02-17 | 2004-01-13 | Adobe Systems Incorporated | Generating a glyph |
US7271805B1 (en) * | 2003-06-22 | 2007-09-18 | Apple Inc. | System and method for displaying text |
US7580039B2 (en) * | 2004-03-31 | 2009-08-25 | Adobe Systems Incorporated | Glyph outline adjustment while rendering |
US7602390B2 (en) | 2004-03-31 | 2009-10-13 | Adobe Systems Incorporated | Edge detection based stroke adjustment |
US7719536B2 (en) * | 2004-03-31 | 2010-05-18 | Adobe Systems Incorporated | Glyph adjustment in high resolution raster while rendering |
US8253742B2 (en) * | 2004-05-28 | 2012-08-28 | Microsoft Corporation | Rendering stroke pairs for graphical objects |
US7710422B2 (en) * | 2004-07-26 | 2010-05-04 | Microsoft Corporation | Font representations |
-
2005
- 2005-12-19 US US11/311,946 patent/US7583267B2/en not_active Expired - Fee Related
-
2006
- 2006-11-22 JP JP2008547247A patent/JP2009520238A/ja not_active Withdrawn
- 2006-11-22 BR BRPI0619369-2A patent/BRPI0619369A2/pt not_active Application Discontinuation
- 2006-11-22 WO PCT/US2006/045385 patent/WO2007078465A2/en active Application Filing
- 2006-11-22 CN CNA2006800476558A patent/CN101331520A/zh active Pending
- 2006-11-22 KR KR1020087014909A patent/KR20080078844A/ko not_active Application Discontinuation
- 2006-11-22 EP EP06838381A patent/EP1964064A2/en not_active Withdrawn
- 2006-12-07 TW TW095145777A patent/TW200745990A/zh unknown
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2013091559A1 (en) * | 2011-12-20 | 2013-06-27 | Peking University Founder Group Co., Ltd. | Character display method and device |
CN103959280A (zh) * | 2012-06-21 | 2014-07-30 | 汉阳信息与通讯有限公司 | 用于使用图示符内插来产生字体的设备和方法 |
CN103959280B (zh) * | 2012-06-21 | 2016-10-12 | 汉阳信息与通讯有限公司 | 用于使用图示符内插来产生字体的设备和方法 |
CN104965658A (zh) * | 2015-07-23 | 2015-10-07 | 上海斐讯数据通信技术有限公司 | 显示设备及其全屏信息浏览方法和系统 |
CN107220222A (zh) * | 2016-03-22 | 2017-09-29 | 文鼎科技开发股份有限公司 | 字型调整方法 |
CN109447055A (zh) * | 2018-10-17 | 2019-03-08 | 甘肃万维信息技术有限责任公司 | 一种基于ocr字形相近文字识别方法 |
CN109447055B (zh) * | 2018-10-17 | 2022-05-03 | 中电万维信息技术有限责任公司 | 一种基于ocr字形相近文字识别方法 |
CN111260743A (zh) * | 2020-01-08 | 2020-06-09 | 北大方正集团有限公司 | 文字笔画的调整方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
KR20080078844A (ko) | 2008-08-28 |
TW200745990A (en) | 2007-12-16 |
JP2009520238A (ja) | 2009-05-21 |
WO2007078465A3 (en) | 2007-10-11 |
WO2007078465A2 (en) | 2007-07-12 |
EP1964064A2 (en) | 2008-09-03 |
US20070139415A1 (en) | 2007-06-21 |
BRPI0619369A2 (pt) | 2011-09-27 |
US7583267B2 (en) | 2009-09-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101331520A (zh) | 字体提示中的笔画对比 | |
CN101341481A (zh) | 自动字体控制值确定 | |
US6678410B1 (en) | Generating a glyph | |
US7068276B2 (en) | Methods and systems for hinting fonts | |
US5404436A (en) | Computer method and apparatus for converting compressed characters for display in full size | |
US20070139413A1 (en) | Composite characters font hinting | |
JP2007058868A (ja) | 置換コンピュータ字体の供給方法及び装置 | |
US20070139414A1 (en) | Iteratkively solving constraints in a font-hinting language | |
EP1600896B1 (en) | Character image generation | |
JPH08106276A (ja) | スクリーン上でのテキスト表示方法 | |
JP2013061660A (ja) | 低解像度ディスプレイのためのストロークベースのフォント文字を生成する方法 | |
US6614432B1 (en) | Image rendering technique | |
JP4162670B2 (ja) | シルエット化グレーフォント発生方法 | |
US6498608B1 (en) | Method and apparatus for variable weight outline emboldening of scalable outline fonts | |
US20220044455A1 (en) | Image forming apparatus that processes outline data in association with a character code, image forming method including processing outline data in association with a character code, and non-transitory computer readable recording medium that records an information processing program that realizes the image forming method including processing outline data in association with a character code | |
Shamir | Constraint-based approach for automatic hinting of digital typefaces | |
Banjanin et al. | Font hinting techniques and the importance of applying these techniques for high-quality display of fonts on the output device screen | |
JP4726087B2 (ja) | データ処理装置、データ処理方法、電子情報機器、制御プログラムおよび可読記録媒体 | |
KR100923572B1 (ko) | 폰트 작성 프로그램이 기록된 컴퓨터로 읽을 수 있는 기록매체 | |
EP1048456A2 (en) | Generating a glyph | |
KR20090080931A (ko) | 벡터 스크린 폰트 파일의 생성방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20081224 |