CN101536037A - 绘制和编码字形 - Google Patents
绘制和编码字形 Download PDFInfo
- 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
Links
- 238000009877 rendering Methods 0.000 title 1
- 238000000034 method Methods 0.000 claims abstract description 28
- 238000004590 computer program Methods 0.000 claims abstract description 15
- 230000008569 process Effects 0.000 claims description 11
- 239000003550 marker Substances 0.000 claims description 10
- 238000010586 diagram Methods 0.000 description 9
- 238000004891 communication Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 238000007792 addition Methods 0.000 description 2
- 230000000712 assembly Effects 0.000 description 2
- 238000000429 assembly Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000006835 compression Effects 0.000 description 2
- 238000007906 compression Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000005452 bending Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000002349 favourable effect Effects 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 239000004615 ingredient Substances 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000035807 sensation Effects 0.000 description 1
- 230000001953 sensory effect Effects 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000009466 transformation 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
- G06T11/20—Drawing from basic elements, e.g. lines or circles
- G06T11/206—Drawing of charts or graphs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T9/00—Image coding
-
- 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/28—Quantising the image, e.g. histogram thresholding for discrimination between background and foreground patterns
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/40—Extraction of image or video features
- G06V10/56—Extraction of image or video features relating to colour
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/387—Composing, 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.一种系统,包括:
用于编码元素库的装置,所述元素库中的每个元素与轮廓以及一个或多个参数相关联,所述元素库中的每个元素区别于所述元素库中的所有其他元素;以及
用于根据多个对所述元素库中相应元素的引用来编码字形的装置,每个引用具有所述相关联的一个或多个参数中一个或多个的值。
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)
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)
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)
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 |
-
2006
- 2006-11-27 US US11/563,596 patent/US20080068383A1/en not_active Abandoned
-
2007
- 2007-09-19 JP JP2009529375A patent/JP2010504559A/ja active Pending
- 2007-09-19 WO PCT/US2007/078943 patent/WO2008036771A2/en active Application Filing
- 2007-09-19 GB GB0905185A patent/GB2455258B/en not_active Expired - Fee Related
- 2007-09-19 DE DE112007002225T patent/DE112007002225B4/de not_active Expired - Fee Related
- 2007-09-19 CN CN2007800408428A patent/CN101536037B/zh not_active Expired - Fee Related
- 2007-09-19 KR KR1020097007964A patent/KR20090075693A/ko not_active Application Discontinuation
Cited By (3)
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 |