CN101639846A - 供用户自定义字体的方法 - Google Patents
供用户自定义字体的方法 Download PDFInfo
- Publication number
- CN101639846A CN101639846A CN200910023659A CN200910023659A CN101639846A CN 101639846 A CN101639846 A CN 101639846A CN 200910023659 A CN200910023659 A CN 200910023659A CN 200910023659 A CN200910023659 A CN 200910023659A CN 101639846 A CN101639846 A CN 101639846A
- Authority
- CN
- China
- Prior art keywords
- character
- font
- character picture
- picture
- carry out
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- 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
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)
- Document Processing Apparatus (AREA)
Abstract
本发明是一种供用户自定义字体的方法,适用于内嵌式系统,该方法包含下列步骤:1)提供字符图片;2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;3)将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引;4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。本发明可降低使用者自定义字体的复杂度,去除了很多冗余的信息,避免不必要过滤和解析处理,避免频繁的加载图像资源,可提高字体显示速度。
Description
技术领域
本发明涉及一种供用户自定义字体的方法,尤其是一种让用户以字符图片打包成字体文件在嵌入式系统中使用的技术领域。
背景技术
随着嵌入式装置(掌上型数字助理机)的存储容量越来越大,用户对嵌入式装置的功能也越来越多。其中,嵌入式装置个人化便是其中一项受重视的功能。许多用户喜欢用可以代表其个性的特殊字体,虽然嵌入式装置上有很多种字型字体可供用户下载,但仍不够满足一些用户对更个性化字体的的需求,如亲笔字体等。
在背景技术中,嵌入式装置可以通过制定特殊的脚本(script),逐个使用图片来显示一些字符(character),但图片的显示不具备字库显示的基本特点。显示这种图片的数据也需要再特别指定图片资源,而且这种传统的图片资源的显示手法需要大量的运算,对于性能限定的嵌入式装置不一定可以快速地使用图片来显示字符。因此,如何兼顾让用户在嵌入式装置上可自行定义字体有不会消耗过多资源是亟待解决的问题。
发明内容
本发明为解决背景技术中存在的上述技术问题,而提出一种供用户自定义字体的方法。
本发明的技术解决方案是:本发明为一种供用户自定义字体的方法,其特殊之处在于:该方法包含下列步骤:
1)提供字符图片;
2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;
3)将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引;
4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。
上述步骤3)的具体步骤如下:
31)判断是否有指定的欲打包字符图片清单,若是,则进行步骤32),若否,则进行步骤33);
32)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;
33)判断是否有指定的合法目录或路径,若否,则回到步骤31),若是,则进行步骤34);
34)扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32);
35)将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引;
36)判断此字体文件及其索引是否需压缩,若否,则进行步骤37),若是,则进行步骤38);
37)输出此字体文件及其索引,接着结束此流程;
38)选择压缩算法;
39)对字体文件及其索引进行压缩,接着进行步骤37)。
上述步骤4)的具体步骤如下:
41)进行字体应用程序接口函数,取得字体来显示;
42)判断所操作的字体是否为下载字体,若是,则进行步骤43),若否,则进行步骤44)
43)以最近最久未使用算法查询此字体是否已经加载到缓冲区中,若此字体已经加载到缓冲区中,则进行步骤45,若否,则进行步骤46);
44)使用预设字体等等的备用方案,或是报告错误并以特定字符;
45)取得缓冲区的数据节点,并调整LRU链表,进行步骤48);
46)加载此字体的相关数据至缓冲区;
47)判断是否加载成功,若是,则进行步骤45),若否,则进行步骤44);
48)提供下载字体数据服务。
上述字符图片的文件名包含字符码。
上述步骤1)中还包括提供对照表,对照表记录字符图片的文件名与字符码的对应关系。
上述步骤32)中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码,当字符图片的文件名不包含字符码,则进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中查询每个对应字符图片的字符码。
上述该字符图片的文件数据包含字符图片的宽度高度以及档案偏移量。
上述步骤3)中打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。
上述步骤3)中字体文件的索引以红黑树数据结构来记录。
本发明可输入用户制作的图像资源作为字符图片,并以目录名区分字体类型,或以文件名对应上字符码,此举可降低使用者自定义字体的复杂度。本发明使用字体文件的索引及去除了很多冗余的信息,避免不必要过滤和解析处理。此外,字体类型可为单位在缓冲区集中管理,避免频繁的加载图像资源,可提高字体显示速度,特别是用于运算能力有限的嵌入式装置的用户字体的应用。此外,本发明所产生的字体文件可用于字体的统一接口函数(FONT API)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了已经发布出去的应用程序能够二进制兼容。
附图说明
图1为本发明方法的步骤流程图;
图2为本发明显示示意图;
图3为本发明方法产生字体文件及其索引的实施例步骤流程图;
图4为本发明方法使用自定义字体的实施例步骤流程图。
具体实施方式
参见图1,供用户自定义字体的方法包含下列步骤:步骤11,提供字符图片,例如表一所示的分别显示″体″、″字″、″我″、″的″、″A″、″B″、″C″及″D″的8张用户手写字符图片。相同类型的字符图片可储存于同一目录,且目录名称可包含这些字符图片的字体类型名称。
表一
步骤12,解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据。文件数据包含字符图片的宽度高度以及档案偏移量(offset)。步骤13,将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引。其中,字体文件的索引可以具备快速查找能力的数据结构来记录,例如红黑树数据结构(Red Black Tree),提高之后索引进行检索的速度。
字符图片的文件名视需要可包含字符码,例如在表一中,″体″字符图片的文件名为ISN_0x4f53.bmp,″4f53″为″体″的字符码,″D″字符图片的文件名为ISN_68.bmp,″68″为″D″的字符码,可加快此字体文件的索引的产生。此外,进行步骤12前,还包含提供对照表,对照表记录字符图片的文件名与字符码的对应关系,而进行步骤12,根据该对照表取得字符图片所对应的字符码。
此外,步骤13,打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。由此,可加速之后应用此字体文件时的检索速度。而字体文件产生后,也可对字体文件进行压缩,缩小其数据量。
步骤14,当用户选择使用该字体时,根据欲显示的字符码,对字体文件的索引进行检索,并在步骤15判断检索是否匹配。其中,当字体文件的索引以红黑树数据结构(Red Black Tree)来记录时,则在步骤14可使用最近最久未使用算法(Least Recently Used,LRU),并搭配缓冲区来进行检索。当检索匹配时,在步骤16从字体文件中取得对应欲显示字符码的字符图片并显示,参见图2,第1行及第2行显示表一中的8个字体,而第3行为一般标准字体。
参见图3,步骤31,判断是否有指定的欲打包字符图片清单,若是,则进行步骤32。若否,则在步骤33判断是否有指定的合法目录或路径,若否,则回到开始步骤,若是,则在步骤34扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32。
步骤32,解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据。其中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码。当字符图片的文件名不包含字符码,则步骤32进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中查询每个对应字符图片的字符码。
步骤35,将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引。字体文件的索引可使用具备快速查找能力的数据结构来记录,例如红黑树数据结构(Red Black Tree),提高之后此索引进行检索的速度。步骤36,判断此字体文件及其索引是否需压缩,若否,则进行步骤37输出此字体文件及其索引,接着结束此流程。
若此字体文件及其索引需压缩,则在步骤38选择压缩算法,而在步骤39对字体文件及其索引进行压缩,接着进行步骤37。
参见图4,步骤41,进行字体应用程序接口函数(Font API),取得字体来显示。此字体应用程序接口函数可为嵌入式系统中内建统一的接口函数,如表二所示的C或C++语言中的字型接口函数。由于通过本发明方法来制作的字体文件可使用字体的统一接口函数(FONT API)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了已经发布出去的应用程序能够二进制兼容(binary compatible)。由此,可满足用户对字型的任意特殊的自定义要求,且在编辑和制作自定义过程也不再需要复杂的字体专业描述软件。
表二
与字型相关的接口函数 | |
1 | USHORT GetCharWidth(USHORT ch,USHORTfonttype) |
2 | USHORT GetFontHeight(USHORT fonttype) |
3 | USHORT GetFontMatrix(USHORT ch,PUcharbuffer,USHORT fonttype) |
4 | USHORT WriteChar(SHORT x,SHORT y,USHORTch,USHORT operate) |
步骤42,判断所操作的字体是否为下载字体,若是,则进行步骤43,若否,则进行步骤44使用预设字体等等的备用方案,或是报告错误并以特定字符,例如″?″替换显示等。
若所操作的字体为下载字体,则在步骤43以最近最久未使用(LRU)算法查询此字体是否已经加载到缓冲区中。若此字体已经加载到缓冲区中,则进行步骤45,若否,则进行步骤46加载此字体的相关数据至缓冲区,并在步骤47判断是否加载成功,若是,则进行步骤45,若否,则进行步骤44。
在步骤45取得缓冲区的数据节点,并调整LRU链表,接着在步骤48提供下载字体数据服务,显示出图2所示的画面。
通过上述实施例,可说明本发明可输入用户制作的图像资源作为字符图片,并以目录名区分字体类型,或以文件名对应上字符码,此举可降低使用者自定义字体的复杂度。本发明使用字体文件的索引及去除了很多冗余的信息,避免不必要过滤和解析处理。此外,字体类型可为单位在缓冲区集中管理,避免频繁的加载图像资源,可提高字体显示速度,特别是用于运算能力有限的嵌入式装置的用户字体的应用。此外,本发明所产生的字体文件可用于字体的统一接口函数(FONT API)进行操作,并不需要修改到使用字体显示应用层的程序,从而保证了已经发布出去的应用程序能够二进制兼容。
Claims (9)
1、一种供用户自定义字体的方法,其特征在于:该方法包含下列步骤:
1)提供字符图片;
2)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;
3)将字符图片打包成字体文件,以及将字符码及文件数据记录于字体文件的索引;
4)当用户选择使用字体时,根据欲显示的字符码,对字体文件的索引进行检索;当检索匹配时,从字体文件中取得对应欲显示字符码的字符图片并显示。
2、根据权利要求1所述的一种供用户自定义字体的方法,其特征在于:所述步骤3)的具体步骤如下:
31)判断是否有指定的欲打包字符图片清单,若是,则进行步骤32),若否,则进行步骤33);
32)解析字符图片的文件名,取得字符图片所对应的字符码,并读取字符图片的文件数据;
33)判断是否有指定的合法目录或路径,若否,则回到步骤31),若是,则进行步骤34);
34)扫描此合法目录内的文件产生欲打包字符图片清单,并进行步骤32);
35)将字符图片打包成字体文件,以及将字符码及文件数据记录在字体文件的索引;
36)判断此字体文件及其索引是否需压缩,若否,则进行步骤37),若是,则进行步骤38);
37)输出此字体文件及其索引,接着结束此流程;
38)选择压缩算法;
39)对字体文件及其索引进行压缩,接着进行步骤37)。
3、根据权利要求2所述的一种供用户自定义字体的方法,其特征在于:所述步骤4)的具体步骤如下:
41)进行字体应用程序接口函数,取得字体来显示;
42)判断所操作的字体是否为下载字体,若是,则进行步骤43),若否,则进行步骤44)
43)以最近最久未使用算法查询此字体是否已经加载到缓冲区中,若此字体已经加载到缓冲区中,则进行步骤45,若否,则进行步骤46);
44)使用预设字体等等的备用方案,或是报告错误并以特定字符;
45)取得缓冲区的数据节点,并调整LRU链表,进行步骤48);
46)加载此字体的相关数据至缓冲区;
47)判断是否加载成功,若是,则进行步骤45),若否,则进行步骤44);
48)提供下载字体数据服务。
4、根据权利要求2或3所述的一种供用户自定义字体的方法,其特征在于:所述字符图片的文件名包含字符码。
5、根据权利要求4所述的一种供用户自定义字体的方法,其特征在于:所述步骤1)中还包括提供对照表,对照表记录字符图片的文件名与字符码的对应关系。
6、根据权利要求5所述的一种供用户自定义字体的方法,其特征在于:所述步骤32)中,当字符图片的文件名包含字符码,则解析字符图片的文件名便可取得字符图片所对应的字符码,当字符图片的文件名不包含字符码,则进行需要记录字符图片的文件名与字符码的对应关系的对照表,并在此对照表中查询每个对应字符图片的字符码。
7、根据权利要求1所述的一种供用户自定义字体的方法,其特征在于:所述该字符图片的文件数据包含字符图片的宽度高度以及档案偏移量。
8、根据权利要求1所述的一种供用户自定义字体的方法,其特征在于:所述步骤3)中打包字体文件时,将字符图片所公用的调色板信息和字高信息储存在字体文件中。
9、根据权利要求1所述的一种供用户自定义字体的方法,其特征在于:所述步骤3)中字体文件的索引以红黑树数据结构来记录。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910023659A CN101639846A (zh) | 2009-08-20 | 2009-08-20 | 供用户自定义字体的方法 |
PCT/CN2009/075283 WO2011020259A1 (zh) | 2009-08-20 | 2009-12-03 | 供用户自定义字体的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN200910023659A CN101639846A (zh) | 2009-08-20 | 2009-08-20 | 供用户自定义字体的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101639846A true CN101639846A (zh) | 2010-02-03 |
Family
ID=41614830
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN200910023659A Pending CN101639846A (zh) | 2009-08-20 | 2009-08-20 | 供用户自定义字体的方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN101639846A (zh) |
WO (1) | WO2011020259A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209457A (zh) * | 2019-06-04 | 2019-09-06 | 深圳云里物里科技股份有限公司 | 应用于电子价签的字体渲染方法、系统及电子设备和介质 |
CN112395529A (zh) * | 2019-08-14 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 页面加载方法、装置、设备及存储介质 |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021061319A1 (en) * | 2019-09-23 | 2021-04-01 | Snap Inc. | Personalized fonts |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4150452B2 (ja) * | 1998-11-12 | 2008-09-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | フォントの取得方法、登録方法および印刷方法 |
JP2008039906A (ja) * | 2006-08-02 | 2008-02-21 | Casio Comput Co Ltd | 情報処理システム、情報処理装置、画像表示装置及びそのプログラム |
CN101276414A (zh) * | 2008-04-07 | 2008-10-01 | 宇龙计算机通信科技(深圳)有限公司 | 手写字体识别方法及装置 |
-
2009
- 2009-08-20 CN CN200910023659A patent/CN101639846A/zh active Pending
- 2009-12-03 WO PCT/CN2009/075283 patent/WO2011020259A1/zh active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110209457A (zh) * | 2019-06-04 | 2019-09-06 | 深圳云里物里科技股份有限公司 | 应用于电子价签的字体渲染方法、系统及电子设备和介质 |
CN112395529A (zh) * | 2019-08-14 | 2021-02-23 | 腾讯科技(深圳)有限公司 | 页面加载方法、装置、设备及存储介质 |
CN112395529B (zh) * | 2019-08-14 | 2023-08-11 | 腾讯科技(深圳)有限公司 | 页面加载方法、装置、设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2011020259A1 (zh) | 2011-02-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8271544B2 (en) | Data file having more than one mode of operation | |
US8938720B2 (en) | Trace visualization for object oriented programs | |
JP5904706B2 (ja) | メディアコンテンツ閲覧及び関連メディアコンテンツの機能実行方法及び装置 | |
CN102984383B (zh) | 一种预览的方法、装置和手机 | |
US7542984B2 (en) | Database system for control data storage | |
CN113568995A (zh) | 基于检索条件的动态瓦片地图制作方法及瓦片地图系统 | |
CN102446176A (zh) | 一种电子阅读多媒体用户数据记录及加载方法 | |
KR100853308B1 (ko) | 항목 타입별 구조화된 검색 | |
CN115129801A (zh) | 一种地图数据处理方法、装置、设备及存储介质 | |
CN114564620A (zh) | 图数据存储方法、系统及计算机设备 | |
US9111398B2 (en) | Method and system to perform dynamic layout of photographs | |
CN101639846A (zh) | 供用户自定义字体的方法 | |
CN101388018A (zh) | 电脑辅助设计文件的管理方法 | |
CN101369953B (zh) | 一种字库的网络分发方法及系统 | |
CN108427704A (zh) | 压缩工具调用方法、装置及存储介质 | |
US20070005617A1 (en) | Display control method, content data reproduction apparatus, and program | |
CN108874495B (zh) | 一种主题资源转换方法、装置及电子设备 | |
JP4821287B2 (ja) | 構造化文書の符号化方法、符号化装置、符号化プログラム、復号装置及び符号化された構造化文書のデータ構造 | |
CN101382961A (zh) | 升级文件的制作与数据升级方法 | |
CN114816247A (zh) | 一种逻辑数据获取方法及装置 | |
CN102043782A (zh) | 依据编码建立索引的查找系统及其方法 | |
CN108170767A (zh) | 智能手机数据整理方法 | |
JP2011128810A (ja) | 構造化文書解析装置、構造化文書解析方法、及びコンピュータプログラム | |
KR100670775B1 (ko) | 이동형 기기의 인덱스/컨텍스트 겸용 플레이리스트구현방법 | |
KR100307314B1 (ko) | 객체표현을 이용한 인포맵 도면 표시 방법 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C02 | Deemed withdrawal of patent application after publication (patent law 2001) | ||
WD01 | Invention patent application deemed withdrawn after publication |
Open date: 20100203 |