CN102456231A - 将目标点阵字体转化成目标轮廓字体的方法及系统 - Google Patents
将目标点阵字体转化成目标轮廓字体的方法及系统 Download PDFInfo
- Publication number
- CN102456231A CN102456231A CN2011102661880A CN201110266188A CN102456231A CN 102456231 A CN102456231 A CN 102456231A CN 2011102661880 A CN2011102661880 A CN 2011102661880A CN 201110266188 A CN201110266188 A CN 201110266188A CN 102456231 A CN102456231 A CN 102456231A
- Authority
- CN
- China
- Prior art keywords
- font
- dot matrix
- curve
- target
- grid
- 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
Images
Classifications
-
- 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
Landscapes
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本发明公开了一种将目标点阵字体转化成目标轮廓字体的方法及系统。该字体数据的转化方法包含:(1)采用一种可以产生目标点阵字体的轮廓字体为参考轮廓;(2)采用参考轮廓和点阵方格边线的相交模式,当作移动参考轮廓的限制条件,以及当作移动曲线和点阵方格边线相交点的运算依据;(3)以参考轮廓覆盖点阵的面积从事图形保真演算,取得点阵周边点的目标灰度值;(4)移动参考轮廓和矩阵方格边线的相交点,使得移动后的轮廓覆盖点阵方格的面积比例值和这些目标灰度值几乎一致;(5)取用移动后的相交点为曲线的取样点,并以贝塞尔曲线段所构成的轮廓形状逼近这些取样点,取得可以产生目标灰度点阵字体的目标轮廓字体。
Description
技术领域
本发明涉及制作中文灰度点阵字体的处理技术领域,尤指一种以轮廓字体产生灰度点阵字体的方法和系统。
背景技术
由于屏幕面板显示技术的进步,以及计算机产生字体的操作系统渐趋一致,对于产生可缩放字体(scalable fonts)的新需求,是在低分辨率尺寸(low-resolution size)时仍然是以轮廓字体产生字体,特别是以轮廓字体输入一个标准字体引擎(stand font engine)来产生灰度点阵字体显示于屏幕画面上。
传统的可缩放字体技术是在低分辨率时,采用二位的黑白点阵的数据,输入至一个标准字体引擎去产生完全一致的黑白点阵字体显示于屏幕画面上,由于不具有可显示灰度点阵字体的功能,传统方式的低分辨率可缩放字体技术已经不能满足新的市场需求。
为了达成新的市场需求,市面上有一些工具被发展出来,其中之一是采用一种数学的逼近方法(mathematic approximation method),该方法首先用曲线公式自动逼近一个目标点阵字体(target dot matrix font)(一个理想的点阵字体),产生轮廓曲线包围点阵的外围,且被产生的轮廓曲线数据经输入一个标准的字体引擎后,会输出和目标点阵字体完全一致的点阵,然后就以该轮廓曲线为参考轮廓(referenced outline),借着人工来移动参考轮廓曲线上的一些控制点(control points),来得到目标轮廓形状(target outline),让目标轮廓形状的数据经输入一个目标字体引擎后,会产生目标灰度点阵字体(target gray dot matrix font)(理想的目标灰度点阵字体)显示于屏幕画面上,显然,这种方式除需要大量的人力外,还会产生质量参差不齐的现象。
所以字体市场上确实存在着一项需求,那就是一种机制和方法能够自动地将目标点阵字体数据转化成可以产生目标灰度点阵字体的轮廓字体。
发明内容
本部分的内容仅提供描述优先实施例的概念引导,无意用来确认权利要求的发明实体、实体架构和对象特征。
根据本发明的一个方面,本发明提供了一种字体数据的转化方法,这种转化方法的步骤包含:(1)采用一种可以产生目标点阵字体的轮廓字体为参考轮廓;(2)采用参考轮廓和点阵方格边线的相交模式,当作移动参考轮廓的限制条件,以及当作移动曲线和点阵方格边线相交点的运算依据;(3)以参考轮廓覆盖点阵的面积从事图形保真(anti-aliasing)演算,取得点阵周边点的目标灰度值;(4)移动参考轮廓和矩阵方格边线的相交点,使得移动后的轮廓覆盖点阵方格的面积比例值和这些目标灰度值几乎一致;(5)取用移动后的相交点为曲线的取样点,并以贝塞尔曲线段(Beziercurve segments)所构成的轮廓形状逼近这些取样点,取得可以产生目标灰度点阵字体的目标轮廓字体(target outline font)。
根据本发明的另一个方面,本发明提供了一种可以从目标点阵反推出可产生目标灰度点阵的轮廓字体的转化系统,此种转化系统主要是由四个组件组成:一个接收器,一个记录器,一个调整器,和一个塑形器;其中接收器接收一个低分辨率的目标点阵和一个可产生目标点阵的轮廓字体,在接收后创建一个可表现点阵和轮廓形状的字体坐标系统,使得在此坐标系统下,点阵是以方格表现矩阵点的位置,而轮廓形状则是由轮廓的曲线段构成,而且如果轮廓覆盖一半以上方格的面积,则该方格为黑点,没有被覆盖的方格或者被覆盖面积少于一半者,则该方格为白点,此时接收器就取这个轮廓字体为在此坐标系统下的一个参考轮廓;记录器记录下参考轮廓的曲线段和点阵方格边线的相交情况:那一条曲线段和那一条垂直的或平行的边线相交,以及每一个相交点在该条曲线段上的位置,而且记录器也记录参考轮廓经图形保真(anti-aliasing)演算后每个被轮廓覆盖的点阵方格的被覆盖面积比例值,此比例值被当作目标灰度值在[0,1]间的量化值;调整器根据记录器所记载的相交情况,相交的曲线位置,以及方格被覆盖面积比例值,调整参考轮廓,使得调整后的轮廓字体和点阵方格边线相交的情况维持不变,而仅让轮廓覆盖点阵方格的面积比例值和记录器所记载的值一致,如此经调整器调整后的相交点就被当作目标轮廓曲线上的取样点;塑形器根据这些被调整后得到的取样点,在每对相邻特征点间用二次贝塞尔曲线(Bezier curve)段逼近其上对应的取样点,如此取得的贝塞尔曲线段就构成目标轮廓字体在相邻特征点间的曲线,且最后取得的目标轮廓字体经该个标准字体引擎处理后,会产生和显示和目标灰度点阵一致的字体在屏幕上。
根据本发明的又一个方面,本发明提出一种人机界面的软件工具,可被使用于从目标点阵字体开始构造出可产生目标灰度点阵的轮廓字体;该软件工具提供的主画面包括有工作区,显示区和指令区,让用户可以在画面上以人机交谈的方式逐步构造,首先,在工作区里显示一个目标点阵字体和其轮廓字体,如果显示区里显示该轮廓字体可以经一个标准字体引擎处理得到目标点阵时,则取该轮廓字体为参考轮廓,否则需根据显示区显示的误差去移动修正来消除误差,直到取得参考轮廓,其后再记录参考轮廓和点阵方格边线相交的情况以及相交点在参考轮廓的曲线段上的位置,并以参考轮廓覆盖点阵方格的面积比例值,代入图形保真算法中算出目标灰度值,最后借着这些目标灰度值和相交情况去调整相交点的新位置,得到目标轮廓字体上的曲线取样点,以及用贝塞尔曲线段逼近这些取样点来获得目标轮廓字体。
根据本发明的再一个方面,本发明提供一种可缩放字体(scalable font)在低分辨率时仍然可产生能够保持字体风格的机制,这种机制是通过人机界面的软件工具将各个低分辨率尺寸的目标轮廓字体、目标灰度点阵、或各项提示信息先行造好,然后根据各个应用需求去搭配,搭配的方式包含:直接取用被造好的目标灰度点阵字体或目标轮廓字体,以及间接使用已被造好的提示信息去产生目标灰度点阵字体或目标轮廓字体。
从上述技术方案可以看出,本发明满足了字体市场上存在的能够自动地将目标点阵字体数据转化成可以产生目标灰度点阵字体的轮廓字体的需求。
附图说明
图1为一般点阵字体的生成和显像过程的示意图。
图2为参考轮廓和点阵边线相交的情况:参考形状和点阵方格的那一条边线相交,以及相交点在参考形状上的位置。
图3为对参考形状所覆盖点阵方格作图形保真演算的处理过程。
图4为移动参考形状产生目标轮廓字形的流程图。
图5为以二次贝塞尔曲线逼近取样点的流程图。
图6为一种从目标点阵字体反推出目标轮廓字形的转化方法的流程图。
图7为一种从目标点阵字体反推出目标轮廓字形的转化系统。
图8(a)为用于转化目标点阵字体数据成为可产生目标灰度点阵字体数据的目标轮廓字形数据的一种交互式人机界面软件工具里的主画面的设计式样。
图8(b)为人机界面软件工具的作业流程。
图9为4种可能被采用于低分辨率尺寸时显示目标灰度点阵字体的可缩放字体技术的产生方法。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。发明内容的各个方面可根据以附图说明的具体实施例获得更清楚的理解。
图1为一般点阵字体的生成和显像过程的示意图。通常,点阵字体的生成是通过一个软件工具在画面上由人工布设黑点组成,例如图1(a)的点阵字体11就是在一个软件工具的画面上显示的棋盘13,让用户布设黑点于适当的位置上所形成的。另外也可以通过轮廓字体(outline font)或者笔划字体(stroke-based font),经由一个标准字体引擎(standard fontengine)的处理后产生点阵字体,例如图1(b)的轮廓字体15经由一个标准字体引擎的处理后也一样可以产生点阵字体11。图1(c)为经由一个标准字体引擎处理轮廓字体15来产生点阵字体11的规则是:(1)如果字体的轮廓覆盖一个点阵方格的面积超过一半,则该方格的元素为黑点,反之如果没有超过一半时,则该方格的元素为白点;(2)如果一个点阵方格覆盖了轮廓的二边,即轮廓的左右(或上下)二边曲线段的部分同时被一个方格覆盖,则该方格的元素为黑点,例如图1(b)的方格12为黑点是因为轮廓字形覆盖在方格12上的覆盖面积超过一半,方格14为白点是因为覆盖面积没有超过一半,而方格1b为黑点是因为它覆盖了轮廓的二边的曲线,即轮廓二边的曲线同时通过了方格。
为了方便说明,一个已经被构造好的理想点阵字体就称之为一个目标点阵(target dot matrix),某一字体的轮廓数据经标准字体引擎处理会得到目标点阵时,该轮廓字体称之为参考轮廓(referenced outline)。图2为参考轮廓和点阵方格边线相交的情况,即参考轮廓和点阵方格的那一条边线相交,以及相交点在参考轮廓曲线段上的位置。通常,轮廓上的一条曲线指的是在二个相邻特征点间的贝塞尔曲线段(Bezier curve),其中特征点是取曲线的转弯处,例如图2(a)的曲线21是图1(b)轮廓字体15最左边的一条轮廓曲线,是在二个相邻特征点f1和f2之间的一条贝塞尔曲线,贝塞尔曲线通常是由多条贝塞尔曲线(Bezier curve segments)组成,贝塞尔曲线段的形成是首先连接f1和f2,再取联机中间点m,并从点m拉一条直线通过脱机最远的曲线点c,且让直线是以c为中点的长度停在v0,然后以Δf1v0f2为贝兹控制三角形(Bezier control triangle)代入贝兹公式里产生一条贝塞尔曲线段,如果被生成的贝塞尔曲线段和想要的曲线还有差距(最大误差超过设定的容忍值),则在c点将该条贝塞尔曲线段切成二段,形成二个贝兹控制三角形Δf1v2c(或Δv1v2v3)和Δcv4f2(或Δv3v4v5),然后求出它们分别的贝塞尔曲线段,图2(b)为切分二段后就已经吻合了想要的曲线(在容忍误差值的范围),因此就停止切分的动作,否则就要在不吻合部分继续切分,图2(b)为图2(a)的曲线21是由二条贝塞尔曲线段所构成,一段是在f1和c之间,另一段是在c和f2之间,其中曲线段f1c和点阵方格边线x6,x5,x4,y1,y2…y10相交,相交点的顺序为y1,y2,y3,y4,x6,y5,y6,y7,x5,y8,y9,x4,y10,而曲线段f1c上的起点v1,13个相交点和终点v3就构成坐落在其上的曲线点,这些点就构成了参考轮廓在曲线段f1c上的取样点,这些取点满足了下面二次贝塞尔曲线的公式:
其中v1,v2和v3的坐标值已知,因此13个相交点所对应的t值可由上式算出,即如果相交点是在yi上,则用y(t)的式子,而在xj上,则用x(t)的式子,如此每个相交点位于在曲线段f1c上的位置就以tk,k=1,2,…13来表示,而且如果移动相交点来改变参考形状是依据相交属性,即在交点yi上的移动仅限于水平方向,而在交点xi上的移动仅限于垂直方向,那么就可以调整参考轮廓来产生一些和它具有相同属性的轮廓,本发明的目标就是要找出其中的一条目标轮廓(target outline)。
如图1(b)所示,参考轮廓15覆盖在每个点阵方格的面积也是可以算出来的,例如图2(a)的方格18被参考轮廓的曲线段f1c部分所覆盖的面积Ar,可以从下式计算出来:
其中的x1可将t6代入二次贝塞尔曲线式的x(t)算出,而x2可将t7代入算出。所以,如果以方格被参考轮廓的覆盖面积比例值当作量化方格灰度值的依据,则直接从参考轮廓也可以得到一个灰度点阵字体,然而这个灰度点阵字体是不能被接受的,因为它没有经过图形保真算法(anti-aliasing algorithm)的平滑化处理而无法取得满意的结果,因此直接将参考轮廓的数据输入一个标准字体引擎的处理,其产生的结果不是一个目标灰度点阵字体(target gray dot matrix font)。
图形保真算法是用一些高斯算子(Gaussian operators)对被覆盖点阵周边的方格作平滑化(smoothing)的处理,使得周边方格的灰度值分布呈现渐近式的变化,因此而消除点阵呈现锯齿状的突兀现象。所谓高斯算子可以是个九宫格的窗口,其元素值呈现类似常态分布的状态,然而其元素是随着形状覆盖的不同分布而取不同的值,通常是取和曲线覆盖方格的不同方向而取不同的元素值。图3为对参考形状所覆盖点阵方格作图形保真演算的处理过程,图3(a)为用九宫格的高斯算子,其中aij,i=1,2,3;j=1,2,3是参考形状覆盖方格的面积比例值(代表每个方格的灰度量化值),a′22是正被处理的方格上的面积比例值,它被高斯算子处理后的新值a′22如下式:
其中wij是被高斯算子取用的加权值(weights),例如图3(b)的方格31所取用的高斯算子可以是w11=w12=w21=w23=w33=1;w22=5;w13=3;w31=3,因为曲线覆盖其上是呈斜笔走向,因此高斯分布就侧重在走向的对角线,其他比较特殊的覆盖方格,例如图3(b)的方格33,因为方格是被二条曲线段交接的凹点覆盖,因此可以取用一个固定的a′22,例如a′22=0.5来呈现其灰度值,而不至于被一个比较深黑的点占据。图3(c)为一种通用于中文灰度点阵的图形保真演算处理的流程,如图3(c)方块34所示,首先是从参考轮廓计算覆盖点阵方格的面积比例值,取得各个周边方格的面积比例值{aij},这些{aij}被当作是未被图形保真演算处理前的灰度量化值,如方块35所示,每一个周边方格(用a22表示)需要使用一个高斯算子(图3(a))来平滑化以取得一个新的灰度量化值(用a′22表示),然而选取一个合适的高斯算子端视a22周遭(在九宫格的范围内)曲线进出a22的(切线)方向和情况来决定,通常方向的考虑可以根据垂直、水平、或斜线做出高斯算子元素值的选择,其他特殊情况,例如二条曲线段相交的凹或凸点,则可以用一简单规则来指派a′22的值,因此,如方块36所示,可以根据曲线覆盖在点阵方格上的各种不同情况,从预先制好的高斯算子栏(表格)中去取用一个合适的高斯算子([wij]),然后如方块37所示的平滑化式子:
去计算出新的灰度量化值,于是就取得了该个点阵方格上新的(理想的)灰度量化值(或面积比例值),最后如方块38所示,如果所有的周边方格皆已处理完毕,就会得到一组理想的灰度量化值。
然而本发明的目标是要取得目标轮廓字体(Target Outline),(字体)数据输入到一个标准字体引擎(Font Engine)去处理会输出目标灰度点阵字体(Target Gray Dot Matrix Font)。所以,参考轮廓经图形保真演算(图3(c))的结果仅能提供移动参考轮廓去寻找目标轮廓的指标,换而言之,移动参考轮廓所得到的目标轮廓所覆盖的点阵方格面积比例值是和图3(c)的图形保真演算结果几乎是一致的。
图4为移动参考轮廓产生目标轮廓的流程图,如图4方块41所示,移动参考轮廓的方式是依照每二个相邻特征点间曲线覆盖的点阵方格的顺时针或反时针方向,沿着形状的轮廓轨迹逐一移动,假设一条二个相邻特征点间曲线覆盖了n个方格,而方块41是在点阵方格i上考虑移动参考轮廓和方格边线相交点,方块42为(1)移动的方向是依照相交点处于水平或垂直的方格边在线,做出在同一边在线移动;(2)移动后的相交点在新曲线上的值置仍然是取用原先已经算出的曲线段的参数值tk;(3)移动相交点后新曲线覆盖方格i的面积比例值是取图3(c)算出对应方格i的目标灰度量化值。如方块43所示,这时需根据方格i被曲线通过的情况:曲线通过方格边线的那二条边线,来列出方格i被覆盖面积公式,每个这些情况的公式是存放在一个面积公式栏(或表格)里,所以在方块43时需从面积公式栏里挑出适当的公式列成一个方程式,方程式的左边项是目标灰度量化值,等于右边项的公式,而公式的已知参数值是方格边线的坐标以及移动后相交点在曲线段的参数值tk。因此如方块44所示,二个相邻特征点间曲线所覆盖的所有n个方格会被列成一组联立方程式,如果仍有方格是尚未处理的情况时,则如方块45所示,会继续处理至到n个联立方程式被设定完成为止。最后如方块46所示,这些联立方程式会被求出其最小平方解(least square solution),算出新的相交点作为二个相邻特征点间新曲线上的取样点,这些取样点再经由图5的处理后,就可以得到一条对应目标轮廓的贝塞尔曲线。如方块47所示,所有轮廓上的二个相邻特征点间的覆盖方格皆会以相同的步骤处理,如果还有未被处理时,则如方块48所示,会再继续处理轮廓上的下一段二个相邻特征点间的曲线。
图5为以二次贝塞尔曲线段逼近取样点的流程图,如方块51所示,首先是在二个相邻特征点间用一条二次贝塞尔曲线,一个贝兹控制三角形来逼近其间所有的取样点,然后如方块52所示,去计算该条贝塞尔曲线和取样点间的最大偏差距离,再如方块53所示,查看最大偏差距离是否超出误差值,如果是则如方块54所示,在偏离最远的点上将取样点分成二区段,并以相同的方法分别逼近二区段上的取样点,而分别产生贝兹控制三角形,于是如方块55所示,分别考虑各别的贝兹控制三角形,再如方块56所示,查看各别的曲线段逼近是否小于容忍误差,如果是则如方块57所示,这段曲线段不再切割,否则该段继续分割成二个区段,如此反复进行,直到如方块58所示,这样的切分会产生一棵切割曲线段的二分树,最后就取二分树的叶节点为逼近取样点的贝塞尔曲线段,这些曲线段就构成目标轮廓字形上对应这二个相邻特征点间贝塞尔曲线段。
综上所述,本发明公开了一种从目标点阵字体可以反推导出来能够产生目标灰度点阵字体的目标轮廓的转化方法,图6为这种转化方法的流程图。如图6方块62所示,这个转化方法首先接受一个目标点阵和一个参考轮廓的输入,其中参考轮廓的数据经一个标准字体引擎处理会产生和目标点阵字体完全一样的点阵,如方块64所示,于是这个方法构造一个点阵方格和参考轮廓相迭的字体坐标空间,去计算参考轮廓和点阵方格边线的相交情况,包括相交点位于在那一条边线以及位于在那一条曲线段上的位置,再如方块66所示,依据各点相交的情况移动对应的相交点来改变轮廓覆盖在方格上的面积比例值,让移动参考轮廓后的轮廓数据经一个标准字体引擎处理后会产生目标灰度点阵的灰度值,最后如方块68所示,以贝塞尔曲线段逼近移动后轮廓来取得目标轮廓,其数据经标准字体引擎处理后会得到一个理想的目标灰度点阵字体。
上述的方法也可以做成一个转化系统,图7为一种从目标点阵字体反推出目标轮廓字形的转化系统包含一个接收器、一个记录器、一个调整器和一个塑形器,如图7方块72所示,接收器接收一个目标点阵字体和一个参考轮廓并转化它们在同一个字体坐标空间上,如方块74所示,记录器记录在字体坐标空间上参考轮廓和点阵方格边线相交情况,以及参考轮廓曲线上位置,如方块76所示,调整器调整参考轮廓产生新的轮廓曲线段和点阵方格边线相交点的新位置,使得新轮廓覆盖点阵方格的面积比例值等于参考轮廓经图形保真演算得到灰度量化比例值,如方块78所示,塑形器塑造新轮廓的贝塞尔曲线段,因此得到的目标轮廓的数据经一个标准字体引擎处理可产生目标灰度点阵字体。
从以上的说明中,可以了解到将参考轮廓转化成目标轮廓的过程中,有些步骤需要有人为的介入,例如消除误差现象、选择高斯的算子和设定覆盖面积的公式栏等都有需要借助人修正和预先设定,因此,为了能够顺畅进行上述的转化方法和转化系统,确实需要有一个人机界面软件工具来补充构造。图8(a)为用于转化目标点阵字体数据成为可产生目标灰度点阵字体数据的目标轮廓字形数据的一种交互式人机界面软件工具里的主画面的设计式样,其中屏幕主画面上提供工作区,显示区和指令区,让用户得以人机交谈方式逐步构造;其中工作区显示一个正在被构造的点阵字体以及点阵方格和曲线的形状于字体坐标空间上,显示区显示构造过程中的每项结果,指令区上的指令接受交谈的指示。图8(b)为人机界面软件工具的作业流程,如图8(b)方块85,从指令区83点选参考轮廓的构造,其中一个参考轮廓是逼近目标点阵字体的一个封闭曲线,参考轮廓的数据经由一个标准字体引擎(standard font engine)处理后会产生和目标点阵字体一致的点阵,而在工作区81的构造过程中,如果有不一致的情况,则在显示区82会显示不一致处的差异,让用户得据以调整对应部分的曲线段来消除差异,最后取得的轮廓才构成一个参考轮廓,同时,记录参考轮廓和点阵方格边线在字体坐标空间的相交情况以及相交点在轮廓曲线上的坐标位置,如图8(b)方块86,从指令区83点选目标灰度点阵的构造,首先采用参考轮廓覆盖点阵方格的面积比例值为灰度点阵的起始值,然后使用图形保真算法(anti-aliasing algorithm)的高斯算子(Gaussian operators)从事平滑化运算,高斯算子是由一个九宫格所构成的元素值去平滑化通过中间格子的灰度值,每个元素值可以根据曲线通过对应中间格子的切线方向去指派九宫格里各个适合的元素值,这项指派通常是采用高斯常态分配的加权值(weights),如此则在工作区从事高斯算子运算的平滑化结果会在显示区显示,如果用户不满意,则可以更改高斯算子的元素值,直到用户满意后就可以将高斯算子决定下来,并将这些算子记录下来,使得参考轮廓经这些被记录下来的高斯算子的运算后,可以得到对应这个目标点阵的目标灰度值,如图8(b)方块87,从指令区83点选调整参考轮廓的指令,让工具软件自动去产生目标轮廓曲线上的取样点;其中目标轮廓曲线上的取样点是曲线和点阵方格边线的相交点,且这些相交点是经由移动参考轮廓于相同相交情况的条件下所得到的,且移动后的相交点所决定的一个覆盖方格的面积比例值等于方格上的目标灰度值,所以如果有不一致的情况发生时,则会在显示区显示哪个方格不能满足,可让用户去调整参考轮廓或者高斯算子的元素值,直到不一致的情况被消除后为止,如图8(b)方块88,从指令区83点选塑造目标轮廓的指令,让工具软件自动去以贝塞尔曲线(Bezier curve)段逼近目标轮廓形状的取样点,并将逼近结果显示在显示区,让用户可以调整误差容忍值,在显示区里得到满意的目标轮廓曲线,且被完成的目标轮廓字体经由标准字体引擎处理后,会在显示区显示满意的目标灰度点阵。
本发明的目的是要设计一套完整的可缩放字体的技术,有了人机界面软件工具的补助,整个从目标点阵字体转化成目标轮廓字体和目标灰度点阵字体的中间过程都会被记录和储存下来这些中间过程的产物都可以构成提示信息,而能够提供字体设计者(font designer)可以根据不同应用需求的规格,去组合不同搭配的使用来满足各项需求,图9为4种可能被采用于低分辨率尺寸时显示目标灰度点阵字体的可缩放字体技术的产生方法,如图9方块95所示,用户机界面软件对各个低分辨率尺寸构造目标灰度点阵字体、目标轮廓字体以及各项暗示情报,让用户可以根据应用需求选择合适的字体数据,如方块97所示,共有4种选择:(1)直接使用目标灰度点阵字体;(2)直接使用目标轮廓字体;(3)间接使用提示信息让参考轮廓字体产生目标灰度点阵字体;(4)间接使用提示信息让参考轮廓字体产生目标轮廓字体,最后如方块99所示,选择后将字体数据输入一个标准字体引擎处理,产生并显示灰度点阵字体于屏幕画面上。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种将目标点阵字体转化成目标轮廓字体的方法,其特征在于,使得目标轮廓字体经一个标准字体引擎处理后,会产生目标灰度点阵字体的轮廓字体,该方法包含:
步骤S1,接收一个可产生目标点阵字体的点阵轮廓字体,其中的点阵轮廓字体的轮廓形状至少包含一条或更多条的曲线段;
步骤S2,布置接收到的点阵轮廓形状和目标点阵字体成为一个晶格坐标系统,其中晶格的数目以及结构是和点阵里的点的数目以及结构一致;
步骤S3,纪录在晶格坐标里轮廓形状上的一条或更多条曲线段和点阵里的点的相交点;
步骤S4,运作图形保真的算法于这些相交点上轮廓形状覆盖其上的面积,得到相交点的目标灰度值;
步骤S5,纪录所有相交点的目标灰度值,成为一个目标灰度值的点阵字体。
2.根据本发明权利要求1的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,所述目标点阵字体转化是由点阵轮廓字体输入一个标准字体引擎所产生的。
3.根据权利要求1的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,所述的步骤S5之后更进一步的包含:
步骤S6,移动在晶格坐标系上的相交点,以取得和步骤S4所取得相交点的目标灰度值一致的结果;
步骤S7,取得逼近移动后相交点的贝塞尔曲线段;以及
步骤S8,纪录步骤S7所取得逼近贝塞尔曲线段成为目标轮廓字体。
4.根据权利要求3的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,所述移动在晶格坐标系上的相交点,以取得和步骤S4所取得相交点的目标灰度值一致的结果,是根据一些预先设定的规则。
5.根据权利要求4的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,所述预先设定的规则更进一步的包含:
一个规则是移动晶格横向边的相交点,仅能在晶格横向边上移动相交点;以及
一个规则是移动晶格竖向边的相交点,仅能在晶格竖向边上移动相交点。
6.根据权利要求4的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,所述移动在晶格坐标系上的相交点,以取得目标灰度值更进一步的包含:
一个规则是视曲线段和晶格边线相交的不同情况,决定不同轮廓覆盖点阵点面积比例值得方程式;
一个规则是视曲线段和晶格边线相交的横向或竖向的不同属性,决定方程式里的曲线式;
一个规则是视那条曲线段和晶格边线相交,决定方程式里该条曲线式的变量。
7.根据本发明权利要求1的将目标点阵字体转化成目标轮廓字体的方法,其特征在于,取得以贝塞尔曲线逼近目标轮廓曲线上的取样点的步骤,进一步地包含:
在二个相邻特征点间构造一条二次贝塞尔曲线段逼近其间所有取样点,如果还有取样点偏离该条贝塞尔曲线时超过误差容忍值;则
在贝塞尔曲线段的中点将取样点分成二个区段,重新构造分别的二次贝塞尔曲线段,并测试每条曲线的逼近情况是否已经满足小于误差值的要求,如果是则该段曲线不再分割,否则将该条曲线段继续分割成二段,如此反复进行分割运算,直至细分后的每段曲线皆已满足要求后,得到一棵切割二次贝塞尔曲线段的二分树结构;
依从左至右追踪二分树的叶节点取得该二个特征点间的各个贝塞尔曲线段。
8.一种将目标点阵字体转化成目标轮廓字体的系统,其特征在于,该系统包含:
一个接收器,接收一个低分辨率的目标点阵字体和一个可以产生目标点阵的轮廓字体,在接受后创建一个可以表现点阵和轮廓形状的字体坐标系统,使得在此坐标系统下,点阵是以方格表现点阵的位置,而轮廓形状是由轮廓的曲线段构成,而且如果轮廓覆盖一半以上方格的面积,则该方格为黑点,没有被覆盖的方格或者被覆盖面少于一半者,则该方格为白点,此时接收器就取这个轮廓字体为在此坐标系统下的一个参考轮廓;
一个记录器,记录参考轮廓和点阵方格边线的相交情况,作为限制相交点移动方向和范围的依据,以及相交点在参考轮廓的位置作为轮廓曲线段和对应点阵方格边线相交运算的依据,而且记录器也记录了参考轮廓经图形保真演算后每个被轮廓覆盖面积比例,作为量化目标灰度值的依据;
一个调整器,调整参考形状产生新的轮廓曲线和点阵方格线相交点的新位置,使得新的轮廓部分覆盖点阵方格的面积比例值和对应目标灰度值一致;
一个塑形器,塑造曲线上的取样点成为目标轮廓曲线,采用贝氐曲线段来逼近取样点,构成可以产生目标灰度点阵字体的轮廓字体。
9.一种人机界面的软件工具,其特征在于,用于从目标点阵字体开始构造出可以产生目标灰度点阵的轮廓字体,该软件工具包含:
屏幕主画面上提供工作区,显示区和指令区,让用户得以人机交谈方式逐步构造;其中工作区显示一个正在被构造的点阵字体以及点阵方格和曲线的形状于字体坐标空间上,显示区显示构造过程中的每项结果,指令区上的指令接受交谈的指示;
点选参考轮廓的构造,其中一个参考轮廓是逼近目标点阵字体的一个封闭曲线,参考轮廓的数据经由一个标准字体引擎处理后会产生和目标点阵字体一致的点阵,而在工作区的构造过程中,如果有不一致的情况,则在显示区会显示不一致处的差异,让用户得据以调整对应部分的曲线段来消除差异,最后取得的轮廓才构成一个参考轮廓,同时,记录参考轮廓和点阵方格边线在字体坐标空间的相交情况以及相交点在轮廓曲线上的坐标位置;
点选目标灰度点阵的构造,首先采用参考轮廓覆盖点阵方格的面积比例值为灰度点阵的起始值,然后使用图形保真算法的高斯算子从事平滑化运算,高斯算子是由一个九宫格所构成的元素值去平滑化通过中间格子的灰度值,每个元素值可以根据曲线通过对应中间格子的切线方向去指派九宫格里各个适合的元素值,这项指派通常是采用高斯常态分配的加权值,如此则在工作区从事高斯算子运算的平滑化结果会在显示区显示,如果用户不满意,则可以更改高斯算子的元素值,直到用户满意后就可以将高斯算子决定下来,并将这些算子记录下来,使得参考轮廓经这些被记录下来的高斯算子的运算后,可以得到对应这个目标点阵的目标灰度值;
点选调整参考轮廓的指令,让工具软件自动去产生目标轮廓曲线上的取样点;其中目标轮廓曲线上的取样点是曲线和点阵方格边线的相交点,且这些相交点是经由移动参考轮廓于相同相交情况的条件下所得到的,且移动后的相交点所决定的一个覆盖方格的面积比例值等于方格上的目标灰度值,所以如果有不一致的情况发生时,则会在显示区显示那个方格不能满足,可让用户去调整参考轮廓或者高斯算子的元素值,直到不一致的情况被消除后为止;
点选塑造目标轮廓的指令,让工具软件自动去以贝塞尔曲线段逼近目标轮廓形状的取样点,并将逼近结果显示在显示区,让用户可以调整误差容忍值,在显示区里得到满意的目标轮廓曲线,且被完成的目标轮廓字体经由标准字体引擎处理后,会在显示区显示满意的目标灰度点阵。
10.一种计算机可读取的媒体装置,其特征在于,具有计算机可执行的指令执行从参考轮廓去产生目标灰度点阵字体的任务,该媒体装置的每个字体包含:
一个表格文件,它记录参考轮廓和目标点阵方格线边线相交的情况和属性,以及相交点坐落在参考轮廓曲线段上的位置,此表格文件提供了调整参考轮廓产生目标轮廓的提示信息,通过执行表格里的提示信息计算目标轮廓覆盖目标点阵方格的面积比例值;
一个高斯算子的表格文件,它提供从事图形保真演算时调整参考轮廓产生目标灰度值的提示信息;
一个曲线取样点的表格文件,它记录每段轮廓曲线和点阵方格边线相交点在字体空间上的坐标点,作以贝塞尔曲线段逼近轮廓曲线的提示信息。
11.根据本发明权利要求10的计算机可读取的媒体装置,其特征在于,具有计算机可执行的指令从事执行本发明权利要求2~6的步骤。
12.一种可以在低分辨率产生目标灰度点阵并保持字体风格的可缩放字体产品,其特征在于,是根据人机接口的软件工具从目标点阵字体去构造目标灰度点矩字体的过程中创建出来的目标灰度值提示信息和目标轮廓字体的可缩放字体产品。
13.根据本发明权利要求12的可以在低分辨率产生目标灰度点阵并保持字体风格的可缩放字体产品,其特征在于,该字体产品包含:
对应各个低分辨率尺寸,设立分别的目标灰度点阵的字体数据;
目标灰度点阵的数据可以输入一个标准字体引擎产生和显示相同的目标灰度点阵字体于屏幕画面上。
14.根据本发明权利要求12的可以在低分辨率产生目标灰度点阵并保持字体风格的可缩放字体产品,其特征在于,该字体产品包含:
对应各个低分辨率尺寸的间距,设立各别的目标轮廓的字体数据;
目标轮廓的字体数据可以输入一个标准字体引擎产生和显示目标灰度点矩阵字体于屏幕画面上。
15.根据本发明权利要求12的可以在低分辨率产生目标灰度点阵并保持字体风格的可缩放字体产品,其特征在于,该产品包含:
对应各个低分辨率尺寸,设立各别的提示信息;
由参考轮廓根据提示信息产生目标灰度点阵的字体数据;
目标灰度点阵的字体数据可以输入一个标准字体引擎产生和显示相同的目标灰度点阵字体于屏幕画面上。
16.根据本发明权利要求12的可以在低分辨率产生目标灰度点阵并保持字体风格的可缩放字体产品,其特征在于,该产品包含:
对应各个低低分辨率尺寸间距,设立各别的提示信息;
由参考轮廓根据提示信息产生目标轮廓的字体数据;
目标轮廓的字体数据可以输入一个标准字体引擎产生和显示目标灰度点阵字体于屏幕画面上。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/907,732 US8854375B2 (en) | 2010-10-19 | 2010-10-19 | Method and system for generating gray dot-matrix font from binary dot-matrix font |
US12/907,732 | 2010-10-19 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN102456231A true CN102456231A (zh) | 2012-05-16 |
Family
ID=45933759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2011102661880A Pending CN102456231A (zh) | 2010-10-19 | 2011-09-08 | 将目标点阵字体转化成目标轮廓字体的方法及系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8854375B2 (zh) |
CN (1) | CN102456231A (zh) |
TW (1) | TW201225062A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502010A (zh) * | 2019-08-15 | 2019-11-26 | 同济大学 | 一种基于贝塞尔曲线的移动机器人室内自主导航控制方法 |
CN113515919A (zh) * | 2021-09-14 | 2021-10-19 | 北京江融信科技有限公司 | 一种生成中文TrueType字体的方法及系统 |
CN114061583A (zh) * | 2021-10-21 | 2022-02-18 | 郑州轻工业大学 | 基于自适应晶格卡尔曼滤波的移动机器人状态估计及自主导航方法 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130018636A1 (en) * | 2011-07-14 | 2013-01-17 | Microsoft Corporation | Quadratic approximate offset curves for quadratic curve segments |
WO2014205632A1 (en) * | 2013-06-24 | 2014-12-31 | Adobe Systems Incorporated | Gravity point drawing method |
CN103699651B (zh) * | 2013-12-26 | 2017-02-22 | 北京海泰方圆科技股份有限公司 | 基于变换向量的点阵字体的放大显示方法及放大显示装置 |
TWI567568B (zh) * | 2016-03-22 | 2017-01-21 | 文鼎科技開發股份有限公司 | 字型調整方法 |
TWI631552B (zh) * | 2017-07-21 | 2018-08-01 | Ili Technology Corp. | 顯示裝置及其影像處理方法 |
US10388045B2 (en) * | 2018-01-04 | 2019-08-20 | Adobe Inc. | Generating a triangle mesh for an image represented by curves |
US12062119B2 (en) * | 2022-06-28 | 2024-08-13 | Adobe Inc. | Dynamic differential evolution based control for typeface visual accessibility |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1234564A (zh) * | 1998-02-23 | 1999-11-10 | 华康科技开发股份有限公司 | 字型产生法及电脑媒介 |
CN1264878A (zh) * | 1999-02-23 | 2000-08-30 | 华康科技开发股份有限公司 | 一种字型产生法及装置 |
US6151025A (en) * | 1997-05-07 | 2000-11-21 | Hewlett-Packard Company | Method and apparatus for complexity reduction on two-dimensional convolutions for image processing |
CN1936961A (zh) * | 2005-09-23 | 2007-03-28 | 威锋数位开发股份有限公司 | 边影导向的灰阶字型产生法 |
CN101415079A (zh) * | 2008-11-04 | 2009-04-22 | 新奥特(北京)视频技术有限公司 | 一种将字幕对象转换为贝塞尔曲线的方法 |
CN101676988A (zh) * | 2008-09-19 | 2010-03-24 | 威锋数位开发股份有限公司 | 笔划基础中文字型小字品质显示的方法和装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5790126A (en) * | 1995-01-03 | 1998-08-04 | Microsoft Corporation | Method for rendering a spline for scan conversion of a glyph |
US5852448A (en) | 1996-09-20 | 1998-12-22 | Dynalab Inc. | Stroke-based font generation independent of resolution |
US6151032A (en) | 1996-09-20 | 2000-11-21 | Dynalab, Inc. | Stroke-based glyph-outline font generation in low/high resolution space |
US6157390A (en) | 1996-09-20 | 2000-12-05 | Dynalab (S) Ltd. | Stroke-based font generation |
EP1026659A3 (en) * | 1999-02-01 | 2002-01-30 | Sharp Kabushiki Kaisha | Character display apparatus, character display method, and recording medium |
US6501475B1 (en) | 1999-10-22 | 2002-12-31 | Dynalab Inc. | Glyph-based outline font generation independent of resolution |
US6661417B1 (en) | 2000-08-28 | 2003-12-09 | Dynalab Inc. | System and method for converting an outline font into a glyph-based font |
WO2002086502A2 (en) * | 2001-04-23 | 2002-10-31 | Metabometrix Limited | Methods for the diagnosis and treatment of bone disorders |
US6608931B2 (en) * | 2001-07-11 | 2003-08-19 | Science Applications International Corporation | Method for selecting representative endmember components from spectral data |
KR100497390B1 (ko) * | 2003-04-01 | 2005-06-23 | 삼성전자주식회사 | 벡터 폰트 생성방법 및 장치 |
US7295346B2 (en) * | 2003-06-23 | 2007-11-13 | Xeorx Corporation | Methods and apparatus for antialiasing using selective implementation of logical and averaging filter operations |
US20050089237A1 (en) * | 2003-10-24 | 2005-04-28 | Jaehwa Park | Method and apparatus for bezier curve approximation data compression |
EP1710782B1 (en) * | 2004-01-27 | 2016-07-27 | Fujitsu Limited | Display device, display control device, display method, display control program, and computer-readable recording medium containing the program |
US7239319B2 (en) * | 2004-08-27 | 2007-07-03 | Microsoft Corporation | Rendering outline fonts |
US7199797B2 (en) | 2004-12-13 | 2007-04-03 | Dynacomware | Silhouette-oriented gray font generation |
CN100369051C (zh) * | 2005-01-11 | 2008-02-13 | 富士通株式会社 | 灰度字符词典的生成装置 |
US7764747B2 (en) * | 2007-03-30 | 2010-07-27 | Olympus Corporation | Methods and systems for transmitting and processing pilot signals |
US8306328B2 (en) * | 2009-01-26 | 2012-11-06 | Mitsubishi Electric Research Laboratories | Method for converting outline characters to stylized stroke characters |
US8457347B2 (en) * | 2009-09-30 | 2013-06-04 | F. Scott Deaver | Monitoring usage of a computer by performing character recognition on screen capture images |
-
2010
- 2010-10-19 US US12/907,732 patent/US8854375B2/en active Active
-
2011
- 2011-09-08 CN CN2011102661880A patent/CN102456231A/zh active Pending
- 2011-10-07 TW TW100136457A patent/TW201225062A/zh unknown
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6151025A (en) * | 1997-05-07 | 2000-11-21 | Hewlett-Packard Company | Method and apparatus for complexity reduction on two-dimensional convolutions for image processing |
CN1234564A (zh) * | 1998-02-23 | 1999-11-10 | 华康科技开发股份有限公司 | 字型产生法及电脑媒介 |
CN1264878A (zh) * | 1999-02-23 | 2000-08-30 | 华康科技开发股份有限公司 | 一种字型产生法及装置 |
CN1936961A (zh) * | 2005-09-23 | 2007-03-28 | 威锋数位开发股份有限公司 | 边影导向的灰阶字型产生法 |
CN101676988A (zh) * | 2008-09-19 | 2010-03-24 | 威锋数位开发股份有限公司 | 笔划基础中文字型小字品质显示的方法和装置 |
CN101415079A (zh) * | 2008-11-04 | 2009-04-22 | 新奥特(北京)视频技术有限公司 | 一种将字幕对象转换为贝塞尔曲线的方法 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110502010A (zh) * | 2019-08-15 | 2019-11-26 | 同济大学 | 一种基于贝塞尔曲线的移动机器人室内自主导航控制方法 |
CN113515919A (zh) * | 2021-09-14 | 2021-10-19 | 北京江融信科技有限公司 | 一种生成中文TrueType字体的方法及系统 |
CN113515919B (zh) * | 2021-09-14 | 2022-01-07 | 北京江融信科技有限公司 | 一种生成中文TrueType字体的方法及系统 |
CN114061583A (zh) * | 2021-10-21 | 2022-02-18 | 郑州轻工业大学 | 基于自适应晶格卡尔曼滤波的移动机器人状态估计及自主导航方法 |
CN114061583B (zh) * | 2021-10-21 | 2023-07-07 | 郑州轻工业大学 | 基于自适应晶格卡尔曼滤波的移动机器人状态估计及自主导航方法 |
Also Published As
Publication number | Publication date |
---|---|
TW201225062A (en) | 2012-06-16 |
US20120092344A1 (en) | 2012-04-19 |
US8854375B2 (en) | 2014-10-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102456231A (zh) | 将目标点阵字体转化成目标轮廓字体的方法及系统 | |
CN107610200B (zh) | 一种基于特征模板的字库快速生成方法 | |
DE69927738T2 (de) | Verfahren und Vorrichtung zum Editieren von skizzierten Kurven | |
CN101853523B (zh) | 一种采用草图创建三维人脸模型的方法 | |
KR100219072B1 (ko) | 중심축 변환을 이용한 폰트 및 그 폰트 서체의 변형 및 라스터라이징 방식 | |
KR100914218B1 (ko) | 3차원 스캔 데이터를 이용하여 로프트 서피스를 계산하기위한 시스템 및 방법 | |
US6661417B1 (en) | System and method for converting an outline font into a glyph-based font | |
JP2019512118A (ja) | 2つのタイプのインクベクトルデータを生成して選択的に出力する方法及びシステム | |
DE102015000498A1 (de) | Geometrisches und parametrisches Modifizieren einer Nutzereingabe als Zeichenhilfe | |
CN110084890A (zh) | 基于混合现实的机械臂文字复写方法及装置 | |
JP6298422B2 (ja) | マンマシンインターフェースのグラフィック表示用の文字列の処理技術 | |
Bernstein et al. | Lillicon: Using transient widgets to create scale variations of icons | |
Liu et al. | Learning implicit glyph shape representation | |
DE102017000469A1 (de) | Nachbearbeiten von Kurven unter Verwendung von nichtgleichmäßig skalierten Kurven mit kubischer Krümmungsvariation | |
TW299411B (zh) | ||
DE602004002291T2 (de) | Verfahren zur erzeugung eines zweidimensionalen distanzfeldes innerhalb einer zelle, die eine ecke eines zweidimensionalen objektes beinhaltet | |
US20180108185A1 (en) | Method and computer system for virtually displaying images on carton boxes | |
KR101905300B1 (ko) | 외곽선 폰트를 이용하여 metafont에 의한 폰트를 생성하는 장치 및 방법 | |
CN107507129A (zh) | 一种中文字符缩放方法 | |
JP2833101B2 (ja) | パターン変形方式 | |
JP2002260008A (ja) | 3次元文字データ生成装置及び3次元図形データ生成装置 | |
DE102018005621A1 (de) | Selektives Aktivieren einer Trackpadfunktionalität in Grafikschnittstellen | |
CN1936961A (zh) | 边影导向的灰阶字型产生法 | |
CN117152311B (zh) | 基于双分支网络的三维表情动画编辑方法及系统 | |
JP7189584B2 (ja) | 形状データ処理装置、形状データ処理方法及び形状データ処理プログラム |
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 |
Application publication date: 20120516 |