CN110164399A - 8位深度字模存储优化方法 - Google Patents
8位深度字模存储优化方法 Download PDFInfo
- Publication number
- CN110164399A CN110164399A CN201910592215.XA CN201910592215A CN110164399A CN 110164399 A CN110164399 A CN 110164399A CN 201910592215 A CN201910592215 A CN 201910592215A CN 110164399 A CN110164399 A CN 110164399A
- Authority
- CN
- China
- Prior art keywords
- data
- type matrix
- font
- bit depth
- bitmap
- 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
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/22—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
- G09G5/24—Generation of individual character patterns
- G09G5/26—Generation of individual character patterns for modifying the character dimensions, e.g. double width, double height
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Controls And Circuits For Display Device (AREA)
- Document Processing Apparatus (AREA)
Abstract
本发明涉及显示屏字体显示技术领域,公开了一种8位深度字模存储优化方法,包括以下步骤:字模提取,打开需要提取的字模的TFT字体;设定字体大小,并基于白底黑字预览显示所有字模;字宽计算,根据编码位置获得8位字体的位图数据;保存所有非白色数据;利用黑白色数据来生成1位深度字模位图,白色为0,非白色为1;再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据;根据压缩算法存储规则解码,解出8位灰度位图字体后,再将字体着色并与背景进行透明度运算。本发明的技术方案能够使TTF字体在低端嵌入式平台也能完善呈现优秀的字体显示效果,可达到和TTF字体一样的效果。
Description
技术领域
本发明涉及显示屏字体显示技术领域,特别涉及一种8位深度字模存储优化方法。
背景技术
在现在的嵌入式平台显示文字,一般会有两种方法:一是通过字模来显示,这样的方法速度快效率高,但除去一些特定的字体或优化后的字模库显示效果完美外,其他的字模显示效果不理想;且一般客户字体都有自己的需求,比如需要用到微软雅黑字体,如果用字模提取工具提取出的1位字体的边缘毛刺会非常明显,严重影响美观。二是通过TTF字体来实现,对TTF字体的支持需要运行TTF算法,对TTF字体进行解码,运算任务工作量大,对于高主频CPU则可以做,对于低端嵌入式平台则无法高效率运行。如果低端嵌入式平台要利用普通的8位深度字模,又会带来字体文件存储占用大量的存储空间,得不偿失。
目前,在大多数低端嵌入式平台上的文字显示,大多是基于1位灰度点阵,除特定优化后的字体(宋体16,24号)显示效果会比较好外,一般通过TTF提取出来的字体显示效果不太理想。
发明内容
本发明的主要目的是提出一种8位深度字模存储优化方法,旨在解决现有的低端嵌入式平台上的文字显示,大多是基于1位灰度点阵,通过TTF字库提取出来的字体,显示效果不太理想的技术问题。
为实现上述目的,本发明提出的8位深度字模存储优化方法,包括以下步骤:
字模提取,打开需要提取的字模的TFT字体;
设定字体大小,并基于白底黑字预览显示所有字模;
字宽计算,根据编码位置获得8位字体的位图数据;
保存所有非白色数据;
利用黑白色数据来生成1位深度字模位图,白色为0,非白色为1;
再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据;
根据压缩算法存储规则解码,解出8位灰度位图字体后,再将字体着色并与背景进行透明度运算。
可选地,所述的字模提取,是将TTF字体的字模按ASCII或GB2312或GBK规则提取出所有需要提取的字模,并且预览显示出来。
可选地,所述的字宽计算是对英文数字等非方块字字模进行间隔调节。
可选地,所述的再次将生成的1位位图数据仅保存非0数据,并且根据0和非0进行8个数据一个字节的形式生成二次位数据,对于32*32的字模则需要128位字节来记录字模中有效像素,对于无效像素则是用0来表示,有效像素则用1来表示,将128字节进行压缩。
可选地,所述再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据,存储时采用了编码和查找表方式记录下所有字体,提取后的汉字字模按照查找表的方法进行保存。
采用本发明的技术方案,具有以下有益效果:本发明的技术方案,通过仅保存有效数据和1位位图二次有效压缩的方法来达到优化现有1位字模算法的方法,即通过采用提取有效数据并两次压缩后整个字体约占4.5M左右的存储空间,相对原来的大小,仅约占50%左右空间。因为压缩的数据量大小动态变化,所以在存储时采用了编码+查找表方式记录下所有字体,优化除去空白字体,存储空间缩小。对于字模提取算法,字体越大,相对存储空间亦比例越大,通过本算法提取后的汉字字模按照查找表的方法保存。除可以剔除掉无效字模空间外,还可以用于特定汉字字模提取,即如果只需要特定汉字,则可以利用软件,把特定的汉字抽出来专门保存字模,在使用时,利用编码匹配则可以更加高效的利用字模。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图示出的结构获得其他的附图。
图1为本发明一实施例的一种8位深度字模存储优化方法的通过字模提取预览显示示意图;
图2为本发明一实施例的一种8位深度字模存储优化方法的步骤流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明,本发明实施例中所有方向性指示(诸如上、下、左、右、前、后……)仅用于解释在某一特定姿态(如附图所示)下各部件之间的相对位置关系、运动情况等,如果该特定姿态发生改变时,则该方向性指示也相应地随之改变。
另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
本发明提出一种8位深度字模存储优化方法。
如图1和图2所示,在本发明一实施例中,该8位深度字模存储优化方法,包括以下步骤:
S101:字模提取,打开需要提取的字模的TFT字体;
S102:设定字体大小,并基于白底黑字预览显示所有字模;
S103:字宽计算,根据编码位置获得8位字体的位图数据;
S104:保存所有非白色数据;
S105:利用黑白色数据来生成1位深度字模位图,白色为0,非白色为1;
S106:再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据;
S107:根据压缩算法存储规则解码,解出8位灰度位图字体后,再将字体着色并与背景进行透明度运算。
具体地,所述的字模提取,是将TTF字体的字模按ASCII或GB2312或GBK规则提取出所有需要提取的字模,并且预览显示出来。
具体地,所述的字宽计算是对英文数字等非方块字字模进行间隔调节。
具体地,所述的再次将生成的1位位图数据仅保存非0数据,并且根据0和非0进行8个数据一个字节的形式生成二次位数据,对于32*32的字模则需要128位字节来记录字模中有效像素,对于无效像素则是用0来表示,有效像素则用1来表示,将128字节进行压缩。
具体地,所述再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据,存储时采用了编码和查找表方式记录下所有字体,提取后的汉字字模按照查找表的方法进行保存。
具体地,本实施例的技术方案主要分为字模提取、字宽计算、优化存储算法以及应用解码四个部分组成。
1.字模提取
字模提取是用户用我司提供的字体工具软件,将TTF字体的字模按ASCII或GB2312或GBK规则提取出所有需要提取的字模。并且预览显示出来。让用户先直观的直到提取后的字模显示效果。
2.字宽计算
由于英文字模按照需求的大小提取出来后,会出现大量的空白,这个字模显示时不能用等宽字体规则来进行显示,这样会有大量的空白,不利于美观。对于非等宽字体需要用到字模间隔调节。主要用于英文数字等非方块字字模。
3.优化存储算法
通过字模提取预览显示后,就是字模的保存问题。由于我们用的是8位灰度字模,则每个像素需要一个字节来存储,如一个16*16像素的8位灰度字模则需要256个字节存储,以此推,32*32像素的则需要1024个字节来存储字。一个常规的GB2312大约是7000-8000个(其中有一些是空字符)。而GBK则有2万4000个左右,如果要按8位灰度全字模提取,则需要大量的存储空间。一般字模有一个特点,即字模中空白多,而有效的笔划数少,如果按照只存储有效像素,则大量空间可以丢弃。具体显示效果如图1所示。
如果光丢空白,保存留有效数据,是无法复原字模,于是我采用1位数据以位图形式记录有效与无效相素。由于是1位像素,对于32*32的字模则需要128位来记录字模中有效像素。对于无效像素则是用0,有效像素则用1来表示。但数据中0的数据依然比较多,所以,我们依然可以采用相同的方法,将128字节进行压缩,压缩后的字体占用空间已大大减少。
通过对比发现,压缩前的8位灰度字体,提取8836个字符,每个字符1K字节,则需要8.8M存储空间,而采用提取有效数据并两次压缩后整个字体约占4.5M左右的存储空间,相对原来的大小,仅约占50%左右空间。因为压缩的数据量大小动态变化,所以在存储时采用了编码+查找表方式记录下所有字体,因此下一步还可以优化除去空白字体,存储空间会进一步缩小。对于字模提取算法,字体越大,相对存储空间亦比例越大。通过本算法提取后的汉字字模按照查找表的方法保存。除可以剔除掉无效字模空间外,还可以用于特定汉字字模提取。即如果只需要特定汉字,则可以利用软件,把特定的汉字抽出来专门保存字模,在使用时,利用编码匹配则可以更加高效的利用字模。
以上是有效数据二次压缩。
4.应用解码
应用解码是压缩的反向运算。根据压缩算法存储规则解码即可。解出8位灰度位图字体后,再将字体着色并与背景进行透明度运算。即可达到和TTF字体一样的效果。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的发明构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。
Claims (5)
1.一种8位深度字模存储优化方法,其特征在于,包括以下步骤:
字模提取,打开需要提取的字模的TFT字体;
设定字体大小,并基于白底黑字预览显示所有字模;
字宽计算,根据编码位置获得8位字体的位图数据;
保存所有非白色数据;
利用黑白色数据来生成1位深度字模位图,白色为0,非白色为1;
再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据;
根据压缩算法存储规则解码,解出8位灰度位图字体后,再将字体着色并与背景进行透明度运算。
2.根据权利要求1所述的8位深度字模存储优化方法,其特征在于,所述的字模提取,是将TTF字体的字模按ASCII或GB2312或GBK规则提取出所有需要提取的字模,并且预览显示出来。
3.根据权利要求1所述的8位深度字模存储优化方法,其特征在于,所述的字宽计算是对英文数字等非方块字字模进行间隔调节。
4.根据权利要求1所述的8位深度字模存储优化方法,其特征在于,所述的再次将生成的1位位图数据仅保存非0数据,并且根据0和非0进行8个数据一个字节的形式生成二次位数据,对于32*32的字模则需要128位字节来记录字模中有效像素,对于无效像素则是用0来表示,有效像素则用1来表示,将128字节进行压缩。
5.根据权利要求1所述的8位深度字模存储优化方法,其特征在于,所述再次将生成的1位位图数据仅保存非0数据,并且根据0和非0数据进行8个数据一个字节的形式生成二次位数据,存储时采用了编码和查找表方式记录下所有字体,提取后的汉字字模按照查找表的方法进行保存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910592215.XA CN110164399B (zh) | 2019-07-01 | 2019-07-01 | 8位深度字模存储优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910592215.XA CN110164399B (zh) | 2019-07-01 | 2019-07-01 | 8位深度字模存储优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110164399A true CN110164399A (zh) | 2019-08-23 |
CN110164399B CN110164399B (zh) | 2020-11-24 |
Family
ID=67637752
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910592215.XA Active CN110164399B (zh) | 2019-07-01 | 2019-07-01 | 8位深度字模存储优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110164399B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115687669A (zh) * | 2022-10-12 | 2023-02-03 | 广州中望龙腾软件股份有限公司 | 文字缓存方法、终端以及存储介质 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1031140A (zh) * | 1987-04-10 | 1989-02-15 | 北京四通集团公司 | 一种能生成多种字体的汉字字模发生器 |
JP2528446B2 (ja) * | 1992-09-30 | 1996-08-28 | 株式会社ハドソン | 音声画像処理装置 |
CN1147659A (zh) * | 1995-04-28 | 1997-04-16 | 佳能株式会社 | 字符处理装置,字符处理方法及存贮器 |
JPH09138677A (ja) * | 1995-11-10 | 1997-05-27 | Brother Ind Ltd | キャラクタのデータ記憶装置及びキャラクタ出力装置 |
CA2181148C (en) * | 1994-01-13 | 2007-01-09 | Eric J. Elmquest | System and method for accessing and operating personal computers remotely |
CN101192212A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种在终端上实现带边框字体的系统与方法 |
CN101950283A (zh) * | 2010-08-31 | 2011-01-19 | 上海闻泰电子科技有限公司 | 一种基于无线终端系统的字库压缩及解压方法 |
CN102262784A (zh) * | 2011-08-02 | 2011-11-30 | 杭州士兰微电子股份有限公司 | 基于图像压缩的字库编码方法和解码方法 |
CN102281469A (zh) * | 2011-08-31 | 2011-12-14 | 深圳市茁壮网络股份有限公司 | 一种位图信息的处理方法及机顶盒 |
CN105323417A (zh) * | 2015-09-28 | 2016-02-10 | 天津光电通信技术有限公司 | 一种打印数据处理方法 |
CN107193509A (zh) * | 2017-04-27 | 2017-09-22 | 天津市捷威动力工业有限公司 | 一种实现任意Windows字体汉字打印的方法 |
CN107610203A (zh) * | 2017-09-19 | 2018-01-19 | 浙江工业大学 | 一种个性化点阵字模的生成方法 |
-
2019
- 2019-07-01 CN CN201910592215.XA patent/CN110164399B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1031140A (zh) * | 1987-04-10 | 1989-02-15 | 北京四通集团公司 | 一种能生成多种字体的汉字字模发生器 |
JP2528446B2 (ja) * | 1992-09-30 | 1996-08-28 | 株式会社ハドソン | 音声画像処理装置 |
CA2181148C (en) * | 1994-01-13 | 2007-01-09 | Eric J. Elmquest | System and method for accessing and operating personal computers remotely |
CN1147659A (zh) * | 1995-04-28 | 1997-04-16 | 佳能株式会社 | 字符处理装置,字符处理方法及存贮器 |
JPH09138677A (ja) * | 1995-11-10 | 1997-05-27 | Brother Ind Ltd | キャラクタのデータ記憶装置及びキャラクタ出力装置 |
CN101192212A (zh) * | 2006-11-20 | 2008-06-04 | 中兴通讯股份有限公司 | 一种在终端上实现带边框字体的系统与方法 |
CN101950283A (zh) * | 2010-08-31 | 2011-01-19 | 上海闻泰电子科技有限公司 | 一种基于无线终端系统的字库压缩及解压方法 |
CN102262784A (zh) * | 2011-08-02 | 2011-11-30 | 杭州士兰微电子股份有限公司 | 基于图像压缩的字库编码方法和解码方法 |
CN102281469A (zh) * | 2011-08-31 | 2011-12-14 | 深圳市茁壮网络股份有限公司 | 一种位图信息的处理方法及机顶盒 |
CN105323417A (zh) * | 2015-09-28 | 2016-02-10 | 天津光电通信技术有限公司 | 一种打印数据处理方法 |
CN107193509A (zh) * | 2017-04-27 | 2017-09-22 | 天津市捷威动力工业有限公司 | 一种实现任意Windows字体汉字打印的方法 |
CN107610203A (zh) * | 2017-09-19 | 2018-01-19 | 浙江工业大学 | 一种个性化点阵字模的生成方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115687669A (zh) * | 2022-10-12 | 2023-02-03 | 广州中望龙腾软件股份有限公司 | 文字缓存方法、终端以及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110164399B (zh) | 2020-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP7210733B2 (ja) | フォントレンダリング方法、装置及びコンピュータ可読記憶媒体 | |
CN101699426A (zh) | 文档格式转化系统及方法 | |
CN102662926B (zh) | 字库的存储与访问方法 | |
EP2033106B1 (en) | Remoting sub-pixel resolved characters | |
KR100539056B1 (ko) | 폰트의 손실 압축 및 저장 방법 | |
US20040246254A1 (en) | Method and system for the representation of color and other attributes in bitmap fonts | |
CN102970596A (zh) | 一种实现机顶盒多语言字体显示的方法、系统及机顶盒 | |
CN102479075A (zh) | 嵌入式设备中多语言显示方法及装置 | |
CN110164399A (zh) | 8位深度字模存储优化方法 | |
Globačnik et al. | An efficient raster font compression for embedded systems | |
CN102576296A (zh) | 基于矢量的放大指示器 | |
WO2005064588A1 (en) | Arrangement for the scaling of fonts | |
CN103489268B (zh) | 一种用于pos平台的阿拉伯语显示方法 | |
EP1093078B1 (en) | Reducing apprearance differences between coded and noncoded units of text | |
CN100371875C (zh) | 一种通用压缩汉字库芯片 | |
CN101957837B (zh) | 一种笔划矢量字库的存取方法 | |
CN103559271A (zh) | 一种带灰度等级的点阵字库生成方法 | |
CN101847050A (zh) | 一种嵌入式产品中简单中文的输入及显示方法 | |
JP2004004839A (ja) | 空間変位サンプリングをセマンティックデータと一緒に使用してスタティック画像を表示する方法とシステム | |
CN114049424A (zh) | 一种基于三维渲染引擎的文字高效绘制显示方法 | |
CN105047181A (zh) | 一种显示字符的方法及装置 | |
CN101266775B (zh) | 点阵字库的压缩存储方法及解压方法 | |
CN103491414A (zh) | 一种字符的处理方法、装置及机顶盒 | |
CN110032348A (zh) | 一种字符显示方法、装置、介质 | |
CN210895450U (zh) | 一种能够生成波斯语字库的pos机 |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |