首页> 中国专利> 一种提高字体清晰度的方法及系统

一种提高字体清晰度的方法及系统

摘要

本发明公开一种提高字体清晰度的方法及系统,其中,所述方法包括步骤:对字体转换为的具有透明渐变的图片进行处理,将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间;将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,以提高字体边缘的锐度。

著录项

  • 公开/公告号CN103543974A

    专利类型发明专利

  • 公开/公告日2014-01-29

    原文格式PDF

  • 申请/专利权人 TCL集团股份有限公司;

    申请/专利号CN201310327339.8

  • 发明设计人 卢伟超;张颖;

    申请日2013-07-31

  • 分类号G06F3/14(20060101);

  • 代理机构44268 深圳市君胜知识产权代理事务所;

  • 代理人刘文求;杨宏

  • 地址 516001 广东省惠州市鹅岭南路6号TCL工业大厦8楼技术中心

  • 入库时间 2024-02-19 21:53:09

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-08-11

    未缴年费专利权终止 IPC(主分类):G06F 3/14 专利号:ZL2013103273398 申请日:20130731 授权公告日:20170308

    专利权的终止

  • 2017-03-08

    授权

    授权

  • 2014-10-29

    实质审查的生效 IPC(主分类):G06F3/14 申请日:20130731

    实质审查的生效

  • 2014-01-29

    公开

    公开

说明书

技术领域

本发明涉及字体清晰度改进领域,尤其涉及一种提高字体清晰度的方法及系统。

背景技术

字体的清晰程度除了与硬件软件有关系外,还与反差及颜色模型有关,在某些情况下,反差及颜色模型对字体清晰度的影响甚至比分辨率更高。

目前,常用的界面设计方式有两种:拟物化设计和扁平化设计,如苹果手机,安卓手机等大多还是使用拟物化设计,苹果以及安卓系统界面上的文字一般都采用固定颜色的底色,这样只要选取一种合适的字体以及颜色,配合此底色就能达到比较好的效果。而典型的扁平化设计如Win8界面,它具有各种不同颜色的色块,这样当底色各不相同时,对文字清晰度的要求就更加的高,同样的字体在不同色块背景下给人的清晰程度不同。显然,如果字体一成不变的话,将给用户带来较差的用户体验,甚至使用户难以看清界面上所显示的文字内容。

因此,现有技术还有待于改进和发展。

发明内容

鉴于上述现有技术的不足,本发明的目的在于提供一种提高字体清晰度的方法及系统,旨在解决现有的字体显示方法在不同色块背景下清晰度不够的问题。

本发明的技术方案如下:

一种提高字体清晰度的方法,其中,包括步骤:

A、对字体转换为的具有透明渐变的图片进行处理,将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间;

B、将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,以提高字体边缘的锐度。

所述的提高字体清晰度的方法,其中,所述步骤A中的归一化处理为:将每个像素的透明度值除以255得到归一化处理后的透明度值。

所述的提高字体清晰度的方法,其中,所述步骤B具体包括:

B1、将图片转换为纹理对象,将文字的颜色部分设置为不变;

B2、将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

B3、将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

所述的提高字体清晰度的方法,其中,所述步骤B在GPU的固定管线下或可编程管线下执行;

当在GPU的固定管线下执行时,所述N为2,所述C为1。

所述的提高字体清晰度的方法,其中,所述步骤B还包括步骤:

ST1、选取一种颜色为常量颜色,将文字的颜色部分与常量颜色进行插值处理,使文字颜色部分获得阴影效果;

ST2、将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

ST3、将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

所述的提高字体清晰度的方法,其中,所述步骤ST1具体包括步骤:

将文字完全不透明的部分沿用文字原有的颜色;

将文字完全透明的部分使用常量颜色绘制;

将文字部分透明的部分的颜色设置为:文字的颜色乘A+常量颜色乘(1-A)。

一种提高字体清晰度的方法,其中,包括:

归一化处理模块,用于对字体转换为的具有透明渐变的图片进行处理,将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间;

曲线处理模块,用于将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,以提高字体边缘的锐度。

所述的提高字体清晰度的方法,其中,所述曲线处理模块包括:

纹理转换单元,用于将图片转换为纹理对象,将文字的颜色部分设置为不变;

透明部分设置单元,用于将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

颜色部分设置单元,用于将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

所述的提高字体清晰度的方法,其中,所述曲线处理模块包括:

插值处理单元,用于选取一种颜色为常量颜色,将文字的颜色部分与常量颜色进行插值处理,使文字颜色部分获得阴影效果;

透明部分设置单元,用于将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

颜色部分设置单元,用于将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

所述的提高字体清晰度的方法,其中,所述插值处理单元包括:

沿用子单元,用于将文字完全不透明的部分沿用文字原有的颜色;

常量颜色绘制子单元,用于将文字完全透明的部分使用常量颜色绘制;

混合绘制子单元,用于将文字部分透明的部分的颜色设置为:文字的颜色乘A+常量颜色乘(1-A)。

