一种给JPG文件增加半透明属性的方法与流程

文档序号:14679358发布日期:2018-06-12 21:59阅读:984来源:国知局

本发明涉及图像处理领域,具体地涉及一种给JPG图片文件增加半透明属性的方法用于解码所述JPG文件的方法。

技术背景

计算机显示的图像是一个一个像素点构成的,在计算机中通过R(Red),G(Green),B(Blue)三个颜色通道来定义一个像素点的颜色。虽然RGB定义了一个点的颜色值,但没有定义这个颜色值在显示时如何与背景颜色融合(半透明)。为了解决这个问题,现在计算机的绘图API(应用程序接口)一般都支持使用一个Alpha通道(半透明通道)来定义在显示一个图像时前景与背景的混合度。当计算图像中包含有Alpha通道时,这些绘图API就能够利用这个通道的数据实现绘图的半透明。Alpha通道是指一张图片的透明和半透明度。例如:一个使用16位存储的图片,可能5位表示红色,5位表示绿色,5位表示蓝色,1位是阿尔法。在这种情况下,它可表示透明或不透明。一个使用32位存储的图片,每8位表示红绿蓝,和Alpha通道。在这种情况下,就不光可以表示透明还是不透明,Alpha通道还可以表示256级的半透明度。为了实现计算机图像的存储,人们设计了很多图像存储格式,其中常用的有PNG、JPG等。其中PNG格式支持保存RGB及Alpha 4个数据通道,而JPG格式只支持RGB 3个数据通道。

PNG格式由于提供了alpha通道(alpha通道是定义图片中一个像素点在绘制时和背景图片上对应像素进行混合运算的数值),被大量运用于计算机图像效果展示中。PNG采用zip算法进行数据压缩,zip是一种无损数据压缩算法,好处是能够保留完整的图像信息,缺点是压缩率相对较低。JPG图像格式是另一种广泛使用的图片格式,JPG采用一种有损压缩的算法,能够有效的提高数据压缩率,同时又基本保持原有图片的有效信息。但是现有的JPG图片格式只定义了红绿蓝(RGB)三个数据通道,尽管压缩率高但通常只是用于照片的存储,很少在软件开发中使用JPG做为UI素材。



技术实现要素:

本发明提出一种给JPG图片文件增加半透明属性的方法,解决使用JPG图像文件格式储存时由于缺少Alpha通道导致不能在显示时实现与背景融合显示(即半透明显示)的问题。

具体地,本发明提供的一种给JPG图片文件增加半透明属性的方法,包括:

将Alpha通道数据存储至JPG格式的不被占用的段中;

从JPG格式数据中识别存储Alpha通道数据的段;

将所述识别的段中的数据解码成Alpha通道数据;以及

将所述Alpha通道数据与JPG扫描行中解码并转换出来的RGB数据通道结合形成实现半透明需要的RGBA数据格式。

优选地,所述将Alpha通道数据存储至JPG格式的不被占用的段中的步骤中,Alpha通道数据存储的方式为直接存储。

优选地,所述将Alpha通道数据存储至JPG格式的不被占用的段中的步骤中,Alpha通道数据存储的方式为采用数据压缩方式存储。

优选地,所述将Alpha通道数据存储至JPG格式的不被占用的段中的步骤中,存储Alpha通道数据的JPG格式的段的数量大于等于1个。

优选地,所述将Alpha通道数据存储至JPG格式的不被占用的段中的步骤包括使用JPG格式的多路数据通道的数据段(APP0-APPn)中的任意一种数据段存储。

优选地,所述用于存储Alpha通道数据的数据段的前任意位字节表示该Alpha通道数据的长度。

优选地,所述从JPG格式数据中识别存储Alpha通道数据的段的步骤包括:通过改变JPG格式的版本号以使JPG解码器识别存储Alpha通道数据的段。

根据本发明提供的一种给JPG图片文件增加半透明属性的方法,可以有效的减少图片体积,对于那些大量使用PNG图片的应用软件,使用这种扩展的JPG文件可以有效的减少安装包的体积,减少软件安装包下载带来的网络流量成本。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1是本发明一个实施例提供的一种给JPG图片文件增加半透明属性的方法流程图。

具体实施方式

为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

JPG文件格式是一种采用多个数据段来描述图像的文件格式。具体文件格式说明可以参考ISO/IEC 10918-5:2013(http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=54989)或者wiki(https://en.wikipedia.org/wiki/JPEG)。段类型及标识码参考下表。

此处关注其中的APPn,EOI,COM这几个段。其中APP0段中定义了图片格式的版本信息,COM段可以写入注释,而EOI则代码图片结束。除这几个段外,其它段都有明确的含义(EOI当然也有明确的含义,但是由于它代码图片结束,在其后附加数据也不影响图片格式解析)。

由于JPG存储的图片可以是灰度图,也可以是3路数据通道的YCbCr/YIQ格式或者4路通道的CMYK格式(在SOF0段中定义),都不包含Alpha通道。如图1的步骤S101所示,为了实现半透明效果,只需要将Alpha通道数据存储到JPG格式的其它不被占用的段中。其中,存储Alpha通道数据的JPG格式的段的数量大于等于1个。或者可使用JPG格式的多路数据通道的数据段(APP0-APPn)中的任意一种数据段存储。图片文件中这些数据段的存在不影响一般应用程序的图片格式解析流程,因此一个被扩展的JPG图片仍然能够被现有软件识别,只是不能使用扩展过的Alpha通道。而在那些识别并解析Alpha数据的应用程序中就可以充分利用Alpha通道数据实现和PNG格式一样的Alpha混合效果。

在步骤S102中,从JPG格式数据中识别存储Alpha通道数据的段,优选的,可通过改变JPG格式的版本号以使JPG解码器识别存储Alpha通道数据的段。这里假定将Alpha通道数据存储到APP3数据段中,并且在APP0数据段的版本中数据更改为0102(1.02)(为了兼容现有图片解码器的解析),此时,JPG解码器即可识别出该JPG格式的APP3数据段中存储有Alpha通道数据。优选的,用于存储Alpha通道数据的一个或多个数据段的前任意位字节表示该Alpha通道数据的长度,例如APP3段中前2字节记录段长度,因此一个段最大可以存储65535个字节(含段长度2字节),如果一个段不足以容纳一个alpha通道的数量,可以重复使用这些数据段。在步骤103中,将所述识别的段中的数据解码成Alpha通道数据,最后,在步骤104中,将所述Alpha通道数据与JPG扫描行中解码并转换出来的RGB数据通道结合形成实现半透明需要的RGBA数据格式即可。Alpha通道中的数据可直接储存或者采用其它的数据压缩方案存储(如JPG,ZLIB等)。

虽然关于示例实施例及其优点已经详细说明,应当理解在不脱离本发明的精神和所附权利要求限定的保护范围的情况下,可以对这些实施例进行各种变化、替换和修改。对于其他例子,本领域的普通技术人员应当容易理解在保持本发明保护范围内的同时,测量方法的次序可以变化。

此外,本发明的应用范围不局限于说明书中描述的特定实施例的工艺、机构、制造、物质组成、手段、方法及步骤。从本发明的公开内容,作为本领域的普通技术人员将容易地理解,对于目前已存在或者以后即将开发出的工艺、机构、制造、物质组成、手段、方法或步骤,其中它们执行与本发明描述的对应实施例大体相同的功能或者获得大体相同的结果,依照本发明可以对它们进行应用。因此,本发明所附权利要求旨在将这些工艺、机构、制造、物质组成、手段、方法或步骤包含在其保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1