CN108701120A - 字形处理中的查找的条件确定 - Google Patents
字形处理中的查找的条件确定 Download PDFInfo
- Publication number
- CN108701120A CN108701120A CN201780014040.3A CN201780014040A CN108701120A CN 108701120 A CN108701120 A CN 108701120A CN 201780014040 A CN201780014040 A CN 201780014040A CN 108701120 A CN108701120 A CN 108701120A
- Authority
- CN
- China
- Prior art keywords
- font
- condition
- replacement
- text string
- acquiescence
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/103—Formatting, i.e. changing of presentation of documents
- G06F40/109—Font handling; Temporal or kinetic typography
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/205—Parsing
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
描述了在将文本串渲染为字形序列的过程中的字形替换(GSUB)查找或字形定位(GPOS)查找的条件确定。一种过程可包括接收包括字符序列的文本串,获得对应于字符序列的字形标识符(ID)序列,以及确定文本串的上下文满足条件。至少部分地基于上下文满足条件,可确定并执行替代查找以代替默认查找。替代查找的执行导致对字形ID序列执行GSUB操作或GPOS操作,以最终使得文本串在显示器上被渲染为具有应用于其的字体排印特征的字形序列。
Description
背景
字体排印学(typography)是用排印(type)工作的艺术和技术。数字字体排印术是指由在计算设备上运行的字体使用应用产生的数字图像的操纵和显示。数字字体排印术基于被称为字体族、字体(font)或字型(typeface)、以及字形(glyph)的对象的层次结构。有关字体族的信息典型地被存储在一组字体文件中。字体可被表示为具有共同字体属性(诸如相同的样式(style)、字重(weight)等)的一组字形-字形是字符的视觉表示。例如,“Arial”字体由具有将Arial字体与其他字体区分开的共同特征的一组字形表示。
当前的字体格式(诸如OpenType字体格式)利用用于字形替换(GSUB)和字形定位(GPOS)的机制。GSUB机制允许使用一个或多个字形代替另外的(一个或多个)字形,以及添加,删除或重新排序字形。GSUB机制可被用于实现字体排印特征,诸如标准连字特征,其中使用连字字形(例如,“fi”连字字形)代替两个顺序字形(例如,“f”字形后跟着“i”字形)。GPOS机制允许调整字形相对于彼此的位置。GPOS机制可被用于实现字体排印特征,诸如字距缩短,其中缩短字形的前进宽度以减少该字形与序列中的下一字形之间的间距。
当前的字体格式(诸如OpenType字体格式)也可支持被称为“字体变化(fontvariation)”的能力。通过字体变化的概念,可从给定字体族(例如,Arial)的单个字体文件生成不同的字体设计变化。为了支持字体变化,单个字体文件使用在两个端点值之间插入不同的字体设计参数的机制。例如,可在用于常规“Arial”的较轻字重和用于“ArialBlack”的较重字重之间插入字重参数值,以生成具有中间字重的独特Arial字体。当然,字重只是可以这种方式改变的字体设计属性的一个示例。其他字体设计属性(例如,宽度、高度、样式等)可被单独或组合地改变,以实现期望的字体设计。插值机制通过在字体设计轴上指定参数值(即,值的范围或连续值)来控制字体设计属性的变化程度,以使文本能够用特定字体设计来渲染。以这种方式,单个字体族(例如,Arial)可在支持字体变化的单个字体文件中定义,而不是维护用于Arial的单独的字体文件、用于Arial Black的单独的字体文件,等等。
在某些场景中,字体变化的使用产生负面易读性效果。例如,某些字形–诸如美元符号“$”字形,中文字形等-包括大量笔画,这些笔画产生相应的大量计数器(即字形中被笔画所围绕的开口)。当字体变化机制被用于增加这些类型字形的字重属性时,字形中的计数器(或开口)开始被填充。例如,使用美元符号“$”字形,由穿过“S”笔画的垂直笔画产生的计数器开始被用更高字重的字体变化填充。这产生被渲染为黑色斑点的字形,其在某些场景中可能难以辨认,或者至少难以识别。由字体变化产生的这种负面易读性效果仅仅是对于具有大量笔画和字形中相应的大量计数器(或开口)的任何字形都为真的一个示例。其他字体变化可能产生类似的负面易读性效果。
概述
本文所描述的是用于将文本串渲染为字形序列的过程中的字形替换(GSUB)查找或字形定位(GPOS)查找的条件确定(在本文中有时被称为“条件过滤”)的技术和系统。如果文本串的上下文不满足预定义条件(或一组条件),则可执行GSUB查找的默认列表或GPOS查找的默认列表。另一方面,如果文本串的上下文满足预定义条件(或一组条件),则可执行GSUB查找的替代列表或GPOS查找的替代列表,以分别代替默认的GSUB查找或默认的GPOS查找。以这种方式,可实现与GSUB查找的替代列表或GPOS查找的替代列表相关联的特定字体排印特征,以在满足预定义条件的情况下实现期望的结果。
在一些配置中,将文本串渲染为经定位的字形序列的过程包括接收包括字符序列的文本串,获得对应于字符序列的字形标识符(ID)序列,并确定文本串的上下文满足条件。至少部分地基于上下文满足条件,可确定并执行替代查找以代替默认查找。替代查找可包括GSUB查找或GPOS查找,并且可被执行以使得文本串在显示器上被渲染为具有向其应用的印刷特征的字形序列。
在一些配置中,当文本串的上下文包括字体设计变化轴上的值的预定义范围内的值时,条件被满足。字体设计变化轴的示例是字重轴。因此,对于支持字重轴上的字体设计变化的字体,当为文本串指定的字重值在预定义字重值范围内时(即,当条件被满足时),可用不同的字形ID来替换字符的默认字形ID。因此,可定义条件:如果满足,则分别导致不同GSUB查找和/或不同GPOS查找的执行以代替默认GSUB查找和/或默认GPOS查找。
GSUB查找的条件确定提供了在满足特定条件时替换不同字形的能力,以便尤其在特定场景中保持所渲染文本的易读性。例如,当文本要以如字重轴上的字重值范围定义的相对较重的字重被渲染时,本文描述的技术可被用于用具有减少的笔画数量或范围的替代字形来取代具有许多笔画(和许多相应的计数器)的默认字形,以保持在较重的字重下字形的易读性。
GPOS查找的条件确定提供了在特定条件被满足时修改字形相对于彼此的位置的能力。例如,取决于要渲染的文本的字重和/或样式,可不同地(即,在不同的程度上)实现字距调整特征。除了用不同GSUB/GPOS查找取代默认GSUB/GPOS查找外,本文所描述的条件过滤技术还可被用于取决于条件是否被满足而有效地将GSUB/GPOS机制切换为“开”或“关”。例如,如果要渲染的文本在垂直布局方向上,该系统可被抑制执行连字字形替换,从而在条件(例如,垂直布局方向)被满足时有效地将用于连字字形替换的GSUB查找切换为“关闭”。
提供本概述是为了以简化的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
附图简述
结合附图来描述具体实施方式。在附图中,附图标记最左边的数字标识该附图标记首次出现的附图。在不同的附图中使用相同的附图标记指示类似或相同的项。
图1解说被配置为通过有条件地确定字形替换(GSUB)查找和/或字形定位(GPOS)查找来处理字形的示例计算设备。
图2是通过有条件地确定GSUB查找和/或GPOS查找来处理字形的示例过程的流程图。
图3A是示例条件过滤场景的示意图。
图3B是另一示例条件过滤场景的示意图。
图3C是另一示例条件过滤场景的示意图。
图4A是有条件地确定GSUB查找的更详细示例过程的流程图。
图4B是条件上确定GPOS查找的更详细示例过程的流程图。
详细描述
本公开的配置尤其涉及用于在将文本串渲染为经定位字形序列的过程中的字形替换(GSUB)查找或字形定位(GPOS)查找的条件确定的技术和系统。应当理解,可通过增强给定字体格式的规范,诸如通过增强OpenType字体规范,来实现本文描述的技术。例如,可增强OpenType字体规范以包括现有字体表内用于指定条件的数据结构,如果满足所述条件,则分别使用替代GSUB和/或GPOS查找来代替默认GSUB和/或GPOS查找。以这种方式,条件过滤可以向后兼容的方式实现,使得旧式系统和软件仍然可输出合理的行为,即使旧式系统不能解释添加到现有字体表的新数据结构。换句话说,可在不破坏旧式系统的情况下部署本文描述的技术和系统,并且为了处理字形和渲染文本而使它们不可操作。
此外,以本文描述的方式增强给定字体格式的现有规范提供了用于GSUB和/或GPOS查找的条件过滤的可扩展系统。例如,如果字体开发者希望指定新类型的条件,则可将新类型的条件添加到字体表内的新数据结构中设置的现有条件,而不必重新设计数据结构本身。在这种场景中,如果旧式系统无法识别新类型的条件,则就忽略它,并且旧式系统可回退到最小默认行为,以便在显示器上渲染文本。
通过使用本文所公开的技术,一个或多个设备可被配置成在有关功率资源、存储器资源、通信带宽资源、处理资源和/或其他资源方面节约资源,同时提供用于将文本串渲染为字形序列过程中的GSUB查找或GPOS查找的条件过滤的机制。例如,通过不必为所有可能的字体设计变化存储单独的字体文件,可节省存储器资源。相反,支持给定字体系列的字体变化的单个字体文件可用于通过GSUB查找和/或GPOS查找的条件过滤来实现字体变化,其结果是节省存储器资源。作为另一示例,可在完成初始字形处理过程之后高速缓存与替代GSUB查找和/或GPOS查找有关的信息。这允许使用经高速缓存的信息,从而可为其他应用和进程节省处理资源。除了本文中提到的那些之外的技术效果也可通过本文中所公开的技术的实施来实现。
图1解说被配置为通过有条件地确定字形替换(GSUB)查找和/或字形定位(GPOS)查找来处理字形的示例计算设备100。一般而言,计算设备100被配置为接收文本串102,对文本串执行字形处理操作,并将输出104提供给目标设备,诸如显示器缓冲器,打印机缓冲器或文件(例如,PDF,JPEG等),用于在相关联的显示器或介质(例如,纸)上渲染表示给定字体中的文本串102的经定位字形序列。
计算设备100(在本文中有时被称为“客户端设备100”)可被实现为任何类型的计算设备,包括但不限于个人计算机、膝上型计算机、台式计算机、便携式数字助理(PDA)、移动电话、平板计算机、电子书(eBook)阅读器设备、机顶盒、游戏控制台、智能电视机、可穿戴设备(例如智能手表、电子“智能”眼镜、健身跟踪器等),或被配置为在相关联的目标设备(诸如显示器106或打印机)上渲染文本的任何其他电子设备。
计算设备100被示为配备有一个或多个处理器108和一种或多种形式的计算机可读存储器110。(诸)处理器108可被配置为执行存储在存储器110中的指令、应用或程序。在一些配置中,处理器108可包括硬件处理器,其包括但不限于:硬件中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、应用专用集成电路(ASIC)、片上系统(SoC)或其组合。
计算机可读介质可包括两种类型的计算机可读介质,即计算机存储介质和通信介质。存储器110是计算机存储介质的示例。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术来实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、可擦可编程只读存储器(EEPROM)、闪存或其他存储器技术、紧致盘只读存储器(CD-ROM)、DVD或其他光盘存储、盒式磁带、磁带、磁盘存储或其他磁性存储设备、或可用于存储所需信息并可由(诸)处理器108访问的任何其他非瞬态介质。任何此类计算机存储介质可以是计算设备100的一部分。一般而言,计算机存储介质可包括在由(诸)处理器108执行时执行此处所描述的各种功能和/或操作的计算机可执行指令。
相反,通信介质在诸如载波的已调制数据信号或其他传输机制中体现计算机可读指令、数据结构、程序模块或其他数据。如本文所定义的,计算机存储介质不包括通信介质。
在一些配置中,可经由在计算设备100上执行的应用从计算设备100上的本地源接收文本串102。例如,已被下载到计算设备100的电子书(eBook)可经由eBook应用从本地存储器110检索,该eBook应用被配置为在计算设备100的显示器106上呈现来自该eBook的文本。在其他配置中,计算设备100可被配置为通过(诸)网络传送/接收数据,所述网络诸如(诸)有线和/或无线网络,其使得能够通过(诸)网络在计算设备100和其他计算设备之间通信。例如,可经由网络浏览器应用通过网络从服务器计算机检索文本串102,以便在计算设备100的显示器106上呈现来自网页的文本。在此场景中,网络-文本串102通过该网络被传送到计算设备100-可包括线缆网络、因特网、局域网(LAN)、广域网(WAN)、移动电话网络(MTN)或任何其他(诸)类型的网络,其可能彼此结合使用,以便于在计算设备100处接收文本串102。
出于在目标设备上渲染文本的目的,可在计算设备100上执行的字体使用应用的示例包括但不限于字处理应用、电子表格应用、桌面出版应用、eBook应用、网络浏览器或任何其他类型的用于在显示器106和/或与计算设备100相关联的打印机上渲染文本的字体使用应用。这些应用可被内置到计算设备100中或者在制造后被下载到计算设备100并在其上执行。替代地,应用可被存储在服务器中并且作为瘦客户端实现的一部分“在云中”执行,以在与计算设备100相关联的目标设备上渲染文本。
计算机可读存储器110可包括渲染引擎112,其由字体使用应用使用以根据字体格式在目标设备上渲染文本串102。例如,OpenType字体格式可用于配置渲染引擎112以处理多个字体表114或类似数据结构内的数据结构和信息,以用于将文本串102渲染为目标设备上的字形序列。一般而言,字体表114存储字形信息,其可包括但不限于字形标识符(ID)、字形度量、可用于渲染字形的轮廓数据(例如,构成贝塞尔曲线的点)、用于将字符映射到字形ID的字符映射(cmap)表、脚本表、语言系统(LangSys)表、特征表、查找表等。图1解说了字体表114还可包括字形替换(GSUB)表116和字形定位(GPOS)表118,以及其他表120,其可用于渲染引擎112以用于处理字形。应当领会,本文描述的示例数据结构仅出于说明性目的而呈现,并且其他类型的数据结构和数据表示可用于实现本文描述的技术而不改变本文描述的基本特征。在讨论GSUB表116和GPOS表118的细节之前,提供了使用GSUB和GPOS机制的字形处理的简要背景。
可为不同的脚本定义OpenType字体,诸如拉丁语、阿拉伯语、希腊语、西里尔语等。每个脚本可包含语言列表,诸如英语、德语、西班牙语、印地语等。渲染引擎112可被配置为实现用于向最终在显示器106上渲染的字形传递印刷效果的“特征”(有时称为“印刷特征”)列表。这些特征中的一些特征可被用于在针对特定脚本的给定语言系统中正确地渲染文本,而其他特征可以是由内容创作者、由应用、或可能由内容查看者选择的任意特征(例如,使用比例宽度数字相较于“表格(tabular)”固定宽度数字)。一般而言,“特征”是如GSUB动作(即,字形的替换)和GPOS动作(即,字形的定位)等OpenType布局动作的触发器或控制机制。换句话说,可将特征视为字体开发者想要实现的那种字体排印术的抽象意图,并且GSUB和GPOS机制被用于在目标设备上渲染文本的过程中递送该特征。
每个特征可通过特征名称指定,并且渲染引擎112或使用渲染引擎112的应用确定在渲染文本时是否应用该特征,假设字体支持该特征的话。特征名称可以是四字节字符序列(例如,用于标准连字特征的“liga”)。特征可包括替换特征和定位特征。替换特征涉及GSUB动作,且可包括但不限于诸如标准连字、历史连字、小型大写等特征。例如,标准连字特征触发特定的GSUB动作,诸如用“fi”连字字形替换文本串102中两个连续的字形:“f”字形后跟着“i”字形。定位特征涉及GPOS动作且可包括但不限于诸如字距调整、标记放置、基线规范等特征。例如,字距调整特征触发特定GPOS动作,诸如当在文本串102中后跟随有“A”字形时缩短“V”字形的前进宽度,使得两个连续字形移动得更靠近在一起。
每个特征可由特征记录和特征表来定义。特征记录包括特征名称(被称为“特征标记”)和到特征表的偏移。特征表包括查找引用(例如,索引、偏移等)的列表,这些查找引用指向将用于实现所讨论的特征的“查找”的集合(或列表)。“查找”是由一个或多个特征触发的动作,以向表示文本串102的字形递送字体排印效果。一种类型的查找是GSUB查找,并且可存在各种类型的GSUB查找,包括但不限于,用多个字形取代一个字形的GSUB查找,用一个字形取代多个字形的GSUB查找,用另一单个字形取代一单个字形的GSUB查找,用连字字形取代多个字形的GSUB查找等等。另一种类型的查找是GPOS查找,并且可存在各种类型的GPOS查找,包括但不限于用于在单个字形处于“之前”或“之后”上下文(即,在序列中在另一字形之前或之前)时重新定位该单个字形、重新定位两个并排的字形、重新定位标记(例如,重音、变音标记等)的GPOS查找等等。相应地,本文使用的术语“查找”可对应于要采取的任何合适的字形替换动作或字形定位动作,并且可执行查找以执行递送所讨论的特征的字体排印效果的GSUB动作和/或GPOS动作。
相应地,OpenType字体格式包括OpenType布局能力,该能力利用GSUB和GPOS机制来支持许多不同的语言和特定语言中的许多不同的字体排印效果。为了利用GSUB机制,渲染引擎112可在运行时(at runtime)处理GSUB表116,以便为要应用于给定语言系统的各种特征执行GSUB查找。为了利用GPOS机制,渲染引擎112可以类似方式处理GPOS表118。
GSUB表116(也在图1中示出)的示例至少部分地在下表中呈现:
GSUB表
上述示例GSUB表116中的数据结构可被包括在GSUB表116的头部中。“版本”可对应于提供可扩展性的GSUB表116的版本。例如,当为特定特征定义新条件和GSUB动作时,可定义GSUB表116的未来版本以实现那些新条件和GSUB动作。“ScriptList”可包括到脚本表的偏移数组,并且每个脚本表可包括给定脚本的脚本标签(例如,四字节字符序列)(例如,阿拉伯语脚本的“arab”),以及到一组相应语言系统(LangSys)表的偏移数组。例如,拉丁文脚本的脚本表可包括到拉丁文脚本内不同语言的偏移数组,其中拉丁文脚本中的每种语言可具有不同的字体排印要求,以在因语言而异的基础上实现不同的字体排印行为。单独的语言系统表可包括到一组特定特征表(例如,特征表/标签对)的偏移数组,其被包括在上面的示例GSUB表116的“FeatureList”中。该组特定特征表可在给定的语言系统表中指定,以提供针对给定脚本和语言系统支持的一组特征。因此,特定语言的给定语言表可为所讨论的脚本和语言指定相关特征(即,到“FeatureList”中的特征表的索引)。
“FeatureList”是包括到特征表的偏移数组和不同特征的相关联特征标记的数据结构。查找(在本例中为GSUB查找)由特征激活,并且为给定特征和语言系统激活的查找集在特征表中被定义。相应地,“LookupList”是包括到由一个或多个特征触发的查找(即,GSUB查找)的偏移数组的数据结构。
上面和图1中示出的示例GSUB表116可进一步包括数据结构122(1)(有时称为“特征变化表122(1)”),其指定一组条件,该组条件当被满足时使得替代GSUB查找代替在给定特征表中定义的默认GSUB查找被执行。也就是说,特征变化表122(1)可在运行时由渲染引擎112处理,以允许针对给定特征执行的GSUB查找基于一个或多个条件而变化。
以类似方式,GPOS表118(也在图1中示出)的示例至少部分地在下表中呈现:
GPOS表
上述示例GPOS表118中的数据结构可类似于示例GSUB表116的数据结构,不同在于LookupList和FeatureList中包括的特定查找和特征分别基于GPOS动作而不是GSUB动作。相应地,上面和图1中示出的示例GPOS表118可进一步包括数据结构122(2)(有时称为“特征变化表122(2)”),其指定一组条件,该组条件当被满足时使得替代GPOS查找代替在给定特征表中定义的默认GPOS查找被执行。也就是说,特征变化表122(2)可在运行时由渲染引擎112处理,以允许针对给定特征执行的GPOS查找基于一个或多个条件而变化。应当领会,可分别为GSUB查找和GPOS查找定义相应的特征变化表122(1)和122(2)。然而,为了说明的目的,将参考一般特征变化表122共同描述数据结构122(1)和122(2),其可在相应的场景中被类似地应用。
特征变化表122可用于基于各种条件指定特征的影响的变化。特征变化表122的示例(针对附图标记122(1)也在图1中示出)至少部分地在下表中示出:
功能变化表
上述示例特征变化表122中的数据结构可包括特征变化记录124的数组。每个特征变化记录124可参考(i)一组条件(在下面描述的条件集表中定义),和(ii)当文本串102的运行时上下文满足(或匹配)条件集时使用的替代特征表集。这允许在运行时用另一特征表取代一个特征表,以有条件地过滤针对给定特征执行的查找(例如,GSUB查找和/或GPOS查找),以便递送特定字体排印效果。
替代特征表可被附加在特征变化表122的末尾,并且在一些配置中,不被包括在特征列表表中(例如,GSUB动作的替代特征表不被包括在GSUB表116的“FeatureList”中)。因此,在一些配置中,在条件集被满足时,在特征列表表(“FeatureList”)中没有与要用于代替默认特征表的替代特征表相对应的特征记录。当文本串102的运行时上下文不满足特征变化表122中定义的变化的任何条件时,默认可使用在语言系统表中指定的特征表。在不支持特征变化表122的实现中的所有条件下也可使用默认特征表,其允许与旧式系统和软件的向后兼容性。替代特征表可保持与给定特征的默认特征表相同的特征标记关联。此外,在一些配置中,虽然可使用16位偏移来引用特征列表表(“FeatureList”)中的默认特征表,但是可使用特征变化表122内的32位偏移来引用附加在特征变化表122的末尾的替代特征表。
特征变化记录124的示例至少部分地在下表中示出:
特征变化记录
如上表所示,特征变化记录124可包括到“条件集表”的偏移和到“特征表替换表”的偏移。如果特征变化记录124中的ConditionSet偏移是0,则不存在条件集表。这被视为通用条件:所有上下文被匹配。如果特征变化记录124中的FeatureTableSubstitution偏移为0,则不存在特征表替换表,并且不对语言系统表中指定的默认特征表做出替换。
在一些配置中,特征变化表122中的多个特征变化记录124可按条件集的优先次序排序。在处理期间,渲染引擎112可读取多个特征变化记录124,并且按照多个特征变化记录124在特征变化表122中出现的次序测试相应的条件集。针对其条件集与运行时上下文匹配(即,由文本串102的运行时上下文满足条件集)的第一特征变化条件记录124可被认为是候选。如果支持特征表替换表的版本,则可使用该特征变化记录124,并且渲染引擎112可不考虑特征变化记录124的列表中的任何附加特征变化记录124。如果不支持特征表替换表的版本,则可拒绝此特征变化记录124,并且渲染引擎112可进行至特征变化记录124的有序列表中的下一特征变化记录124。通过测试特征表替换表的版本并且在不支持的情况下拒绝,则可提供向后兼容性。也就是说,字体开发人员可创建新字体,这些字体将以字体开发人员确定的方式在旧式软件上合理显示。
特征变化记录124内的条件集表的示例至少部分地在下表中示出:
条件集表
上面显示的示例条件集表可指定要应用特征表替换表的条件集(由条件表定义)。条件集可指定与各种因素相关的条件,包括但不限于字体设计变化轴上的预定义值范围、文本的布局方向或字体格式的版本(例如,OpenType字体格式的版本)。
对于给定条件集,条件可以是连接相关的(布尔AND(与)),这意味着要满足所有指定的条件,以便应用关联的特征表替换表。条件集不需要为所有可能的因素指定条件值。例如,如果条件集不包括针对文本布局方向的任何条件,则该条件集匹配任何文本布局方向。如果给定条件集不包含条件,则它匹配所有上下文,并且始终应用相关联的特征表替换表,除非在特征变化表122中在前面存在其中具有与当前上下文匹配的条件集的条件记录。
个体条件可在描述该特定条件的相应条件表中表示。如上所述,可通过根据定义条件的因素的性质,根据表示不同类型条件的多种不同格式之一来定义条件表,来基于各种因素来定义条件表。例如,可为文本布局方向定义条件表的第一格式(格式1),可为字体设计变化轴上的预定义值范围定义条件表的第二格式(格式2),并且可为字体格式的版本(例如,OpenType版本)定义条件表的第三格式(格式3)。应当理解,附加条件限定符的附加格式可与本文描述的技术和系统一起使用,并且可通过更新条件集表的版本来添加新条件表格式。相应地,如果渲染引擎112支持条件集表的特定版本并且遇到具有稍后版本的条件集表的字体,则每当遇到未识别的条件格式时,渲染引擎112可能无法匹配条件集,然后继续评估具有可符合条件集表的早期版本的不同条件集的附加特征变化记录124。通过这种方式,可在以向后兼容的方式工作的字体中定义和使用新条件格式。因此,引入新条件格式通常会导致对条件集表的小的版本更新。
格式1(文本布局方向)的条件表的示例至少部分地在下表中示出:
条件表格式1:文本布局方向
布局方向指的是OpenType客户端中针对给定文本串102的处理模式。布局方向可以是应用双向(bidi)布局后经解析的方向,包括任何方向覆盖。OpenType客户端可应用自己的更高级别协议来确定布局方向。布局方向条件可指水平或垂直布局模式,如果这是由应用提供的,则默认可采用水平布局。如果设置了多个旗标,则该组合被视为分离(布尔OR(或)),这意味着条件将匹配具有指定的方向中任意方向的上下文。如果存在Format 1条件但未设置旗标,则条件不与任何上下文匹配。缺少格式1条件意味着布局方向不是确定条件集的适用性的因素。
下表显示了Format 1条件表中布局方向旗标的解释:
布局方向旗标解释表
格式2的条件表(字体设计变化轴上的预定义值范围)的示例至少部分地在下表中示出:
条件表格式2:字体变化值范围
字体变化值范围条件是指在字体的“fvar”表中指定的设计轴的预定义值范围。fvar表可包括包含关于字体中包括哪些字体设计变化轴的信息的数据结构。如果使用Format 2条件表,则字体将包括'fvar'表,AxisIndex值(其为基数0)可小于'fvar'表中的axisCount值。条件可指定超出“fvar”表中指定的轴的最小/最大范围的范围,但“fvar”表确定可为所讨论的字体实现的范围。因此,可忽略给定轴的'fvar'表中定义的范围之外的值。
如果用于文本布局的字体变化实例(即,文本串102的上下文)具有大于或等于FilterRangeMinValue且小于或等于FilterRangeMaxValue的针对给定字体设计变化轴的值,则字体变化值范围条件可被满足。对于给定的字体设计变化轴,缺少格式2条件意味着该轴不是确定条件集的适用性的因素。
格式3(字体格式版本)的条件表的示例至少部分地在下表中示出:
条件表格式3:字体格式(例如,OpenType布局)版本
字体格式(例如,OpenType布局)版本条件是指处理在替换特征表中引用的查找所需的字体格式(例如,OpenType)规范的最小版本。如果布局实现支持的最大版本大于或等于条件中的版本,则该条件被满足。缺少格式3条件意味着所支持的字体格式(例如,OpenType)版本不是确定条件集的适用性的因素。
作为说明性示例,在OpenType版本1.6中的'GDEF'表的版本1.2中引入标记字形集。如果字体具有依赖于此机制的查找,则条件集可将OpenType格式的1.6版指定为最小要求。如果存在在不支持标记字形集的旧式实现上提供回退行为的其他查找,则可在为响应于满足随后评估的条件集而选择的特征表中引用替代查找。替换地,其中一个行为可由默认特征表提供,其中其他行为由特征变化表122中设置的条件选择。例如,支持OpenType版本1.6但不支持OpenType版本2.0的旧式系统将能够在较旧或较新的行为之间交替。通过使用默认不需要标记字形集的查找,且然后经由特征变化表122使用标记字形集选择替代行为,可创建新字体以在OpenType版本1.5实现上工作。
特征变化记录124内的特征表替换表的示例至少部分地在下表中示出:
特征表替换表
上面示出的示例特征表替换表描述了当文本串102的当前运行时上下文满足相应条件集时要应用的特征表替换集。这些替换使用“特征表替换记录”的数组来表示。特征表替换记录可按唯一FeatureIndex(特征索引)值的递增次序排序(即,没有两个记录可具有相同的FeatureIndex值)。
可评估和选择条件集以处理相关联的特征表替换表,以修订从语言系统表导出的特征表的默认数组。例如,对于每个特征索引,可按次序评估特征表替换记录。当遇到匹配记录(FeatureIndex=当前特征索引)时,该特征索引的特征表可由特征表替换记录中给出的偏移处的替换特征表取代,并且该特征索引的处理停止。
特征表替换表中的特征表替换记录的示例至少部分地在下表中示出:
特征表替换记录
上面示出的示例特征表替换记录提供了用替代特征表替换默认特征表。默认特征表被引用为到特征列表表(“FeatureList”)中的索引。替代特征表被引用为从特征变化表122的开头的偏移。可以领会,本文描述的关于处理在特征变化表122中指定的条件集的细节可类似地应用于GSUB查找和GPOS查找两者,区别在于GSUB和GPOS表中定义的具体功能和查找。
本文所描述的过程被例示为逻辑流程图中的各框的集合,其表示可在硬件、软件或其组合中被实现的操作序列。在软件的上下文中,这些框表示被储存在一个或多个计算机可读存储介质上的计算机可执行指令,这些指令在由一个或多个处理器执行时执行所述操作。一般而言,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。描述操作的次序并不旨在被解释为限制,并且任何数量的所述框可以按任何次序和/或并行地组合以实现该过程。而且,在一些配置中,可完全省略过程的一个或多个框。
图2是通过有条件地确定GSUB查找和/或GPOS查找来处理字形的示例过程200的流程图。参考图1的组件和本文描述的数据结构来描述过程200。可特别参考图1的渲染引擎112、GSUB表116、GPOS表118和特征变化表122。
在202处,渲染引擎112接收文本串102。文本串102可从本地存储器资源接收,或者通过(诸)网络从计算设备接收。文本串102可包括与语言相关联的字符序列。例如,字符序列可包含字符“o”,后跟字符“f”,后跟字符“f”,后跟字符“i”,后跟字符“c”,后跟字符“e”,以形成单词“office”。
文本串102可与字体类型属性相关联,该字体类型属性定义将用于将文本串102渲染为字形序列的字体类型(例如,Arial)。以这种方式,字符序列可被映射到所讨论的字体文件的字形ID序列。例如,字形ID可对应于针对Arial字体定义的字形。当最初接收到文本串102时,渲染引擎112可引用所讨论的字体文件的字符映射(cmap)表,其包含从每个字符到默认字形ID的默认字形映射。因此,渲染引擎112可获得对应于字符序列的默认字形ID序列。随后,可在应用一个或多个字体排印特征的过程中相对于默认字形ID序列做出字形替换,这导致不同的字形ID序列,其中至少一个默认字形ID被替换字形ID取代。在任一场景中,文本串102中的字符序列可与字形ID序列相关联。
在204处,做出关于文本串102的上下文是否满足条件集的确定。文本串102的上下文可包括从接收的文本串102提取的信息,从文本串102导出的信息,和/或至少部分地或完全地在文本串102外部的信息。例如,上下文可包括用于显示文本的已解析的布局方向,其可部分地从文本串102导出,并且部分地来自与显示文本中涉及的应用或计算环境相关联的信息或输入。作为另一示例,上下文可包括字体设计变化轴的实例值或字体格式(例如,OpenType字体格式)的支持版本,其可独立于文本串102(或在其外部)。在204处评估的条件集可包括本文描述的并且在字体变化表122中可指定的任何合适条件,诸如与字体设计属性(例如,字重)相关联的实例值在字体设计变化轴上的预定义值范围内,布局方向是特定布局方向或可能布局方向的特定子集,或者字体格式的版本等于或高于字体格式的最小版本等。在204处评估的条件集可包括任何数量的条件,包括具有单个条件或多个条件的条件集。此外,如果条件集中的所有条件被满足,如果条件集中的预定数量的条件被满足,或者如果条件集中的个体条件被满足,则条件集可被满足。
如果在204处,渲染引擎112确定该条件集不被满足,则过程200沿着“否”路径前进到206,其中与所讨论的语言相关联的默认的查找列表(即,在相关语言系统表中的默认特征表中指定的查找列表)被确定并执行,以导致对与字符序列对应的字形ID序列执行字形替换(即,GSUB查找)或字形定位(即,GPOS查找)操作。在一些配置中,默认的查找列表可以是“空”查找集,使得在该场景中在206处不执行查找。此外,查找“列表”可包括单个查找或多个查找。
在208处,可与文本串102的上下文相关联地高速缓存默认GSUB/GPOS查找。例如,文本串102可与字体类型,一个或多个字体设计变化(例如,字重、样式、宽度、x-高度、帽高(cap-height)、样式、形式、衬线长度、友好度、摇晃度(wonkiness)等),布局方向等相关联。因此,渲染引擎112可在208处与此类信息相关联地高速缓存默认GSUB/GPOS查找,使得可在206处使用默认GSUB/GPOS查找来处理由渲染引擎112接收的后续文本串,而无需在204处评估条件。这节省了后续字形处理操作上的处理资源,其中可更快地处理具有相似特性和属性的文本串102,并且作为结果可提高处理效率。
在210处,文本串102在显示器106上被渲染为字形序列,其中字体排印特征被应用于字形序列。例如,如果在206处执行默认GSUB查找以将标准连字特征应用于文本串102,则在208处使用应用的标准连字特征来渲染文本串102,其涉及用标准连字字形ID来取代字形ID序列中的多个字形ID(例如,用“fi”连字字形ID来取代“f”和“i”字形ID)。
如果在204处,渲染引擎112确定条件集被满足,则过程200沿着“是”路径前进到212,其中确定并执行替代查找列表以代替在该条件集不被满足的情况下在206处执行的默认查找列表。替代查找列表的执行导致对与字符序列对应的字形ID序列执行字形替换(即,GSUB查找)或字形定位(即,GPOS查找)操作。要领会,在将在206处执行的默认查找列表包括空查找集的场景中,可利用204处的条件集的评估来通过当在204处条件集被满足时在212处执行替代查找来选择性地“开启”GSUB/GPOS动作。在另一种场景中,在替代查找列表是“空”查找集的情况下,可利用204处的条件集的评估来通过当在204处条件集被满足时抑制执行任何GSUB/GPOS动作,但是当在204处条件集不被满足时在206处执行默认GSUB/GPOS动作,来选择性地“关闭”GSUB/GPOS动作。在其中默认查找列表和替代查找列表都不是空集的其它配置中,可使用图2的过程200来实现替换用默认GSUB/GPOS动作对GSUB/GPOS动作的取代。
过程200从212前进到214以将替代GSUB/GPOS查找与文本串102的上下文相关联地缓存,并最终到210,其中基于在212处执行替代查找来渲染文本串102,以便将字体排印特征应用于在210处渲染的字形序列。现在将参考图3A-3C来描述执行过程200的说明性示例。
图3A是示例条件过滤场景的示意图。参考过程200,图3A的左侧例示了当204处的确定是条件不被满足时的场景,这导致过程200沿着“否”路径前进到206,并且最终到210。在图3A的示例中,在204处评估的文本串102的上下文包括字重轴302上的字重值300(1)。尽管在图3A的示例中使用“字重”,但是要领会,可以类似方式评估任何字体设计变化轴的任何实例值。可根据值304的预定义范围来定义204处被评估的条件,使得如果字重值300(1)在字体设计变化轴302上的值304的预定义范围内,则上下文满足条件。图3A的左侧例示了当条件不被满足(例如,字重值300(1)不在值304的预定义范围内)时可在210处渲染的示例性字形306(1)。字形306(1)可以是cmap表中指定的默认字形,使得为所讨论的语言定义的默认GSUB查找集可不包括取代默认字形306(1)的任何GSUB查找。替代地,字形306(1)可以是作为在过程200的206处执行的默认GSUB查找的结果而渲染的替换字形。字形306(1)被示为具有在整个“S”笔画310上延伸的垂直笔画308的“美元符号”字形306(1)。此字形306(1)在字重值300(1)处仍旧易读。
图3A的右侧例示了当204处的确定是条件被满足时的场景,这导致过程200沿着“是”路径前进到212,并且最终到210。在图3A的右侧,字重值300(2)在字重轴302上的值304的预定义范围内,其满足条件,并且使得字形306(2)在210处被渲染。字形306(2)的渲染可基于在过程200的212处执行替代GSUB查找,其使用对应于字形306(2)的字形ID来取代对应于字形306(1)的字形ID。值得注意的是,字形306(2)被示出为在“S”笔画310的顶部具有小的垂直笔画312(2),并且在“S”笔画310的底部具有小的垂直笔画312(2),这保留了字形306(2)在较高字重值300(2)下的易读性。如果未应用图3A的条件过滤技术,则尽管字重值300(2)较重,可能仍渲染默认字形306(1),并且字形306(1)的计数器314(1)和314(2)的计数器将被关闭,并且在字重值300(2)处渲染的字形306(1)看起来像难以辨认的黑斑。相应地,条件过滤过程200保留文本串102的易读性。
图3B是另一示例条件过滤场景的示意图。在图3B的示例中,过程200的204处的评估下的上下文包括文本串102的布局方向316,并且当布局方向316是从上到下时204处的评估条件被满足。在图3B的左侧,布局方向316(1)是从左到右,因此条件不被满足,并且在206处针对标准连字特征执行的默认GSUB查找用“ffi”标准连字字形318的字形ID来取代用“f”字符后跟“f”字符后跟“i”字符的默认字形ID。
在图3B的右侧,布局方向316(2)是从上到下,因此条件被满足,并且过程200前进到212,其中针对标准连字特征确定替代GSUB查找集。替代GSUB查找集可能包括GSUB查找列表,该列表不包括用于用“ffi”标准连字字形318的字形ID来取代“f”字符后跟“f”字符后跟“i”字符的默认字形ID的GSUB查找。相反,标准连字特征的特征表可不包括GSUB查找,以便在用于单词“Office”的字形序列中渲染两个个体“f”字符的字形320和“i”字符的字形322。
图3C是另一示例条件过滤场景的示意图。在图3C的示例中,过程200的204处的评估下的上下文包括文本串102的字体属性的组合;即字重值和样式(例如,斜体、直立、小型大写等)。此外,204处的评估下的条件可根据要全部满足的一组条件(即布尔:AND)来定义。在这种情况下,如果字重值在预定义值范围内(例如,6-10)并且样式是“斜体”,则条件被满足。在图3C的左侧,条件不被满足,因为文本串102的字重值中的任何一个或两者都不在预定义字重值范围内和/或样式不是斜体。因此,过程200从204前进到206,其中执行默认GPOS查找以通过将“V”字符的字形ID的前进宽度减小距离“k1”来应用字距调整特征。在图3C的右侧,条件被满足,因为文本串102的字重值在预定义字重值范围内,并且样式是斜体。因此,过程200从204前进到212,其中执行替代GPOS查找以通过将“V”字符的字形ID的前进宽度减小不同的距离“k2”来应用字距调整特征。这里,距离k2小于距离k1,因此应用字距调整特征的程度取决于条件被满足或不被满足来应用。
图4A是有条件地确定GSUB查找的更详细的示例过程400A的流程图。参考先前的附图来描述过程400A。
在402处,渲染引擎112接收文本串102。文本串102可包括与一语言相关联的字符序列。文本串102还可与诸如字体(例如,Arial)、一个或多个字体设计变化属性(例如,字重、样式等)、布局方向等属性相关联。
在404处,渲染引擎112获得默认字形ID序列。为了获得默认字形ID序列,渲染引擎112可引用所讨论的字体文件的cmap表,其包含从每个字符到默认字形ID的默认字形映射。
在406,渲染引擎112应用GSUB规则以应用一个或多个字体排印特征(例如,标准连字、历史连字、小型大写等)。在406处应用GSUB规则可涉及子过程,其中在406(1)处,做出关于文本串102的上下文是否满足条件集的确定。可在GSUB表116的特征变化表122(1)中指定该条件集。在说明性示例中,可将406(1)处的条件的至少一个指定为确定文本串102的字重值是否在预定义字重值范围内。
如果在406(1)处,渲染引擎112确定条件集不被满足,则过程400A沿着“否”路径向下进行到406(2),其中确定与所讨论的语言相关联的默认特征表。406(2)处的确定可涉及处理语言系统表以确定所讨论的语言的相关特征的特征表。此外,406(2)处的确定可包括经由除特征表之外的任何其他合适的数据结构来确定默认字形替换集(GSUB)动作。
在406(3)处,执行在默认特征表中标识的GSUB查找的列表,以使得对与字符序列对应的默认字形ID序列执行(诸)字形替换操作。例如,标准连字字形可替换多个默认字形,以经由在406(3)处执行的GSUB查找来应用标准连字特征。要领会,字形“替换”动作可包括将一个或多个字形取代为另一个(或多个)字形,向现有字形序列添加或插入字形,从现有字形序列中移除或删除字形,以及/或者对字形序列中的字形重新排序。
在406(4)处,可与文本串102的上下文相关联地高速缓存默认GSUB查找,使得可在后续文本串处理中最小化处理成本。
如果在406(1)处,渲染引擎112确定该条件集被满足,则过程400A沿“是”路径向下行进到406(5),其中确定替代特征表以代替默认特征表使用,诸如原本如果条件集不被满足则将在406(2)处确定的默认特征表。替代特征表可对应于要应用于文本串102的字体排印特征。此外,406(5)处的确定可包括经由除特征表之外的任何其他合适数据结构确定替代字形替换(GSUB)动作集,以用于代替默认GSUB动作集。
在406(6)处,执行在替代特征表中标识的GSUB查找以使得对与字符序列对应的默认字形ID序列执行不同的字形替换操作。例如,具有减少的笔画数量或程度的不同字形ID可取代具有相对较高数量的笔画的默认字形ID,以在条件基于一字重值范围时保持易读性。同样,要领会,从406(6)处的GSUB查找的执行得到的字形“替换”动作可包括将一个或多个字形取代为另一个(或多个)字形,向现有字形序列添加或插入字形,从现有字形序列中移除或删除字形,以及/或者重新排序字形序列中的字形。
过程400A从406(6)前进到406(4)以将在406(6)处执行的GSUB查找与文本串102的上下文相关联地高速缓存,使得可在后续文本串处理中最小化处理成本。
图4B是条件确定GPOS查找的更详细的示例过程400B的流程图。参考前面的附图描述过程400B,并且过程400B可从过程400A的步骤406(4)继续,如图4A和4B中的离页引用“A”所示。
在408处,渲染引擎112可获得与在406处应用GSUB规则而产生的字形ID序列相关联的默认字形度量集。例如,作为在406处执行的GSUB查找的结果,在404处获得的一个或多个默认字形ID可被用一个或多个替换字形ID取代,并且将导致不同的字形ID序列。默认字形度量通过定义诸如前进宽度、基线位置等的度量来定义不同字形ID序列中的字形ID的相应位置。
在410处,渲染引擎112应用GPOS规则以应用一个或多个字体排印特征(例如,字距调整)。在410处应用GPOS规则可涉及类似于在406处参考图4A描述的子过程的子过程,在于在410(1)处评估条件集。如果在410(1)处该条件集不被满足,则过程400B进行到410(2),其中确定默认特征表。410(2)处的确定可包括经由除特征表之外的任何其他合适数据结构来确定默认字形定位(GPOS)动作集。
在410(3)处,执行在默认特征表中标识的GPOS查找的列表。在说明性示例中,可在410(3)处执行GPOS查找以对字形ID序列中的特定字形ID的距离k1的前进宽度的减小应用字距调整(参见图3C)。要领会,由执行GPOS查找列表产生的字形“定位”动作可包括调整默认字形度量,在基本字形周围定位重音标记,或任何合适的字形定位动作。
在410(4)处,可与文本串102的上下文相关联地高速缓存默认在410(3)处执行的GSUB查找,使得可在后续文本串处理中最小化处理成本。
如果在410(1)处条件被满足,则过程400B进行到410(5),其中确定替代特征表。410(5)处的确定可包括经由除特征表之外的任何其他合适数据结构确定替代字形定位(GPOS)动作集,以用于代替默认GPOS动作集。过程400B从410(5)进行到410(6),其中执行在替代特征表中标识的GPOS查找的列表。在说明性示例中,可在410(6)处执行GPOS查找以对字形ID序列中的特定字形ID的距离k2的前进宽度的减小应用字距调整,距离k2不同于距离k1。(参见图3C)同样,要领会,由在410(6)处执行GPOS查找列表产生的字形“定位”动作可包括调整默认字形度量,在基本字形周围定位重音标记,或任何合适的字形定位动作。
在410(4)处,可与文本串102的上下文相关联地高速缓存默认在410(6)处执行的GSUB查找,使得可在后续文本串处理中最小化处理成本。
在412处,文本串102在显示器106上被渲染为与由在图4A的406处执行的GSUB查找产生的字形ID序列相对应的字形序列。在412处渲染的字形序列也将在由图4B的410处执行的GPOS查找产生的位置中渲染。以这种方式,可应用条件过滤以使用过程400A和400B在412处将文本串渲染为字形序列。要领会,412处的渲染步骤可由客户端设备(诸如图1的计算设备100)执行。在其中本文公开的过程的步骤由不同于计算设备100的服务器计算机执行的瘦客户端实现中,服务器设备可使得文本串102在412处被渲染在计算设备100的显示器上。替代地,如果计算设备100不具有显示器,但可联合外围显示器使用,则计算设备100可使得文本串102在412处被渲染在外围显示器上。
本文所描述的环境和各个元件当然可包括许多其它的逻辑、程序以及物理组件,其中显示在附图中的那些仅仅是与本文的讨论有关的示例。
本文所描述的示例被设想用于以广义的计算机可执行指令或软件上下文来实现的给定示例中,诸如程序模块,其被存储在计算机可读存储中并且由一个或多个计算机或其它设备的处理器来执行,诸如附图中所示出的那些。一般而言,程序模块包括例程、程序、对象、组件、数据结构等,并定义用于执行特定任务或实现特定抽象数据类型的逻辑。
其它架构可被用于实现所描述的功能,这些其它架构也落于本公开的范围内。此外,尽管以上为了讨论的目的描述了具体的职责分布,但可根据情况以不同方式分布和划分各组功能和职责。
类似地,可以各种方式和使用不同装置来存储和分布软件,并且以上所描述的特定软件存储和执行配置可以许多不同方式改变。因此,实现上述技术的软件可分布在各种类型的计算机可读介质上,不限于具体描述的存储器形式。
示例一:一种方法,包括:接收包括与语言相关联的字符序列的文本串;获得对应于所述字符序列的默认字形标识符(ID)序列;通过以下操作来应用与所述语言相关联的字形替换规则:确定所述文本串的上下文满足条件集;响应于确定所述上下文满足所述条件集,确定要代替默认字形替换动作集使用的替代字形替换动作集,所述替代字形替换动作集对应于要应用于所述文本串的字体排印特征;以及执行替代字形替换动作集中的字形替换动作,其中执行所述字形替换动作导致不同的字形ID序列;以及使所述文本串在显示器上被渲染为对应于所述不同的字形ID序列的字形序列。
示例二:示例一的方法,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件集包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例三:前述示例中的任何示例的单独或组合的方法,其中所述字体设计变化轴包括定义连续字重值的字重轴,并且其中所述值包括与所述文本串相关联的字重值。
示例四:前述示例中的任何示例的单独或组合的方法,其中表示所述条件集和所述替代字形替换动作集的数据被包括在现有字体数据结构内的附加数据结构内,使得不利用或识别所述数据的旧式系统响应于处理包含所述附加数据结构的现有字体数据结构而输出经定位字形序列。
示例五:前述示例中的任何示例的单独或组合的方法,还包括:在使所述文本串在所述显示器上被渲染之前:获得与所述不同的字形ID序列相关联的默认字形度量;以及通过以下操作来处理与所述语言相关联的字形定位规则:确定所述文本串的上下文或不同上下文满足第二条件集;响应于确定所述上下文或所述不同上下文满足所述第二条件集,确定要代替默认字形定位动作集使用的替代字形定位动作集,所述替代字形定位动作集对应于要应用于所述文本串的第二字体排印特征;以及执行所述字形定位动作集中的字形定位动作,以将所述默认字形度量转换为经调整的字形度量;以及其中使得所述文本串在显示器上被渲染包括至少部分地基于所述经调整的字形度量来定位所述字形序列。
示例六:前述示例中的任何示例的单独或组合的方法,其中所述上下文包括布局方向,并且其中确定所述上下文满足所述条件集包括确定所述布局方向是从左到右、从右到左、从上到下或从下到上中的至少一者。
示例七:前述示例中的任何示例的单独或组合的方法,其中所述上下文包括字体格式的版本,并且其中确定所述上下文满足所述条件集包括确定所述字体格式的版本是否等于或高于所述字体格式的最小版本。
示例八:一种系统,包括:一个或多个处理器(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等);以及存储器(例如,RAM、ROM、EEPROM、闪存等),所述存储器存储:至少一个数据结构,所述至少一个数据结构指定用于执行代替默认查找的以字形替换为目的的查找的条件集;以及计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行操作,所述操作包括:接收包括与语言相关联的字符序列的文本串;获得对应于所述字符序列的默认字形标识符(ID)序列;通过以下操作来应用与所述语言相关联的字形替换规则:通过处理所述至少一个数据结构来确定所述文本串的上下文满足条件集;响应于确定所述上下文满足所述条件集,确定要代替默认字形替换动作集使用的替代字形替换动作集,所述替代字形替换动作集对应于要应用于所述文本串的字体排印特征;以及执行替代字形替换动作集中的字形替换动作,其中执行所述字形替换动作导致不同的字形ID序列;以及使所述文本串在显示器上被渲染为对应于所述不同的字形ID序列的字形序列。
示例九:示例八的系统,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件集包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例十:前述示例中的任何示例的单独或组合的系统,其中所述字体设计变化轴包括定义连续字重值的字重轴,并且其中所述值包括与所述文本串相关联的字重值。
示例十一:前述示例中的任何示例的单独或组合的系统,其中表示所述条件集和所述替代字形替换动作集的数据被包括在现有字体数据结构内的所述至少一个数据结构内,使得不利用或识别所述数据的旧式系统响应于处理包含所述至少一个数据结构的现有字体数据结构而输出经定位字形序列。
示例十二:前述示例中的任何示例的单独或组合的系统,其中所述至少一个数据结构进一步指定用于执行代替默认查找的以字形定位为目的的替代查找的第二条件集,所述操作进一步包括,在使所述文本串在所述显示器上被渲染之前:获得与所述不同的字形ID序列相关联的默认字形度量;以及通过以下操作来处理与所述语言相关联的字形定位规则:通过处理所述至少一个数据结构来确定所述文本串的上下文或不同上下文满足所述第二条件集;响应于确定所述上下文或所述不同上下文满足所述第二条件集,确定要代替默认字形定位动作集使用的替代字形定位动作集,所述替代字形定位动作集对应于要应用于所述文本串的第二字体排印特征;以及执行所述字形定位动作集中的字形定位动作,以将所述默认字形度量转换为经调整的字形度量;以及其中使得所述文本串在显示器上被渲染包括至少部分地基于所述经调整的字形度量来定位所述字形序列。
示例十三:前述示例中的任何示例的单独或组合的系统,其中所述上下文包括布局方向,并且其中确定所述上下文满足所述条件集包括确定所述布局方向是从左到右、从右到左、从上到下或从下到上中的至少一者。
示例十四:前述示例中的任何示例的单独或组合的系统,其中所述上下文包括字体格式的版本,并且其中确定所述上下文满足所述条件集包括确定所述字体格式的版本是否等于或高于所述字体格式的最小版本。
示例十五:一个或多个计算机可读存储介质(例如,RAM、ROM、EEPROM、闪存等),所述计算机可读存储介质存储:指定用于执行代替默认查找的以字形替换为目的的查找的条件集;以及计算机可执行指令,所述计算机可执行指令在被处理器(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等)执行时执行操作,所述操作包括:接收包括与语言相关联的字符序列的文本串;获得对应于所述字符序列的默认字形标识符(ID)序列;通过以下操作来应用与所述语言相关联的字形替换规则:通过处理所述至少一个数据结构来确定所述文本串的上下文满足条件集;响应于确定所述上下文满足所述条件集,确定要代替默认字形替换动作集使用的替代字形替换动作集,所述替代字形替换动作集对应于要应用于所述文本串的字体排印特征;以及执行替代字形替换动作集中的字形替换动作,其中执行所述字形替换动作导致不同的字形ID序列;以及使所述文本串在显示器上被渲染为对应于所述不同的字形ID序列的字形序列。
示例十六:示例十五的一个或多个计算机可读存储介质,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件集包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例十七:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中所述字体设计变化轴包括定义连续字重值的字重轴,并且其中所述值包括与所述文本串相关联的字重值。
示例十八:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中表示所述条件集和所述替代字形替换动作集的数据被包括在现有字体数据结构内的所述至少一个数据结构内,使得不利用或识别所述数据的旧式系统响应于处理包含所述至少一个数据结构的现有字体数据结构而输出经定位字形序列。
示例十九:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中所述至少一个数据结构进一步指定用于执行代替默认查找的以字形定位为目的的替代查找的第二条件集,所述操作进一步包括,在使所述文本串在所述显示器上被渲染之前:获得与所述不同的字形ID序列相关联的默认字形度量;以及通过以下操作来处理与所述语言相关联的字形定位规则:通过处理所述至少一个数据结构来确定所述文本串的上下文或不同上下文满足所述第二条件集;响应于确定所述上下文或所述不同上下文满足所述第二条件集,确定要代替默认字形定位动作集使用的替代字形定位动作集,所述替代字形定位动作集对应于要应用于所述文本串的第二字体排印特征;以及执行所述字形定位动作集中的字形定位动作,以将所述默认字形度量转换为经调整的字形度量;以及其中使得所述文本串在显示器上被渲染包括至少部分地基于所述经调整的字形度量来定位所述字形序列。
示例二十:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中所述上下文包括布局方向,并且其中确定所述上下文满足所述条件集包括确定所述布局方向是从左到右、从右到左、从上到下或从下到上中的至少一者。
示例二十一:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中所述上下文包括字体格式的版本,并且其中确定所述上下文满足所述条件集包括确定所述字体格式的版本是否等于或高于所述字体格式的最小版本。
示例二十二:一种方法,包括:接收包括字符序列的文本串;获得对应于所述字符序列的字形标识符(ID)序列;确定所述文本串的上下文满足条件;响应于确定所述上下文满足所述条件,确定替代查找以代替默认查找执行,所述替代查找能用于实现字体排印特征;执行替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
示例二十三:示例二十二的方法,其中确定要执行的所述替代查找包括确定要代替默认特征表使用的替代特征表,所述替代特征表对应于所述字体排印特征并且包括查找引用列表,所述替代特征表中的所述查找引用列表包括与所述替代查找对应的查找引用。
示例二十四:前述示例中的任何示例的单独或组合的方法,其中确定所述替代特征表包括:响应于所述条件被满足,处理所述条件的数据结构以确定多个特征表替换表,所述多个特征表替换表中的至少一个特征表替换表包括在所述替代特征表和所述默认特征表之间的相关性。
示例二十五:前述示例中的任何示例的单独或组合的方法,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例二十六:前述示例中的任何示例的单独或组合的方法,其中所述字体设计变化轴包括定义连续字重值的字重轴,并且其中所述值包括与所述文本串相关联的字重值。
示例二十七:前述示例中的任何示例的单独或组合的方法,其中所述上下文包括布局方向,并且其中确定所述上下文满足所述条件包括确定所述布局方向是从左到右、从右到左、从上到下或从下到上中的至少一者。
示例二十八:前述示例中的任何示例的单独或组合的方法,进一步包括与所述文本串的上下文相关联地高速缓存所述替代查找。
示例二十九:前述示例中的任何示例的单独或组合的方法,其中:所述字形ID序列包括对应于所述字符序列的默认字形ID序列;通过用至少一个替换字形ID取代所述默认字形ID序列中的至少一个默认字形ID来执行所述字形替换操作,从而产生不同的字形ID序列;以及所述字形序列对应于所述不同的字形ID序列。
示例三十:前述示例中的任何示例的单独或组合的方法,还包括:在使所述文本串在所述显示器上被渲染之前,获得与所述字形ID序列相关联的默认字形度量,其中:通过将所述默认字形度量转换为经调整的字形度量来执行所述字形定位操作;以及在根据所述经调整的字形度量的位置处在所述显示器上渲染所述字形序列。
示例三十一:一种系统,包括:一个或多个处理器(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等);以及存储器(例如,RAM、ROM、EEPROM、闪存等)所述存储器存储至少一个数据结构,所述至少一个数据结构指定用于执行代替默认查找的以字形替换或字形定位为目的的替代查找的条件集;以及计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行操作,所述操作包括:接收包括字符序列的文本串;获得对应于所述字符序列的字形标识符(ID)序列;通过处理所述至少一个数据结构,确定所述文本串的上下文满足所述条件集中的条件;响应于确定所述上下文满足所述条件,确定替代查找以代替默认查找来执行,所述替代查找能用于实现字体排印特征;执行替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
示例三十二:示例三十二的系统,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例三十三:前述示例中的任何示例的单独或组合的系统,其中确定要执行的所述替代查找包括确定要代替默认特征表使用的替代特征表,所述替代特征表对应于所述字体排印特征并且包括查找引用列表,所述替代特征表中的所述查找引用列表包括与所述替代查找对应的查找引用。
示例三十四:前述示例中的任何示例的单独或组合的系统,其中:所述字形ID序列包括对应于所述字符序列的默认字形ID序列;通过用至少一个替换字形ID取代所述默认字形ID序列中的至少一个默认字形ID来执行所述字形替换操作,从而产生不同的字形ID序列;以及所述字形序列对应于所述不同的字形ID序列。
示例三十五:一个或多个计算机可读存储介质(例如,RAM、ROM、EEPROM、闪存等),所述计算机可读存储介质存储:指定用于执行代替默认查找的以字形替换或字形定位为目的的替代查找的条件集;以及计算机可执行指令,所述计算机可执行指令在被处理器(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等)执行时执行操作,所述操作包括:接收包括字符序列的文本串;获得对应于所述字符序列的字形标识符(ID)序列;通过处理所述至少一个数据结构来确定所述文本串的上下文满足条件;响应于确定所述上下文满足所述条件集,确定替代查找以代替默认查找执行,所述替代查找能用于实现字体排印特征;执行替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
示例三十六:示例三十五的一个或多个计算机可读存储介质,其中所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件包括确定所述值在所述字体设计变化轴上的预定义值范围内。
示例三十七:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中确定要执行的所述替代查找包括确定要代替默认特征表使用的替代特征表,所述替代特征表对应于所述字体排印特征并且包括查找引用列表,所述替代特征表中的所述查找引用列表包括与所述替代查找对应的查找引用。
示例三十八:前述示例中的任何示例的单独或组合的一个或多个计算机可读存储介质,其中:所述字形ID序列包括对应于所述字符序列的默认字形ID序列;通过用至少一个替换字形ID取代所述默认字形ID序列中的至少一个默认字形ID来执行所述字形替换操作,从而产生不同的字形ID序列;以及所述字形序列对应于所述不同的字形ID序列。
示例三十九:一种系统,包括:用于执行计算机可执行指令的装置(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等);以及存储器(例如,RAM、ROM、EEPROM、闪存等);以及用于存储以下的装置(例如RAM、ROM、EEPROM、闪存等):至少一个数据结构,所述至少一个数据结构指定用于执行代替默认查找的以字形替换为目的的查找的条件集;以及计算机可执行指令,所述计算机可执行指令在由所述用于执行计算机可执行指令的装置执行时使得所述一个或多个处理器执行操作,所述操作包括:接收包括与语言相关联的字符序列的文本串;获得对应于所述字符序列的默认字形标识符(ID)序列;通过以下操作来应用与所述语言相关联的字形替换规则:确定所述文本串的上下文满足条件集;响应于确定所述上下文满足所述条件集,确定要代替默认字形替换动作集使用的替代字形替换动作集,所述替代字形替换动作集对应于要应用于所述文本串的字体排印特征;以及执行替代字形替换动作集中的字形替换动作,其中执行所述字形替换动作导致不同的字形ID序列;以及使所述文本串在显示器上被渲染为对应于所述不同的字形ID序列的字形序列。。
示例四十:示例三十九的系统,其中所述至少一个数据结构进一步指定用于执行代替默认查找的以字形定位为目的的替代查找的第二条件集,所述操作进一步包括,在使所述文本串在所述显示器上被渲染之前:获得与所述不同的字形ID序列相关联的默认字形度量;以及通过以下操作来处理与所述语言相关联的字形定位规则:通过处理所述至少一个数据结构来确定所述文本串的上下文或不同上下文满足所述第二条件集;响应于确定所述上下文或所述不同上下文满足所述第二条件集,确定要代替默认字形定位动作集使用的替代字形定位动作集,所述替代字形定位动作集对应于要应用于所述文本串的第二字体排印特征;以及执行所述字形定位动作集中的字形定位动作,以将所述默认字形度量转换为经调整的字形度量;以及其中使得所述文本串在显示器上被渲染包括至少部分地基于所述经调整的字形度量来定位所述字形序列。
示例四十一:一种系统,包括:用于执行计算机可执行指令的装置(例如,中央处理单元(CPU)、现场可编程门阵列(FPGA)、复杂可编程逻辑器件(CPLD)、专用集成电路(ASIC)、片上系统(SoC)等);以及存储器(例如,RAM、ROM、EEPROM、闪存等);以及用于存储以下的装置(例如RAM、ROM、EEPROM、闪存等):所述存储器存储至少一个数据结构,所述至少一个数据结构指定用于执行代替默认查找的以字形替换或字形定位为目的的替代查找的条件集;以及计算机可执行指令,所述计算机可执行指令在由所述用于执行计算机可执行指令的装置执行时执行操作,所述操作包括:接收包括字符序列的文本串;获得对应于所述字符序列的字形标识符(ID)序列;通过处理所述至少一个数据结构,确定所述文本串的上下文满足所述条件集中的条件;响应于确定所述上下文满足所述条件,确定替代查找以代替默认查找来执行,所述替代查找能用于实现字体排印特征;执行替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
结语
总而言之,尽管用对结构特征和/或方法动作专用的语言描述了各配置,但可以理解,所附权利要求书中定义的主题不必限于所述具体特征或动作。相反,这些具体特征和动作是作为实现所要求保护的主题内容的示例形式而公开的。
Claims (15)
1.一种方法,包括:
接收包括字符序列的文本串;
获得对应于所述字符序列的字形标识符(ID)序列;
确定所述文本串的上下文满足条件;
响应于确定所述上下文满足所述条件,确定替代查找以代替默认查找执行,所述替代查找能用于实现字体排印特征;
执行所述替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及
使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
2.根据权利要求1所述的方法,其特征在于,确定要执行的所述替代查找包括确定要代替默认特征表使用的替代特征表,所述替代特征表对应于所述字体排印特征并且包括查找引用列表,所述替代特征表中的所述查找引用列表包括与所述替代查找对应的查找引用。
3.根据权利要求2所述的方法,其特征在于,确定所述替代特征表包括:响应于所述条件被满足,处理所述条件的数据结构以确定多个特征表替换表,所述多个特征表替换表中的至少一个特征表替换表包括在所述替代特征表和所述默认特征表之间的相关性。
4.根据权利要求1所述的方法,其特征在于,所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件包括确定所述值在所述字体设计变化轴上的预定义值范围内。
5.根据权利要求4所述的方法,其特征在于,所述字体设计变化轴包括定义连续字重值的字重轴,并且其中所述值包括与所述文本串相关联的字重值。
6.根据权利要求1所述的方法,其特征在于,所述上下文包括布局方向,并且其中确定所述上下文满足所述条件包括确定所述布局方向是从左到右、从右到左、从上到下或从下到上中的至少一者。
7.根据权利要求1所述的方法,其特征在于,进一步包括与所述文本串的上下文相关联地高速缓存所述替代查找。
8.根据权利要求1所述的方法,其特征在于:
所述字形ID序列包括对应于所述字符序列的默认字形ID序列;
所述字形替换操作通过用至少一个替换字形ID取代所述默认字形ID序列中的至少一个默认字形ID来被执行,从而产生不同的字形ID序列;以及
所述字形序列对应于所述不同的字形ID序列。
9.根据权利要求1所述的方法,其特征在于,还包括:在使所述文本串在所述显示器上被渲染之前,获得与所述字形ID序列相关联的默认字形度量,其中:
所述字形定位操作通过将所述默认字形度量转换为经调整的字形度量来被执行;以及
所述字形序列在根据所述经调整的字形度量的位置处被渲染在所述显示器上。
10.一种系统,包括:
一个或多个处理器;以及
存储器,所述存储器存储:
至少一个数据结构,所述至少一个数据结构指定用于执行代替默认查找的以字形替换或字形定位为目的的替代查找的条件集;以及
计算机可执行指令,所述计算机可执行指令在由所述一个或多个处理器执行时使得所述一个或多个处理器执行操作,所述操作包括:
接收包括字符序列的文本串;
获得对应于所述字符序列的字形标识符(ID)序列;
通过处理所述至少一个数据结构,确定所述文本串的上下文满足所述条件集中的条件;
响应于确定所述上下文满足所述条件,确定替代查找以代替默认查找执行,所述替代查找能用于实现字体排印特征;
执行所述替代查找,其中执行所述替代查找导致对所述字形ID序列执行字形替换操作或字形定位操作;以及
使所述文本串在显示器上被渲染为字形序列,其中所述字体排印特征被应用于所述字形序列。
11.根据权利要求10所述的系统,其特征在于,所述上下文包括字体设计变化轴上的值,并且其中确定所述上下文满足所述条件包括确定所述值在所述字体设计变化轴上的预定义值范围内。
12.根据权利要求10所述的系统,其特征在于,确定要执行的所述替代查找包括确定要代替默认特征表使用的替代特征表,所述替代特征表对应于所述字体排印特征并且包括查找引用列表,所述替代特征表中的所述查找引用列表包括与所述替代查找对应的查找引用。
13.根据权利要求10所述的系统,其特征在于:
所述字形ID序列包括对应于所述字符序列的默认字形ID序列;
所述字形替换操作通过用至少一个替换字形ID取代所述默认字形ID序列中的至少一个默认字形ID来被执行,从而产生不同的字形ID序列;以及
所述字形序列对应于所述不同的字形ID序列。
14.根据权利要求10所述的系统,其特征在于,所述操作还包括:在使所述文本串在所述显示器上被渲染之前,获得与所述字形ID序列相关联的默认字形度量,其中:
所述字形定位操作通过将所述默认字形度量转换为经调整的字形度量来被执行;以及
所述字形序列在根据所述经调整的字形度量的位置处被渲染在所述显示器上。
15.根据权利要求10所述的系统,其特征在于,所述操作进一步包括与所述文本串的上下文相关联地高速缓存所述替代查找。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201662301497P | 2016-02-29 | 2016-02-29 | |
US62/301,497 | 2016-02-29 | ||
US15/183,731 US20170249292A1 (en) | 2016-02-29 | 2016-06-15 | Conditional determination of lookups in glyph processing |
US15/183,731 | 2016-06-15 | ||
PCT/US2017/019230 WO2017151404A1 (en) | 2016-02-29 | 2017-02-24 | Conditional determination of lookups in glyph processing |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108701120A true CN108701120A (zh) | 2018-10-23 |
Family
ID=59678644
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780014040.3A Withdrawn CN108701120A (zh) | 2016-02-29 | 2017-02-24 | 字形处理中的查找的条件确定 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20170249292A1 (zh) |
CN (1) | CN108701120A (zh) |
WO (1) | WO2017151404A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11210450B1 (en) | 2020-07-29 | 2021-12-28 | Adobe Inc. | Systems for generating instances of variable fonts |
CN112258594A (zh) * | 2020-10-23 | 2021-01-22 | 北京字节跳动网络技术有限公司 | 文字显示方法、装置、电子设备及计算机可读存储介质 |
US11776168B2 (en) * | 2021-03-31 | 2023-10-03 | Adobe Inc. | Extracting textures from text based images |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416898A (en) * | 1992-05-12 | 1995-05-16 | Apple Computer, Inc. | Apparatus and method for generating textual lines layouts |
CN102081594A (zh) * | 2009-11-27 | 2011-06-01 | 株式会社理光 | 从可移植电子文档中提取字符外接矩形的设备和方法 |
US8306356B1 (en) * | 2007-09-28 | 2012-11-06 | Language Technologies, Inc. | System, plug-in, and method for improving text composition by modifying character prominence according to assigned character information measures |
CN103765413A (zh) * | 2011-06-30 | 2014-04-30 | 谷歌公司 | 渲染跟随线条的文本图像 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6426751B1 (en) * | 1999-04-01 | 2002-07-30 | Adobe Systems Incorporated | Font feature file processing |
US7594171B2 (en) * | 2004-10-01 | 2009-09-22 | Adobe Systems Incorporated | Rule-based text layout |
-
2016
- 2016-06-15 US US15/183,731 patent/US20170249292A1/en not_active Abandoned
-
2017
- 2017-02-24 WO PCT/US2017/019230 patent/WO2017151404A1/en active Application Filing
- 2017-02-24 CN CN201780014040.3A patent/CN108701120A/zh not_active Withdrawn
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5416898A (en) * | 1992-05-12 | 1995-05-16 | Apple Computer, Inc. | Apparatus and method for generating textual lines layouts |
US8306356B1 (en) * | 2007-09-28 | 2012-11-06 | Language Technologies, Inc. | System, plug-in, and method for improving text composition by modifying character prominence according to assigned character information measures |
CN102081594A (zh) * | 2009-11-27 | 2011-06-01 | 株式会社理光 | 从可移植电子文档中提取字符外接矩形的设备和方法 |
CN103765413A (zh) * | 2011-06-30 | 2014-04-30 | 谷歌公司 | 渲染跟随线条的文本图像 |
Also Published As
Publication number | Publication date |
---|---|
US20170249292A1 (en) | 2017-08-31 |
WO2017151404A1 (en) | 2017-09-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106687945B (zh) | 远程字体管理 | |
KR100860210B1 (ko) | 폰트 선택 방법 | |
EP1554662B1 (en) | Glyphlets | |
US9870484B2 (en) | Document redaction | |
US20080303822A1 (en) | Font metadata | |
US20150348278A1 (en) | Dynamic font engine | |
US9047511B1 (en) | Describing inter-character spacing in a font file | |
US11733785B2 (en) | Stylizing text by providing alternate glyphs | |
US20120236004A1 (en) | Information output apparatus and information output method and recording medium | |
CN108701120A (zh) | 字形处理中的查找的条件确定 | |
US8687004B2 (en) | Font file with graphic images | |
US6175843B1 (en) | Method and system for displaying a structured document | |
US20050094172A1 (en) | Linking font resources in a printing system | |
CN102169478B (zh) | 用于呈现多语言文本的装置和方法 | |
JP5706306B2 (ja) | リンクされたテキストボックスを有する電子文書のレンダリングの方法、レンダリングする指示を含むコンピューターが読み取り可能な記憶媒体及びシステム | |
CN111475156B (zh) | 页面代码生成方法和装置、电子设备和存储介质 | |
US20130031460A1 (en) | Using a common input/output format to generate a page of an electronic document | |
WO2007035615A1 (en) | Positioning screen elements | |
US20110296292A1 (en) | Efficient application-neutral vector documents | |
US20140089784A1 (en) | Page data generation apparatus, recording medium, and page data generation method | |
JP2017068307A (ja) | 情報検索装置及びその制御方法、情報検索用プログラム | |
JPH0233659A (ja) | 文書データ処理方法 | |
CN117574855A (zh) | Ofd文件敏感词的替换方法及装置 | |
AU2012201888A1 (en) | Personalised print markup language |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20181023 |
|
WW01 | Invention patent application withdrawn after publication |