有益效果:本发明通过先对图片中每一像素进行归一化处理,使各像素的透明度值在0~1之间,然后对各个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,从而提高字体边缘的锐度,文字显示更清晰,尤其是在嵌入式设备中,效果更加明显。

附图说明

图1为本发明一种提高字体清晰度的方法较佳实施例的流程图。

图2为图1所示方法中曲线处理步骤第一实施例的具体流程图。

图3为图1所示方法中曲线处理步骤第二实施例的具体流程图。

图4为图3所示方法中插值处理步骤的具体流程图。

图5为本发明一种提高字体清晰度的系统较佳实施例的结构框图。

图6为图5所示系统中曲线处理模块第一实施例的具体结构框图。

图7为图5所示系统中曲线处理模块第二实施例的具体结构框图。

图8为图7所示系统中插值处理单元的具体结构框图。

具体实施方式

本发明提供一种提高字体清晰度的方法及系统,为使本发明的目的、技术方案及效果更加清楚、明确,以下对本发明进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

请参阅图1,图1为本发明一种提高字体清晰度的方法较佳实施例的流程图,如图所示,其包括步骤:

S101、对字体转换为的具有透明渐变的图片进行处理,将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间;

S102、将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,以提高字体边缘的锐度。

在步骤S101中,首先将字体转换为具有透明渐变的图片,其具体步骤是:

1、初始化字体处理模块,该字体处理模块会装载处理矢量字体所需要的功能模块,以处理Truetype和Opentype等类型的字体,该字体处理模块还会装载字体库,例如*.TTF文件,字体库描述了特定的文字集合的文字图案和风格等信息,例如Times New RomanRegular、宋体等风格。

2、使用字体处理模块将字体转换为特定的图片,字体处理模块先从字体库中读取相应的字体的矢量字体曲线原图,并将该矢量字体曲线原图转换为带有透明渐变的图片,转换为需要的图片后,字体的边缘具有从完全透明到完全不透明的渐变,从而避免了字体边缘出现锯齿的情况,但上述过程会导致文字不够清晰的问题,尤其是在使用嵌入式设备显示该文字时,模糊程度更加明显。

本发明为了解决字体不够清晰的问题,在将字体转换为具有透明渐变的图片后,对图片进行锐化处理,使文字显示更清晰。

具体来说,在步骤S101中,先将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间。归一化处理的方式为:将每个像素的透明度值除以255得到归一化处理后的透明度值。归一化处理的目的是为了使透明度值能够从线性变化转换为曲线变化,具体如何转换在下文描述。

在步骤S102中,将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,从而提高字体边缘的锐度。

本步骤是将透明度值作为影响因子,使字体边缘的透明度值转换为曲线变化,例如二次曲线或三次曲线等等,从而提高字体边缘的锐度。

上述步骤若通过CPU进行处理,将会对系统性能造成一定影响,所以本发明采用GPU的方式进行计算。为了实现GPU方式进行计算,需使用支持GPU计算的图形处理库,例如Direct3D或者OpenGL等等,本发明以OpenGL为例对步骤S102进行具体说明,当然对于GPU其他的图像处理库,例如Direct3D、OpenGLES、OpenCL、CUDA等等都能实现本发明的目的。

由于OpenGL在发展过程中出现了两个版本:最初的固定管线以及扩展以后的可编程管线,本发明将针对两个版本进行分别说明。

在固定管线下,GPU会按照一个固定的步骤执行计算,通过调整步骤中的参数来控制实现不同的算法和效果。如图2所示,步骤S102包括以下步骤:

S201、将图片转换为纹理对象,将文字的颜色部分设置为不变;

S202、将文字的透明部分设置为:取当前透明度值A的二次方得到A*A;

S203、将文字和背景的颜色混合设置为:文字的颜色占的比重为A*A,背景的颜色占的比重为1-A*A。

在步骤S201中,为了让GPU能够访问到需要处理的图片,需将图片处理为纹理对象,并将纹理对象存储在显示内存中,方便GPU进行读取计算。在具体处理过程中,对文字的颜色部分设置为不变。

在步骤S202中,将文字的透明部分设置为当前透明度的值A的二次方得到A*A,也就是说文字的颜色部分不变,而透明部分从线性变化转换为二次曲线变化,从而使整体效果偏向锐化。

在步骤S203中,为了让渲染结果产生雕刻的效果,本发明还对文字与背景颜色的混合设置为:文字的颜色占的比重为A*A,背景的颜色占的比重为1-A*A。例如,当文字的某一个部分的透明度值A为1,即完全不透明,则文字颜色所占的比重为1,背景颜色所占的比重为0,即最终颜色完全是文字的颜色;而如果文字的某个部分的透明度值A为0,即完全透明,则文字颜色所占的比重为0,背景颜色所占的比重为1,即最终颜色完全是背景的颜色;如果文字的某个部分的透明度值A为0.5,则文字颜色所占的比重为A*A=0.25,而背景颜色所占的比重为0.75。上述混合方式的结果是文字边缘向背景颜色过渡的更加尖锐,使文字产生雕刻的效果 ,避免了文字边缘出现较大范围的模糊。

