CN101536037A - 绘制和编码字形 - Google Patents

绘制和编码字形 Download PDF

Info

Publication number
CN101536037A
CN101536037A CNA2007800408428A CN200780040842A CN101536037A CN 101536037 A CN101536037 A CN 101536037A CN A2007800408428 A CNA2007800408428 A CN A2007800408428A CN 200780040842 A CN200780040842 A CN 200780040842A CN 101536037 A CN101536037 A CN 101536037A
Authority
CN
China
Prior art keywords
font
profile
value
parameter
parameters
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.)
Granted
Application number
CNA2007800408428A
Other languages
English (en)
Other versions
CN101536037B (zh
Inventor
T·S·道灵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Adobe Inc
Original Assignee
Adobe Systems Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of CN101536037A publication Critical patent/CN101536037A/zh
Application granted granted Critical
Publication of CN101536037B publication Critical patent/CN101536037B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/206Drawing of charts or graphs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/28Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/56Extraction of image or video features relating to colour
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N1/00Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
    • H04N1/387Composing, repositioning or otherwise geometrically modifying originals

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Generation (AREA)

Abstract

公开了一种方法、系统和装置,其中包括用于对字体信息进行压缩编码的计算机程序产品。在一个方面,提供一种方法,包括:标识元素库(630),其中元素库中的每个元素与轮廓(633)以及一个或多个参数(637)相关联。标识字形,该字形具有一个或多个对元素库(630)中的相应元素的引用(627)。每个引用指定了与相应元素相关联的一个或多个参数的值。根据字形所引用的每个相应元素来绘制(680)该字形。每个引用所指定的一个或多个参数的值影响所绘制元素的外观(645,660,670)。

Description

绘制和编码字形
技术领域
本公开涉及信息编码,并且更具体地,涉及字体的压缩表示。
背景技术
字体描述了字形(glyph)族,其通常具有特定的样式或者字样(typeface)。字体中的每个单独字形通常表示语言中的单个字符,并且字体潜在地可以包括多种语言的字形。每个字形描述了字符看起来应该是什么样子的。计算机字体是字体的数字编码,通常包含在文件中,其一般用于规定如何将字符绘制在显示设备上、如何由打印机打印或者二者。
轮廓字体是一种计算机字体,其中通常将每个字形指定为描述轮廓的一系列点。例如,图1A示出了字形100,其表示为例如可以在轮廓字体中指定的一系列直线(例如,直线110)和曲线(例如,曲线120)。字形100中的每条直线或者曲线包括至少一个点130,其指定每条直线或者曲线的末端的水平和垂直位置。图1B中示出了字形100的绘制195。
每个字形可以包括多个不连续的部分。例如,字形100包括部分140、150和160,每个部分彼此间分离。每个部分的轮廓通常由一个或多个轮廓线来描述,其中轮廓线被指定为一系列的直线或者曲线。例如,字体部分150包括三个轮廓线155A、155B和155C。支持多种语言(特别是亚洲语言)字符的字体可以对上千个乃至上万个字形以及字形的组成部分轮廓进行编码。
发明内容
总体上,本说明书中所描述主题的一个方面可以在如下方法中实现,该方法包括:标识元素库的动作,其中元素库中的每个元素与轮廓以及一个或多个参数相关联。标识字形,该字形具有一个或多个对元素库中的相应元素的引用。每个引用指定与相应元素相关联的一个或多个参数的值。基于字形所引用的每个相应元素来绘制字形。每个引用所指定的一个或多个参数的值影响所绘制元素的外观。此方面的其他实施方式包括相应的系统、装置以及计算机程序产品。
这些以及其他实施方式可选地包括以下一个或多个特征。元素库中的每个元素可以区别于元素库中的所有其他元素。绘制字形可以包括:基于相关联的一个或多个参数的值,来绘制与字形所引用的每个相应元素相关联的每个轮廓,其中一个或多个参数中每一个参数的值影响轮廓的形状。与元素相关联的一个或多个参数中的每一个可以描述相关联轮廓的形变,其中每个形变在绘制时影响轮廓的形状。形变可以影响一个或多个轮廓的高度、宽度、旋转、粗细、锥化(taper)、扩展、半径以及曲率。每个形变可以影响部分轮廓的形状。
总体上,本说明书中所描述主题的另一方面可以在如下方法中实现,该方法包括编码元素库的动作,其中元素库中的每个元素与轮廓以及一个或多个参数相关联。元素库中的每个元素区别于库中的所有其他元素。基于多个对元素库中相应元素的引用来编码字形。每个引用包括相关联的一个或多个参数中一个或多个参数的值。此方面的其他实施方式包括相应的系统、装置以及计算机程序产品。
这些以及其他实施方式可选地包括以下一个或多个特征。一个或多个参数中的每个参数可以与元素的关联轮廓的形变相关联。形变可以影响轮廓的形状,并且可以包括以下一个或多个:高度、宽度、旋转、粗细、锥化、扩展、半径以及曲率。每个形变可以影响部分轮廓的形状。引用中参数的值可以使用相对于先前已编码引用的值的偏移来编码。可以确定每个参数的最小绝对值。编码字形可以包括以如下方式编码引用特定元素的多个引用:指定多个引用中每个引用的特定元素的参数值,以及仅标识该特定元素一次。编码字形可以包括使用可变字节编码来编码值。
总体上,本说明书中所描述主题的一个方面可以实现在一种计算可读介质中,该介质包括用于存储字形的数据结构。该数据结构包括一个或多个对元素库中元素的引用,其中元素库中的每个元素与轮廓相关联。该数据结构还包括一个或多个引用中每个引用的多个值,该一个或多个值指定了与一个或多个引用的相应值相关联的轮廓的形状。
可以实施本说明书中所描述主题的特定实施方式,以实现以下一个或多个优点。可以通过如下方式来指定和编码字体,与指定每个字形部分的轮廓相比,该方式需要非常少的存储空间。可以根据轮廓元素的组合而不是一个或多个轮廓线来指定和编码字形。使用轮廓元素的组合来设计字体的字形可以降低设计难度。复用字形中的元素改进了字形内以及字形间一致性,这对于易读性和质量二者而言都是重要的。参数的数值影响字形中轮廓元素的精细形状,可以对参数的数值进行堆叠,以减少字形编码的大小。字形中的数值可以是可变字节编码的或者是指定为相对偏移,以便进一步减小编码字形的大小。
下文的附图和描述中记载了本发明的一个或多个实施方式的细节。根据描述、附图以及权利要求书,本发明的其他特征、方面和优点将变得易见。
附图说明
图1A是轮廓字体中指定的字形的图示。
图1B是图1A中示出的字形的绘制的图示。
图2A是其各部分包括与各种元素相关联的多个轮廓的字形的图示。
图2B是图2A中示出的字形的绘制的图示。
图3是一种字体的图示,该字体包括引用元素库中元素的多个字体字形。
图4示出了与字形中所引用的元素相关联的参数值如何影响字形中轮廓的外观。
图5是用于绘制字形的流程图,该字形包括对元素库中元素的引用。
图6是用于绘制字形的系统的框图,该字形引用来自元素库的元素。
各图中相似的参考标号和名称表示相似的元素。
具体实施方式
图2A示出了字形200,字形200的部分210A-210C包括多个轮廓(例如,轮廓250A-250C),每个轮廓与相应的元素(例如,元素250-260)相关联。每个轮廓与字形中的其他轮廓不相连。例如,轮廓250A与字形中的所有其他轮廓(例如,轮廓260A-260C)相分离。与元素相关联的每个轮廓是由一个或多个轮廓线所指定的轮廓,其中每个轮廓线由一系列直线或者曲线(例如,二次或者三次贝塞尔曲线)指定。
所绘制的字形可以多次包括与特定元素相关联的轮廓。例如,轮廓250B和轮廓250C具有类似的外观;这些轮廓仅仅是其相对垂直位置有所不同。可以认为该字形多次引用了相同的元素。轮廓250A和250B也是类似的;然而,除了具有不同的位置之外,这些轮廓的相对水平大小也是不同的。
每个元素与轮廓以及一个或多个参数相关联,其中所述参数指定了轮廓的外观,诸如轮廓的长度和宽度以及轮廓的垂直和水平位置。当字形引用元素时,所绘制的字形包括与所引用的元素相关联的轮廓。每个元素引用包括确定字形中轮廓外观的每个元素参数的值。因此,每个元素参数的值是字形特定的。在一些实现中,如果参数与默认值相关联,则字形无需指定每个字形参数的值。
在一些实现中,一些参数不能应用于所有元素。例如,元素280可以包括指明元素粗细的参数以及指明元素曲率的另一参数。尽管前一参数也适用于元素250A,但后一参数则不适用。参考图4更详细地描述了参数及其对元素轮廓外观的潜在影响。
可以通过引用一个或多个预定义的元素以及每个元素的参数的指定值来指定字形。例如,指定字形200可以包括在三个单独实例中引用元素260。每个引用包括元素的参数的值,其中该值描述了元素的轮廓在字形中的位置和形状。
一般而言,字形还可以包括与元素不相关联的轮廓。例如,轮廓240可以不是一个元素,并且没有相关联的参数,在字形中,可以将该轮廓指定为一系列线段而不是对形状的引用。在一些实现中,对于特定的字体,每个元素可以从不同的元素库来标识。
图2B示出了图2A中示出的字形200的绘制295。指定字形中的每个轮廓绘制为实心区域,其绘制了看起来仅包括三个单独字形部分的字形。例如,尽管字形200中的部分210C包括多个轮廓,所绘制的轮廓在理想上看起来等同于仅使用单个轮廓指定的相应部分(例如,部分160)的绘制(例如,与图1B中的绘制195相比)。一般而言,绘制字形可以包括绘制彩色字形或者彩色阴影的字形、应用可视效果(诸如,投射阴影、轮廓、三维挤压)、将字形光栅化为图像、或者用作图像遮罩。在一些实现中,可以根据图2A中示出的轮廓元素得出类似于图1A中所示的轮廓。
可以将指定字形200所需的信息与指定字形100所需的信息进行比较。具体地,注意,部分140需要至少48个点来指定每条直线和曲线,其中每个点包括两个值(例如,水平位置和垂直位置)。实际上,字形可能包括远不止45个点。相反,部分210A中的8个元素引用中的每一个都需要8个点来指定每个轮廓的位置,而每个元素的参数只需要少至8个附加的值。由此,与标识和提供组成字形200的最大部分的8个元素中每个元素的参数的值所需的信息(例如,24个值)相比,指定定义轮廓140的点(例如,90个值)所需的信息要多得多。
图3是字体300的图示,字体300包括多个字体的字形350A-350C,其引用元素库310中的元素。元素库310包括多个元素,每个元素由其不同的轮廓(例如,轮廓320、330和340)示出。一般而言,每个元素的轮廓(例如,轮廓320、330和340)区别于所有其他元素的轮廓,例如,库中没有两个轮廓具有相同的外观(或者,可能具有相同的外观,这是由于按照任一相应元素的参数发生形变的结果)。例如,在一些实现中,轮廓330和轮廓340看起来相似,然而,轮廓330的边是直线,而轮廓340的边是曲线。在一些实现中,轮廓330和340二者可以相同,然而每个轮廓的关联元素的参数可能不同。例如,与轮廓340相关联的元素可以包括影响轮廓曲率的参数,而与轮廓330相关联的元素没有这种参数。在这种实现中,需要弯曲变化轮廓340的字形引用该轮廓的相应元素以及适当的曲率参数,而根据直的轮廓330构造的字形引用相应的元素,而不必包括与轮廓曲率相关的一个或多个参数的任何附加值。
字体中的每个字形可以引用库中的一个或多个元素。例如,字形350A可以引用元素320、330、333、337和340。另一字形350B可以引用元素320、333和337。通过引用库中的元素,与仅使用直线和曲线来指定字形的情况下所需的信息相比,可以使用较少的信息来指定字体中的每个字形。在字体中,特别是在包括大量表现出视觉相似性的字形的字体(例如,包含日文日本汉字以及繁体和简体中文文字中使用的字符的字体)中,字形可以重复地引用每个元素。
图4示出了与字形400中引用的元素相关联的参数的值(例如,值410、415、425、435、445、450、455、460、465和470)可以如何影响字形中的轮廓448、490A-490C、493和497的外观。每个元素与多个参数相关联,所述参数影响与元素相关联的轮廓将如何出现在字形中。每个元素与两个位置参数相关联,该位置参数指定了轮廓在字形内的相应水平位置和垂直位置。例如,可以将轮廓490C的位置指定为相对于先前的指定点、或者相对于可以存在于字形中的原点407(例如,字形基线403的最左边的点)的x和y坐标(例如,分别是值410和值445)。每个元素还与至少一个形变参数相关联,该形变参数影响元素轮廓(例如,轮廓的宽度、高度或者曲率)在字形中的形状而不影响位置。
一般而言,元素的每个参数对应于可以应用于该元素的关联轮廓的多个形变之一。每个形变指定了可以改变元素轮廓外观的方式(例如,缩放、旋转或者曲率)。参数的值影响形变影响元素轮廓的程度。例如,元素490包括与用来水平缩放元素的关联轮廓的形变相关联的参数。注意,指定元素490的水平缩放的值470描述了轮廓490A,其大于在利用值475来指定相同元素时的轮廓,其中值475指定了轮廓490C的水平缩放。以此方式,每当字形引用元素时,可以定制每个元素的轮廓。
可以使用其他形变来确定轮廓关于点的旋转。例如,元素497与如下参数相关联,该参数的值460影响元素轮廓围绕点463的旋转。关于其进行旋转的点463可以是针对所有元素预先确定的,或者可以是针对每个元素预先确定的。在一些实现中,参数的值可以用来影响与另一参数相关联的形变的性质。例如,元素497可以与第二参数相关联,该第二参数指定元素的轮廓关于其进行旋转的点(例如,点463)的位置。
元素包括以下位置参数中的每一个,其中位置参数影响元素的轮廓在字形内的位置:
●水平位置,其影响元素的轮廓在字形内的水平位置(例如,值410)。
●垂直位置,其影响元素的轮廓在字形内的垂直位置(例如,值455)。
与每个元素相关联的特定形变可以包括以下一个或多个形变:
●水平缩放,其影响元素轮廓的宽度(例如,值470)。
●垂直缩放,其影响元素轮廓的高度。
●粗细,其影响元素轮廓的粗细(例如,值455)而不影响其宽度。在一些实现中,元素可以与多个粗细参数相关联,每个粗细参数影响元素轮廓的不同部分的粗细。例如,三个粗细参数可以影响元素495的一个水平条和两个垂直条中每一个的相对粗细。
●旋转,其影响轮廓关于点的旋转(例如,值460)。
●曲率,其影响可应用于轮廓的曲率的点。例如,参数450的值标识轮廓448沿特定方向的弯曲程度。
●笔划锥化,其影响轮廓中的直线或者曲线相对于轮廓其他部分的扭曲或者锥化程度。例如,参数465的值标识了轮廓493末端的锥化程度。
●特征扩展,其影响轮廓中部分的长度或者大小。例如,轮廓的特征455可以增长,而不影响轮廓的其他部分。在另一示例中,轮廓495的垂直笔划可以增长或者缩短。而且,还可以按照关联参数的值来影响轮廓495的每个垂直笔划之间的空间。
●半径,其影响具有圆形形状的元素轮廓的大小。在一些实现中,可以使用参数来指定具有椭圆形形状的轮廓的长轴和短轴。
可以将以上一个或多个组合到单个参数中。例如,一个元素可以与两个参数相关联,这两个参数分别对应于水平缩放和垂直缩放中的一个。另一元素可以与单个参数相关联,该参数影响水平缩放和垂直缩放二者(例如,轮廓的呈比例缩放)。如果轮廓在大小呈比例变化的多个字形中出现,则组合形变可能是有用的。
在一些实现中,每个已编码元素可以包括元素轮廓(例如,指定为一系列直线和曲线)的编码。每个元素还可以包括如下信息,该信息指定元素具有多少形变参数、哪些形变与所述参数相关联、以及元素中的哪些点与每个形变相关联。例如,可以利用与轮廓488相关联的元素对信息进行编码,其指明轮廓的哪些点要进行曲率形变。
在一些实现中,针对字形中的元素参数所指定的值可以是相对于先前指定字形的。例如,轮廓490B的位置可以相对于在其之前指定的元素(例如,轮廓490A)来指定,而不是相对于字形原点407来指定。与轮廓490B的垂直位置相关联的值435指明了在先前轮廓490A之上的该轮廓位置。同样,值425和415指明了轮廓490A相对于轮廓490B位置的水平位置和垂直位置。
在一些实现中,每个单独的值可以指定为相对于先前指定值的偏移。例如,元素引用可以包括以下6个值:610、548、457、528、427、481。可以使用如下的相对偏移来指定这些相同的值:610、-62、-91、71、-101、54。特别地,注意,第二个值548是通过将610与-62相加而得到的,而第三个值是通过将548与-91相加得到的。注意,当以二进制编码时,前面的6个值每个都需要不止一个字节,而后面的6个值可以仅通过7个字节来容易地编码。备选地,可以将一系列值指定为关于该系列中第一个值的相对偏移(例如,上述值中的每一个可以作为相对于第一个值610的偏移而给出)。
通过编码来指定每个字形,该编码可以包括对元素的引用以及每个所引用元素的每个参数的值。一般而言,每个字形编码是较大的字体编码的一部分,并且通常存储在存储设备上的文件中(例如,存储在只读或者读写存储器上,并且可对其进行访问)。在一些实现中,字体编码可以包括元素库以及关于每个元素参数和相关联形变的信息。在其他实现中,元素库可以与字体分离地编码。备选地,可以以如下方式编码元素库,使得一些元素与字体一起编码,而一些元素与字体分离地编码(例如,多个字体编码可以引用的全局元素库)。
在一些实现中,字形可以编码为一系列指令,每个指令具有一个或多个操作数。例如,指令可以通过指定具有两个操作的“lineto”指令,来指示从当前位置到第二位置描绘一条直线,其中所述两个操作指明第二位置的水平和垂直方面。指令还可以引用元素,指示元素的轮廓是从元素库中描绘的;这样的指令还可以指明可被解释为参数值的可变数目的操作数。例如,对于引用指令,第一操作数可以标识特定的元素(例如,引用元素库中的元素位置),而后续操作数指明每个元素参数的值。
例如,两次引用相同元素的字形可以具有以下代表性编码:
84  34   -29  45  94  compose
39  -92  21   23  94  compose
在上文的编码中,“compose”指明使用第一操作数来标识特定元素(在此情况下是元素库中的元素“94”)的指令。其余4个操作数是所指定元素参数值。所绘制的字形将包括两个轮廓,二者都引用相同的元素,但是根据其指定的参数而在位置和形状方面有所不同。
在一些实现中,指定元素参数的操作数可以堆叠,如在下文的代表性编码中所示:
84  34  -29  45  94  39  -92  21  33  94  compose
前8个值对上文给出的两个引用二者指定了4个相同的参数。通过堆叠参数值,对于编码中指定的四个参数的每个,多次引用元素“94”。一般而言,可以按照如下方式来堆叠元素参数,使得对于具有n个参数的给定元素而言,如果提供m乘n个参数,则按照m个由n个参数构成的集合中的每一个集合来产生m个轮廓。
除了引用元素之外,字形编码还可以包括直接指定轮廓(例如,指定为直线和曲线,而不引用元素)的信息。在无法根据元素库中可用元素来单独构建或者有效构建字形的所需方面时,这种信息可以与字形一起编码。
在一些实现中,可以使用可变字节编码来编码每个编码的值或数字。可变字节编码将数字编码在与数字的绝对值成比例的可变数目字节中。在一些实现中,可以使用单个字节来编码较小的数字以及指定是否需要附加位来解码该数字的信息二者。例如,假设v是第一字节的值,则如果v具有32到246之间的值,则所编码的数字是:v减去139。如果v具有包含247到250之间的值,则编码的数字是:(v-247)×256+v’+108,其中v’是v后面字节的值。类似地,如果v具有包含251到254之间的值,则编码的数字是:(v-251)×(-256)-v’-108。如果v的值是255,则数字作为4字节的有符号数被编码在v后面的4个字节中。可以使用0到32之间的v值来编码至少32个唯一的指令或者操作(例如,引用元素库中元素的指令,或者在当前位置和操作数给出的位置之间画线的指令)。
在一些实现中,可以编码字符,以最小化在编码中使用的每个数字的绝对值。不是在需要大值的维度中指定轮廓值(例如,300×300的方框),而是可以将值最小化(例如,30×30的方框),同时仍然保留轮廓的相对形状。将用来编码字形的数字的绝对值最小化,使得存储字体所需的字节数目得以最小化;特别是在与上文讨论的技术之一(例如,可变字节编码或者相对偏移)相结合的情况下。
图5是用于绘制包括对元素库中元素的引用的字形的过程500的流程图。过程500包括标识元素库(步骤510)。在一些实现中,元素库包括字体,字体包含引用来自该库的元素的字形。在其他实现中,元素库可以与字体分离地标识。元素库可以是预定义的(例如,由操作系统、应用或者用户偏好来预定义)。例如,可以标识元素库,其中,多个单独的字体(例如,其中每个字体具有不同的样式或者包括不同的字形集)中的每一个可以引用相同的元素库。
过程500包括接收对元素库中元素的标识(步骤520)。字体中的字形可以在引用中标识元素库中的特定元素。过程500包括接收所标识元素的一个或多个参数的值(步骤530)。每个参数的值与字形中对元素的每个引用相关联,或者是利用这种引用来进行编码。接收值可以包括对已被编码的值进行解码,以便使指定值所需的空间最小化。例如,可以将值指定为与前面的值的相对偏移,或者可以通过压缩可变字节编码来对值进行编码和/或可以对引用相同元素的多个引用的参数进行堆叠。在绘制轮廓时,使用每个形变参数的值来确定与元素相关联的轮廓的形状。
过程500包括:基于每个参数值(如字形的元素引用中所指定的)来对所标识元素相关联的轮廓进行形变(步骤540)。每个字形的形变是基于在元素库中指定的元素(例如,与元素相关联的参数)以及与元素相关联的特定轮廓。一般而言,字形可以在多个引用中标识多个元素,对于每个引用,指定每个引用的每个元素的参数值。对于每个引用,对所引用元素的轮廓进行形变(例如,可以针对字形中的每个引用来重复步骤520到540)。
过程500可以可选地包括接收与字形相关联的附加轮廓(步骤550)。这种轮廓不与元素库中的任何元素相关联。字形可以包括指定为直线和曲线的这种轮廓,特别是在字形描绘了无法有效指定为库中的一个元素或多个元素的组合的形状时。
过程500包括通过绘制经形变的轮廓来绘制字形(步骤560)。绘制经形变的轮廓的方式类似于绘制轮廓的方式,就如同其已被指定为字形的一部分那样。一般而言,这包括对轮廓进行光栅化,并且可以包括诸如反走样、亚像素绘制的其他操作。在一些实现中,可以将字形直接绘制在显示设备上。在其他实现中,每个字形的绘制或者经形变的轮廓存储于存储器高速缓存(例如,存储器的部分,通常是高速的易失性存储器)。在将字形绘制到显示设备时,可以从高速缓存绘制或者复制字形。从高速缓存将字形绘制到显示设备使得绘制一系列字形(通常可能包括相同字形的多次绘制)所需的解码、轮廓形变以及光栅化得以最小化。
一般而言,针对字形中的每个引用而绘制经形变的轮廓。在字形还指定了一个或多个轮廓(例如,在步骤550中接收的轮廓)的实现中,还要绘制字形特定的轮廓。
图6示出了用于绘制引用元素库中元素的字形的系统600。系统600总体上包括模块(例如,模块650-690)和资源(例如,字体信息610)。模块通常是不同功能的单元,其可以向其他模块提供信息并从其他模块接收信息。模块可以促进与输入或者输出设备(例如,字形绘制器680)的通信。模块可以对资源进行操作。一般而言,资源是模块可操作的信息的集合。然而,在一些实现中,向其他模块提供信息的模块可以像资源一样操作,反之亦然。例如,在一些实现中,字形高速缓存690可以视作资源。
系统600包括字体信息600,其包括涉及一个或多个字体的信息,其中每个字体包括用于一个或多个字形的字形信息620。用于每个字形的字形信息可以包括一个或多个轮廓623、以及一个或多个对元素的引用627。字形中的每个引用标识元素库630中的元素。元素库630包括一个或多个元素,每个元素包括轮廓633以及位置参数和形变参数637二者。
系统600包括字体绘制引擎640。字体绘制引擎630包括元素解码器645,其用于解码接收到的字形信息620。元素解码器645包括元素标识器650,用于对标识元素库630中元素的字形元素引用627进行解码。例如,元素标识器650可以标识元素引用指令和指令的各操作数,其可以指定所引用的元素以及元素的各参数的值二者。参数处理器660可以对涉及元素参数值的字形信息进行解码。参数处理器660可以确定所引用的元素需要多少参数。在一些实现中,参数处理器660可以确定参数何时被堆叠(例如,被编码为多个参数集的、对相同元素的多个引用,而没有显式地重新标识所引用的元素)。
元素解码器645还可以包括轮廓形变器670,其根据在字形中指定、并由参数处理器660处理的参数值,来对与元素相关联的轮廓进行形变。轮廓形变器645可以执行如下操作,该操作调节轮廓中的点相对于其他点的位置。例如,可以水平地或者垂直地将点移开(例如,对应于水平和垂直缩放参数)。
字体绘制引擎640还可以包括字形绘制器680。字形绘制器680可以使用字形中引用的元素的经形变轮廓以及字形特定的任何轮廓(如果有的话)来绘制字形。字形绘制器可以将每个字形直接绘制到显示设备695上。显示设备695可以包括CRT或者LCD显示器、投影显示设备或者内置显示设备(例如手持或者便携式通信、娱乐或控制设备中的那些设备)。
在一些实现中,字形绘制器680可以将字形绘制到字形高速缓存中。字形可以根据命令(例如,在需要时)绘制到字形高速缓存690中,或者可以预先绘制到字形高速缓存690中(例如,在系统加载字体时)。在这种实现中,当绘制到显示设备695上时,字形绘制器680可以通过访问字形高速缓存690中预先绘制的字形来绘制字形,而不是根据笔迹(scratch)来绘制字形。
一般而言,系统600中示出的模块和资源可以合并或者划分,并且可以实现在由一个或多个网络连接的一个或多个计算设备上的硬件或软件的某些组合中。
本说明书中描述的主题和功能性操作的实施方式可以在数字电子电路中实现,或者在计算机软件、固件或硬件中实现,该计算机软件、固件或硬件包括本说明书中公开的结构及其等同结构、或是它们的一个或多个的组合。本说明书中描述的主题的实施方式可以实现为一个或多个计算机程序产品,也即,在计算机可读介质上编码的、以便由数据处理装置执行或控制数据处理装置操作的一个或多个计算机程序指令模块。计算机可读介质可以是机器可读的存储设备、机器可读的存储衬底、存储设备、实现计算机可读的传播信号的组合、或者它们中的一个或多个的结合。术语“数据处理装置”包括用于处理数据的所有装置、设备和机器,例如包括可编程处理器、计算机,或者多个处理器或计算机。除了硬件之外,该装置可以包括为考虑中的计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统、跨平台运行时环境,或者它们中一个或多个的结合的代码。传播信号是人工生成的信号,例如及其生成的电信号、光信号或者电磁信号,生成这些信号是为了对信息进行编码以便传输到适当的接收器装置。
计算机程序(也公知为程序、软件、软件应用、脚本或代码)可以由任意形式的编程语言编写,包括编译语言或解释语言,说明性语言或过程语言,并且该计算机程序可以任意形式部署,包括部署为单独的程序或模块、组件、子例程,或者适于在计算环境中使用的其他单元。计算机程序无需对应于文件系统中的文件。程序可以存储在保存其他程序或数据(例如,存储在标记语言文档中的一个或多个脚本)的文件的一部分中、可以存储在专门用于考虑中的程序的单个文件中,或者存储在多个协同文件中(例如,存储一个或多个模块、子程序,或代码部分的文件)。可以将计算机程序部署为在一个计算机上执行,或者将其部署为在位于一个地点的多个计算机上执行或跨过多个地点分布且通过通信网络互连的多个计算机上执行。
本说明书中描述的处理和逻辑流程可以由执行一个或多个计算机程序的一个或多个可编程处理器执行,用于通过对输入数据进行操作以及产生输出来执行功能。该处理和逻辑流程还可以由例如FPGA(现场可编程门阵列)或ASIC(专用集成电路)的专用逻辑电路执行,并且也可以将装置实现为所述专用逻辑电路。
适于计算机程序执行的处理器例如包括通用和专用处理器两者、以及任意类型的数字计算机的任意一个或多个处理器。通常,处理器将从只读存储器或随机访问存储器或两者处接收指令和数据。计算机的基本元件是用于执行指令的处理器以及用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个海量存储设备,或被操作性地耦合为从所述用于存储数据的一个或多个海量存储设备接收数据、向其传送数据、或者进行两者,该海量存储设备例如磁盘、磁光盘、或光盘。然而,计算机不必一定具有这样的设备。而且,计算机可以嵌入在其他设备中,例如移动电话、个人数字助理(PDA)、移动音频或视频播放器、全球定位系统(GPS)接收器、或者便携式存储设备(例如,通用串行总线(USB)闪存驱动),这仅是一些例子。适于存储计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器、介质和存储设备,例如包括:半导体存储设备,如EPROM、EEPROM和闪存设备;磁盘,如内部硬盘或可移动硬盘;磁光盘;以及CD-ROM和DVD-ROM盘。处理器和存储器可以由专用逻辑电路补充或是包括在专用逻辑电路中。
为了提供与用户的交互,本说明书中描述的主题的实施方式可以在具有用于向用户显示信息的显示设备以及用户可以通过其向计算机提供输入的键盘和指示设备的计算机上实现,其中显示设备例如CRT(阴极射线管)或者LCD(液晶显示器)显示器,指示设备例如鼠标或者轨迹球。也可以使用其他类型的设备来提供与用户的交互;例如,提供给用户的反馈可以是任何形式的感观反馈,例如视觉反馈、声觉反馈、或者触觉反馈;并且可以接收来自用户的任意形式的输入,包括声音、语音或触觉输入。
本说明书中描述的主题的实施方式可以实现在包括后端组件的计算系统中,例如数据服务器;或实现在包括中间件组件的计算系统中,例如应用服务器;或实现在包括前端组件的计算系统中,例如具有图形用户界面或者Web浏览器的客户端计算机,用户通过该图形用户界面或Web浏览器可以与本说明书中描述的主题的实现进行交互;或实现在一个或多个这样的后端、中间件、或前端组件的任意结合中。系统组件可以与任意形式或介质的数字数据通信(例如,通信网络)互连。通信网络的示例包括局域网(“LAN”)和广域网(“WAN”),例如互联网。
计算系统可以包括客户端和服务器。客户端和服务器一般相互远离,并且通常通过通信网络进行交互。客户端和服务器的关系是借助于在各自计算机上运行的、彼此具有客户端-服务器关系的计算机程序得到的。
尽管本说明书包含多种特定细节,但是不应将其理解为是对本发明的范围或者所要求保护内容的限制,而应当理解为是本发明具体实施方式的特定特征的描述。本说明书中描述的在各个实施方式的上下文中的某些特征也可以在单个实施方式中结合实现。相反,在单个实施方式上下文中描述的各种特征也可以分别实现在多个实施方式中或者任意适当的子组合中。而且,尽管上文可能将特征描述为在特定的组合中操作,甚至初始也是这样要求保护的,但是来自所要求保护的组合的一个或多个特征在一些情况下可以从该组合中去除,并且所要求保护的组合可以针对子组合或组合的形变。
类似地,尽管在附图中以特定的顺序描述操作,但是不应将其理解为要求按照所示的特定顺序或是串行顺序来执行这些操作,或是要求执行全部所示的操作以得到期望的结果。在特定环境中,多任务和并行处理可能是有利的。而且,在上述实施方式中多个系统组件的分离不应被理解为在所有实施方式中需要这些操作,应当将其理解为所描述的程序组件和系统通常可以在单个软件产品中集成在一起,或是被打包到多个软件产品中。
已经描述了本说明书中所描述主题的特定实施方式。其他实施方式也在所附权利要求的范围之内。例如,可以按照不同的顺序来执行权利要求中记载的动作,并且仍然能够实现期望的结果。

Claims (20)

1.一种计算机实现的方法,包括:
标识元素库,所述元素库中的每个元素与轮廓以及一个或多个参数相关联;
标识具有一个或多个对所述参数库中的相应元素的引用的字形,每个引用指明与所述相应元素相关联的一个或多个所述参数的值;以及
基于所述字形所引用的每个相应元素来绘制所述字形,其中由每个引用所指定的所述一个或多个参数的值影响所绘制元素的外观。
2.根据权利要求1的方法,其中所述元素库中的每个元素区别于所述元素库中的所有其他元素。
3.根据权利要求1的方法,其中绘制所述字形还包括:
根据所述相关联的一个或多个参数的值来绘制与所述字形所引用的每个相应元素相关联的每个轮廓,其中所述一个或多个参数中的每个参数的值影响所述轮廓的形状。
4.根据权利要求1的方法,其中与元素关联的所述一个或多个参数中的每一个参数描述所述相关联轮廓的形变,每个形变在绘制时影响所述轮廓的形状,包括以下一个或多个:所述轮廓的高度、宽度、旋转、粗细、锥化、扩展、半径和曲率。
5.根据权利要求4的方法,其中:
每个形变影响所述轮廓的部分的形状。
6.一种计算机实现的方法,包括:
编码元素库,所述元素库中的每个元素与轮廓以及一个或多个参数相关联,所述元素库中的每个元素区别于所述元素库中的所有其他元素;以及
根据多个对所述元素库中相应元素的引用来编码字形,每个引用具有所述相关联的一个或多个参数中一个或多个的值。
7.根据权利要求6的方法,其中:
一个或多个参数中的每一个与所述元素的相关联轮廓的形变相关联。
8.根据权利要求7的方法,其中形变影响所述轮廓的形状,并且包括以下一个或多个:
高度、宽度、旋转、粗细、锥化、扩展、半径以及曲率。
9.根据权利要求8的方法,其中:
每个形变影响所述轮廓的部分的形状。
10.根据权利要求6的方法,其中:
使用相对于先前已编码的引用的值的相对偏移来编码所述引用中的参数值。
11.根据权利要求6的方法,其中编码所述字形包括:
确定每个参数的最小绝对值。
12.根据权利要求6的方法,其中编码字形包括:
以如下方式对引用特定元素的多个引用进行编码:针对所述多个引用中的每个引用来指定所述特定元素的参数的值,并且仅标识所述特定元素一次。
13.根据权利要求6的方法,其中编码字形包括:
使用可变字节编码对值进行编码。
14.一种计算机可读介质,包括用于存储字形的数据结构,所述数据结构包括:
一个或多个对元素库中元素的引用,所述元素库中的每个元素与轮廓相关联;以及
针对所述一个或多个引用中每个引用的多个值,所述一个或多个值描述与所述一个或多个引用的相应元素相关联的轮廓的形状。
15.一种编码在计算机可读介质上的计算机程序产品,其可操作以使数据处理装置执行操作,所述操作包括:
标识元素库,所述元素库中的每个元素与轮廓以及一个或多个参数相关联;
标识具有一个或多个对所述参数库中的相应元素的引用的字形,每个引用指明与所述相应元素相关联的一个或多个所述参数的值;以及
基于所述字形所引用的每个相应元素来绘制所述字形,由每个引用所指定的所述一个或多个参数的值影响所绘制元素的外观。
16.根据权利要求15的产品,其中绘制所述字形还包括:
根据所述相关联的一个或多个参数的值来绘制与所述字形所引用的每个相应元素相关联的每个轮廓,其中所述一个或多个参数中的每个参数的值影响所述轮廓的形状。
17.一种编码在计算机可读介质上的计算机程序产品,其可操作以使数据处理装置执行操作,所述操作包括:
编码元素库,所述元素库中的每个元素与轮廓以及一个或多个参数相关联,所述元素库中的每个元素区别于所述元素库中的所有其他元素;以及
根据多个对所述元素库中相应元素的引用来编码字形,每个引用具有所述相关联的一个或多个参数中一个或多个的值。
18.根据权利要求17的产品,其中绘制所述字形还包括:
根据所述相关联的一个或多个参数的值来绘制与所述字形所引用的每个相应元素相关联的每个轮廓,其中所述一个或多个参数中的每个参数的值影响所述轮廓的形状。
19.一种系统,包括:
用于标识元素库的装置,所述元素库中的每个元素与轮廓以及一个或多个参数相关联;
用于标识具有一个或多个对所述参数库中的相应元素的引用的字形的装置,每个引用指明与所述相应参数相关联的一个或多个所述参数的值;以及
用于基于所述字形所引用的每个相应元素来绘制所述字形的装置,其中每个引用所指定的所述一个或多个参数的所述值影响所绘制元素的外观。
20.一种系统,包括:
用于编码元素库的装置,所述元素库中的每个元素与轮廓以及一个或多个参数相关联,所述元素库中的每个元素区别于所述元素库中的所有其他元素;以及
用于根据多个对所述元素库中相应元素的引用来编码字形的装置,每个引用具有所述相关联的一个或多个参数中一个或多个的值。
CN2007800408428A 2006-09-20 2007-09-19 绘制和编码字形 Expired - Fee Related CN101536037B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US82637206P 2006-09-20 2006-09-20
US60/826,372 2006-09-20
US11/563,596 2006-11-27
US11/563,596 US20080068383A1 (en) 2006-09-20 2006-11-27 Rendering and encoding glyphs
PCT/US2007/078943 WO2008036771A2 (en) 2006-09-20 2007-09-19 Rendering and encoding glyphs

Publications (2)

Publication Number Publication Date
CN101536037A true CN101536037A (zh) 2009-09-16
CN101536037B CN101536037B (zh) 2011-10-12

Family

ID=39201841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2007800408428A Expired - Fee Related CN101536037B (zh) 2006-09-20 2007-09-19 绘制和编码字形

Country Status (7)

Country Link
US (1) US20080068383A1 (zh)
JP (1) JP2010504559A (zh)
KR (1) KR20090075693A (zh)
CN (1) CN101536037B (zh)
DE (1) DE112007002225B4 (zh)
GB (1) GB2455258B (zh)
WO (1) WO2008036771A2 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105474198A (zh) * 2013-06-11 2016-04-06 微软技术许可有限责任公司 具有动态调色板的分层z顺序和微调颜色字体
CN107292936A (zh) * 2017-05-18 2017-10-24 湖南大学 一种汉字字体矢量化方法

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6563502B1 (en) 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US7639258B1 (en) 2004-03-31 2009-12-29 Adobe Systems Incorporated Winding order test for digital fonts
US7719536B2 (en) 2004-03-31 2010-05-18 Adobe Systems Incorporated Glyph adjustment in high resolution raster while rendering
US8687004B2 (en) * 2010-11-01 2014-04-01 Apple Inc. Font file with graphic images
US8836699B2 (en) * 2011-02-04 2014-09-16 Chiung Yu Chen Generation of landmark architecture and sculpture based on chinese characters
US9323726B1 (en) * 2012-06-27 2016-04-26 Amazon Technologies, Inc. Optimizing a glyph-based file
CN103903247A (zh) * 2012-12-26 2014-07-02 北京谊安医疗系统股份有限公司 一种图像绘制方法及系统
US20140320527A1 (en) * 2013-04-30 2014-10-30 Microsoft Corporation Hardware glyph cache
EP3018630A3 (en) 2014-09-15 2018-05-16 Samsung Electronics Co., Ltd. Display method and apparatus for rendering repeated geometric shapes
GB2530103B (en) * 2014-09-15 2018-10-17 Samsung Electronics Co Ltd Rendering geometric shapes
US9881395B2 (en) 2015-08-21 2018-01-30 Sap Se Rendering multi-part glyphs
US10115374B2 (en) * 2016-05-18 2018-10-30 Blackberry Limited Variable glyph encoding
WO2018224152A1 (en) * 2017-06-08 2018-12-13 Huawei Technologies Co., Ltd. Devices and methods for displaying characters
US10984173B2 (en) * 2019-02-26 2021-04-20 Adobe Inc. Vector-based glyph style transfer
US11281742B2 (en) * 2019-08-08 2022-03-22 Adobe Inc. Interactive and selective coloring of digital vector glyphs

Family Cites Families (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200861A (en) * 1978-09-01 1980-04-29 View Engineering, Inc. Pattern recognition apparatus and method
US4580231A (en) * 1978-09-15 1986-04-01 Alphatype Corporation Ultrahigh resolution photocomposition system employing electronic character generation from magnetically stored data
US4331955A (en) * 1980-08-07 1982-05-25 Eltra Corporation Method and apparatus for smoothing outlines
US4486785A (en) * 1982-09-30 1984-12-04 International Business Machines Corporation Enhancement of video images by selective introduction of gray-scale pels
US4591844A (en) * 1982-12-27 1986-05-27 General Electric Company Line smoothing for a raster display
EP0132456B1 (de) * 1983-07-29 1988-02-03 DR.-ING. RUDOLF HELL GmbH Verfahren und Vorrichtung zur Prüfung der Satzqualität von Druckerzeugnissen, insbesondere Zeitungen
US4672369A (en) * 1983-11-07 1987-06-09 Tektronix, Inc. System and method for smoothing the lines and edges of an image on a raster-scan display
US4675830A (en) * 1984-07-06 1987-06-23 Compugraphic Corporation Method for producing a scaleable typeface data
US4780711A (en) * 1985-04-12 1988-10-25 International Business Machines Corporation Anti-aliasing of raster images using assumed boundary lines
US4827255A (en) * 1985-05-31 1989-05-02 Ascii Corporation Display control system which produces varying patterns to reduce flickering
US4720705A (en) * 1985-09-13 1988-01-19 International Business Machines Corporation Virtual resolution displays
IE852259L (en) * 1985-09-13 1987-03-13 Scottish & Newcastle Breweries A method and apparatus for constructing, storing and¹displaying characters
US4783652A (en) * 1986-08-25 1988-11-08 International Business Machines Corporation Raster display controller with variable spatial resolution and pixel data depth
US4851825A (en) * 1987-07-24 1989-07-25 Naiman Abraham C Grayscale character generator and method
EP0313332B1 (en) * 1987-10-22 1994-12-14 Rockwell International Corporation Method and apparatus for drawing high quality lines on color matrix displays
US5280577A (en) * 1988-01-19 1994-01-18 E. I. Du Pont De Nemours & Co., Inc. Character generation using graphical primitives
JPH023091A (ja) * 1988-01-19 1990-01-08 Du Pont Pixel Syst Ltd 文字生成装置および方法
US4945351A (en) * 1988-05-23 1990-07-31 Hewlett-Packard Company Technique for optimizing grayscale character displays
US4908780A (en) * 1988-10-14 1990-03-13 Sun Microsystems, Inc. Anti-aliasing raster operations utilizing sub-pixel crossing information to control pixel shading
AU629210B2 (en) * 1988-10-26 1992-10-01 Sun Microsystems, Inc. Method and apparatus for minimizing the visual degradation of digital typefaces
US5099435A (en) * 1989-03-31 1992-03-24 Bitstream, Inc. Method and apparatus for conversion of outline characters to bitmap characters
US5155805A (en) * 1989-05-08 1992-10-13 Apple Computer, Inc. Method and apparatus for moving control points in displaying digital typeface on raster output devices
US5299308A (en) * 1990-02-28 1994-03-29 Ricoh Company, Ltd. Graphic data processing apparatus for producing a tone for an edge pixel and reducing aliasing effects
US5241653A (en) * 1990-04-12 1993-08-31 Adobe Systems Incorporated Apparatus and method for adjusting and displaying scaled, rasterized characters
US5459828A (en) * 1990-08-01 1995-10-17 Xerox Corporation Optimized scaling and production of raster fonts from contour master fonts
JPH04246690A (ja) * 1990-08-29 1992-09-02 Xerox Corp 高品質のイメージを並みの解像度で表示する方法
CN1048342C (zh) * 1991-05-31 2000-01-12 李润生 首母码汉字输入法
US5301267A (en) * 1991-09-27 1994-04-05 Adobe Systems Incorporated Intelligent font rendering co-processor
JPH05127648A (ja) * 1991-10-31 1993-05-25 Ricoh Co Ltd アウトラインフオントデータの圧縮装置
JP3082491B2 (ja) * 1992-01-27 2000-08-28 松下電器産業株式会社 文字フォントデータ出力装置
US5416898A (en) * 1992-05-12 1995-05-16 Apple Computer, Inc. Apparatus and method for generating textual lines layouts
JP3382265B2 (ja) * 1992-07-29 2003-03-04 キヤノン株式会社 文字パターン作成方法及び装置
US5398306A (en) * 1992-07-31 1995-03-14 Urw Software & Type Gmbh Generation of multitype fonts on high resolution output devices
EP0604685A1 (en) * 1992-12-28 1994-07-06 Océ-Nederland B.V. Method of modifying the fatness of characters
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
CN1045227C (zh) * 1993-04-24 1999-09-22 付子宁 字形数据的压缩复原方法和有关产品
JP2967014B2 (ja) * 1993-05-24 1999-10-25 キヤノン株式会社 画像処理装置
JP3021278B2 (ja) * 1993-08-30 2000-03-15 シャープ株式会社 均一幅線の生成装置及び均一幅線の生成方法
US5959634A (en) * 1993-12-09 1999-09-28 Canon Kabushiki Kaisha Character generating system employing thickening or narrowing of characters
US5519824A (en) * 1994-03-18 1996-05-21 Timex Corporation System and method for storing and displaying font data representing fixed-width and compressed characters
US5734388A (en) * 1994-05-16 1998-03-31 Agfa Division, Bayer Corporation Method and apparatus for data compression of digital data to produce a scaleable font database
US5754187A (en) * 1994-05-16 1998-05-19 Agfa Division, Bayer Corporation Method for data compression of digital data to produce a scaleable font database
US5684510A (en) * 1994-07-19 1997-11-04 Microsoft Corporation Method of font rendering employing grayscale processing of grid fitted fonts
EP0701242A3 (en) * 1994-08-16 1996-12-27 Adobe Systems Inc Improved method for generating multi-master typographic data
US5517601A (en) * 1994-09-30 1996-05-14 Hewlett-Packard Company High speed apparatus and method for rasterization of font glyphs
JP3119805B2 (ja) * 1994-12-20 2000-12-25 松下電器産業株式会社 多階調データ生成装置
JP3268160B2 (ja) * 1995-04-14 2002-03-25 シャープ株式会社 文字パターン発生装置
JP3317817B2 (ja) * 1995-07-14 2002-08-26 シャープ株式会社 文字生成装置
US5943063A (en) * 1995-10-23 1999-08-24 Adobe Systems, Inc. Method and apparatus for rendering characters
JPH09134158A (ja) * 1995-11-09 1997-05-20 Fujitsu Ltd 文字処理方法及び処理装置
JPH09152857A (ja) * 1995-11-29 1997-06-10 Toshiba Corp 文字出力装置及び文字描画方法
JPH09179542A (ja) * 1995-12-26 1997-07-11 Brother Ind Ltd キャラクタイメージデータ出力方法および装置
US5910805A (en) * 1996-01-11 1999-06-08 Oclc Online Computer Library Center Method for displaying bitmap derived text at a display having limited pixel-to-pixel spacing resolution
US5929866A (en) * 1996-01-25 1999-07-27 Adobe Systems, Inc Adjusting contrast in anti-aliasing
US6128415A (en) * 1996-09-06 2000-10-03 Polaroid Corporation Device profiles for use in a digital image processing system
US5940080A (en) * 1996-09-12 1999-08-17 Macromedia, Inc. Method and apparatus for displaying anti-aliased text
US5852448A (en) * 1996-09-20 1998-12-22 Dynalab Inc. Stroke-based font generation independent of resolution
US6408109B1 (en) * 1996-10-07 2002-06-18 Cognex Corporation Apparatus and method for detecting and sub-pixel location of edges in a digital image
US6266444B1 (en) * 1996-10-11 2001-07-24 Canon Kabushiki Kaisha Character processing apparatus and method therefor
JPH10124028A (ja) * 1996-10-24 1998-05-15 Nec Off Syst Ltd 文字パターン作成装置
US6005588A (en) * 1996-11-06 1999-12-21 Apple Computer, Inc. System and method for rapidly displaying text in a graphical user interface
US6950986B1 (en) * 1996-12-10 2005-09-27 North River Consulting, Inc. Simultaneous display of a coded message together with its translation
US6288725B1 (en) * 1997-02-24 2001-09-11 Zining Fu Representation and restoration method of font information
US6229521B1 (en) * 1997-04-10 2001-05-08 Sun Microsystems, Inc. Method for antialiasing fonts for television display
US6288726B1 (en) * 1997-06-27 2001-09-11 Microsoft Corporation Method for rendering glyphs using a layout services library
US6952210B1 (en) * 1997-12-05 2005-10-04 Adobe Systems Incorporated Method of generating multiple master typefaces containing kanji characters
US6091505A (en) * 1998-01-30 2000-07-18 Apple Computer, Inc. Method and system for achieving enhanced glyphs in a font
US6323879B1 (en) * 1998-05-14 2001-11-27 Autodesk, Inc. Method and system for determining the spacing of objects
AUPP557998A0 (en) * 1998-08-28 1998-09-24 Canon Kabushiki Kaisha Method and apparatus for orientating a set of finite N-dimensional space curves
US6141441A (en) * 1998-09-28 2000-10-31 Xerox Corporation Decoding data from patterned color modulated image regions in a color image
US6278434B1 (en) * 1998-10-07 2001-08-21 Microsoft Corporation Non-square scaling of image data to be mapped to pixel sub-components
US6356278B1 (en) * 1998-10-07 2002-03-12 Microsoft Corporation Methods and systems for asymmeteric supersampling rasterization of image data
US6236390B1 (en) * 1998-10-07 2001-05-22 Microsoft Corporation Methods and apparatus for positioning displayed characters
US6393145B2 (en) * 1999-01-12 2002-05-21 Microsoft Corporation Methods apparatus and data structures for enhancing the resolution of images to be rendered on patterned display devices
US6342890B1 (en) * 1999-03-19 2002-01-29 Microsoft Corporation Methods, apparatus, and data structures for accessing sub-pixel data having left side bearing information
US6438576B1 (en) * 1999-03-29 2002-08-20 International Business Machines Corporation Method and apparatus of a collaborative proxy system for distributed deployment of object rendering
US6614432B1 (en) * 1999-04-16 2003-09-02 Adobe Systems Incorporated Image rendering technique
US6330003B1 (en) * 1999-07-30 2001-12-11 Microsoft Corporation Transformable graphical regions
US6282327B1 (en) * 1999-07-30 2001-08-28 Microsoft Corporation Maintaining advance widths of existing characters that have been resolution enhanced
US6563502B1 (en) * 1999-08-19 2003-05-13 Adobe Systems Incorporated Device dependent rendering
US6384839B1 (en) * 1999-09-21 2002-05-07 Agfa Monotype Corporation Method and apparatus for rendering sub-pixel anti-aliased graphics on stripe topology color displays
US6725779B2 (en) * 2000-10-17 2004-04-27 Agfa-Gevaert Multi-level printing process reducing aliasing in graphics
JP2002215126A (ja) * 2001-01-15 2002-07-31 Sharp Corp 文字表示装置、文字表示方法および記録媒体
US6633680B2 (en) * 2001-03-09 2003-10-14 Morisawa & Co., Ltd. System, method and computer program product for small-font compression
US6738071B2 (en) * 2001-10-25 2004-05-18 Hewlett-Packard Development Company, L.P. Dynamically anti-aliased graphics
US6897879B2 (en) * 2002-03-14 2005-05-24 Microsoft Corporation Hardware-enhanced graphics acceleration of pixel sub-component-oriented images
US6894701B2 (en) * 2002-05-14 2005-05-17 Microsoft Corporation Type size dependent anti-aliasing in sub-pixel precision rendering systems
US6943805B2 (en) * 2002-06-28 2005-09-13 Microsoft Corporation Systems and methods for providing image rendering using variable rate source sampling
US7251365B2 (en) * 2002-07-03 2007-07-31 Vadim Fux Scalable stroke font system and method
US7639257B2 (en) * 2002-07-31 2009-12-29 Adobe Systems Incorporated Glyphlets
US7002598B2 (en) * 2003-03-25 2006-02-21 Mitsubishi Electric Research Labs., Inc. Method for generating a composite glyph and rendering a region of the composite glyph in object-order
US7190367B2 (en) * 2003-03-25 2007-03-13 Mitsubishi Electric Research Laboratories, Inc. Method, apparatus, and system for rendering using a progressive cache
US7002597B2 (en) * 2003-05-16 2006-02-21 Adobe Systems Incorporated Dynamic selection of anti-aliasing procedures
US7006107B2 (en) * 2003-05-16 2006-02-28 Adobe Systems Incorporated Anisotropic anti-aliasing
EP1496475B1 (en) * 2003-07-07 2013-06-26 STMicroelectronics Srl A geometric processing stage for a pipelined graphic engine, corresponding method and computer program product therefor
US7333110B2 (en) * 2004-03-31 2008-02-19 Adobe Systems Incorporated Adjusted stroke rendering
US7602390B2 (en) * 2004-03-31 2009-10-13 Adobe Systems Incorporated Edge detection based stroke adjustment
US7710422B2 (en) * 2004-07-26 2010-05-04 Microsoft Corporation Font representations
US7408556B2 (en) * 2005-01-31 2008-08-05 Microsoft Corporation System and method for using device dependent fonts in a graphical display interface

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105474198A (zh) * 2013-06-11 2016-04-06 微软技术许可有限责任公司 具有动态调色板的分层z顺序和微调颜色字体
CN107292936A (zh) * 2017-05-18 2017-10-24 湖南大学 一种汉字字体矢量化方法
CN107292936B (zh) * 2017-05-18 2020-08-11 湖南大学 一种汉字字体矢量化方法

Also Published As

Publication number Publication date
GB0905185D0 (en) 2009-05-06
DE112007002225T5 (de) 2009-07-23
US20080068383A1 (en) 2008-03-20
WO2008036771A3 (en) 2008-11-13
GB2455258B (en) 2011-08-24
KR20090075693A (ko) 2009-07-08
DE112007002225B4 (de) 2010-06-17
GB2455258A (en) 2009-06-10
JP2010504559A (ja) 2010-02-12
WO2008036771A2 (en) 2008-03-27
CN101536037B (zh) 2011-10-12

Similar Documents

Publication Publication Date Title
CN101536037B (zh) 绘制和编码字形
US9665817B2 (en) Techniques for generating customized two-dimensional barcodes
US9177238B2 (en) Techniques for generating customized two-dimensional barcodes
CN107025480B (zh) 图像生成方法及其设备
CN102227752A (zh) 使用三维图形硬件的二维图形渲染期间的顶点丢弃
CN111144161A (zh) 条形码的识别方法及装置、商品信息确定方法及支付方法
US20180365594A1 (en) Systems and methods for generative learning
CN101432770A (zh) 用于创作动态布局环境的广告的技术
CN111832564A (zh) 一种图像文字识别方法、系统及电子设备和存储介质
KR20150099936A (ko) 전자문서의 레이아웃 유지를 위한 대체폰트 적용 방법 및 그 장치
US8214413B2 (en) Electronic calculator with a formula display function
Knuth The Art of Computer Programming, Volume 1, Fascicle 1: MMIX--A RISC Computer for the New Millennium
CN114254071A (zh) 从非结构化文档中查询语义数据
US7609268B2 (en) Arrangement for the scaling of fonts
US9245361B2 (en) Consolidating glyphs of a font
CN110502236B (zh) 基于多尺度特征解码的前端代码生成方法、系统及设备
US20170249292A1 (en) Conditional determination of lookups in glyph processing
Kuribayashi et al. Enrichment of visual appearance of aesthetic QR code
CN101957837B (zh) 一种笔划矢量字库的存取方法
JP4662412B2 (ja) 文字図形表示装置、文字図形表示方法、プログラムおよび記録媒体
CN102681755A (zh) 一种用于对显示对象进行显示变换的方法、装置和设备
US9524572B2 (en) Parallel processing of pixel data
KR20210132060A (ko) 스타일 트랜스퍼
CN112286579B (zh) 数据处理方法、装置、计算机可读存储介质和计算机设备
JP3597637B2 (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
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20111012

Termination date: 20140919

EXPY Termination of patent right or utility model