在可编程管线下,上述步骤的执行将更加简单,即只需在Fragment Shader单元(片元处理,指对于图片的每个像素的可编程处理单元)定义一个操作文字透明度值的Shader(渲染)文件,对每个像素的透明度值进行操作,操作透明的方式可以是像上述的二次方处理,由于可编程管线的处理方式更加灵活,其可以实现各种不同曲率的效果,如果二次方处理的效果依然存在边缘模糊过大、效果不好的情况时,可以增大曲率,即采用A的三次方或者是A的二次方乘以某个常量的方式来增大曲率,当然,在可编程管线下,还可以通过其他的方式来调整出最合适的曲率变化方式,例如取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,而N可以为2、3、4或者不为整数等等,C也可根据需要调整。由于在可编程管线下的处理步骤只是参数有所不同,所以不在此赘述。

为了使文字显示的效果更加突出,可以采用增加阴影效果的方式来进一步提升文字的清晰度,如图3所示,步骤S102还包括如下步骤:

S301、选取一种颜色为常量颜色,将文字的颜色部分与常量颜色进行插值处理,使文字颜色部分获得阴影效果;

S302、将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

S303、将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

在步骤S301中,首先选取一种颜色作为常量颜色,将文字的颜色部分与常量颜色进行插值处理,从而使文字的颜色部分获得阴影效果。如图4所示,插值处理的具体步骤如下:

S401、将文字完全不透明的部分沿用文字原有的颜色;

S402、将文字完全透明的部分使用常量颜色绘制;

S403、将文字部分透明的部分的颜色设置为:文字的颜色乘A+常量颜色乘(1-A)。

例如文字的某个部分的透明度值为0.5,那么文字的颜色部分为:文字的颜色乘0.5+常量颜色乘0.5,从而得到文字最终的颜色。而步骤S302和步骤S303的处理过程不变,但在步骤S303中由于文字最终颜色的变化,所以文字的背景的颜色的混合也会相应变化:文字最终颜色占的比重为0.25,背景的颜色占的比重为0.75,从上可知,当A越大即越不透明时,文字颜色所占的比重越大,当A越小即越透明时,阴影颜色所占比重越大,这样能够突出透明部分的阴影效果。

当然,也可在可编程管线下设置上述步骤,只是可以灵活的调整曲率以实现不同的效果。

基于上述方法,本发明还提供一种提高字体清晰度的系统,如图5所示,其包括:

归一化处理模块100,用于对字体转换为的具有透明渐变的图片进行处理,将图片中的每个像素的透明度值进行归一化处理,使图片中的每个像素的透明度值在0~1之间;

曲线处理模块200,用于将归一化处理后的每个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,以提高字体边缘的锐度。

进一步,如图6所示,所述曲线处理模块200包括:

纹理转换单元210,用于将图片转换为纹理对象,将文字的颜色部分设置为不变;

透明部分设置单元220,用于将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

颜色部分设置单元230,用于将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN

进一步,如图7所示,所述曲线处理模块200包括:

插值处理单元240,用于选取一种颜色为常量颜色,将文字的颜色部分与常量颜色进行插值处理,使文字颜色部分获得阴影效果;

透明部分设置单元220,用于将文字的透明部分设置为:取当前透明度值A的N次方得到AN或N次方后乘以常量C得到C*AN,从而使文字的透明度值从线性变化转换为曲线变化,其中,N大于1;

颜色部分设置单元230,用于将文字和背景的颜色混合设置为:文字的颜色占的比重为AN,背景的颜色占的比重为1-AN。上述两个透明部分设置单元可以设置成两个单独的单元,也可设置成一个单元,只需实现相同功能即可,两个颜色部分设置单元可以设置成两个单独的单元,也可设置成一个单元。

进一步,如图8所示,所述插值处理单元240包括:

沿用子单元241,用于将文字完全不透明的部分沿用文字原有的颜色;

常量颜色绘制子单元242,用于将文字完全透明的部分使用常量颜色绘制;

混合绘制子单元243,用于将文字部分透明的部分的颜色设置为:文字的颜色乘A+常量颜色乘(1-A)。关于上述功能模块的技术细节在前面的方法中已有详述,故不再赘述。

综上所述,本发明通过先对图片中每一像素进行归一化处理,使各像素的透明度值在0~1之间,然后对各个像素的透明度值进行曲线处理,使字体边缘的透明度值从线性变化转换为曲线变化,从而提高字体边缘的锐度,文字显示更清晰,尤其是在嵌入式设备中,效果更加明显。

应当理解的是,本发明的应用不限于上述的举例,对本领域普通技术人员来说,可以根据上述说明加以改进或变换,所有这些改进和变换都应属于本发明所附权利要求的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号