本发明专利技术公开了一种特定PNG图像的源码高压缩与快速绘图方法,包括以下步骤:S1:逐行从左到右,从上到下扫描图像的像素数据,以所见的首个非透明像素点起始坐标(X,Y),连续的非透明像素数量,连续的ARGB像素数据为1帧,然后继续扫描并存储图像帧,直至所有像素均被扫描,扫描后,对扫描的像素进行编码;S2:打开S1中所述的编码后的图像文件,顺序读取数据,首先得到要填充的图像像素的起始坐标(X,Y)。本发明专利技术针对那些大分辨率的PNG图像中仅有少量像素为非透明时,通过特定的编解码和预运算方法,可以实现更低存储空间和快速的解码绘图,只消耗很少的CPU资源,提高显示效率,满足使用需求。满足使用需求。
【技术实现步骤摘要】
一种特定PNG图像的源码高压缩与快速绘图方法
[0001]本专利技术涉及特定PNG图像
,尤其涉及一种特定PNG图像的源码高压缩与快速绘图方法。
技术介绍
[0002]常规的PNG绘图是将PNG所有像素数据存储,然后所有像素数据在绘图时都参与运算,当一个大分辨率的PNG图像中仅有少量像素为非透明时,整帧解码需要的时间仍然较慢,影响了显示效率,不能满足使用需求,综合上述情况加以改进,因此我们提出了一种特定PNG图像的源码高压缩与快速绘图方法。
技术实现思路
[0003]基于
技术介绍
存在的技术问题,本专利技术提出了一种特定PNG图像的源码高压缩与快速绘图方法。
[0004]本专利技术提出的一种特定PNG图像的源码高压缩与快速绘图方法,包括以下步骤:
[0005]S1:逐行从左到右,从上到下扫描图像的像素数据,以所见的首个非透明像素点起始坐标(X,Y),连续的非透明像素数量,连续的ARGB像素数据为1帧;然后继续扫描并存储图像帧,直至所有像素均被扫描,扫描后,对扫描的像素进行编码;
[0006]S2:打开S1中所述的编码后的图像文件,顺序读取数据,首先得到要填充的图像像素的起始坐标(X,Y);
[0007]S3:将S2中的图像写入画布的位置偏移至该坐标(X,Y),接下来读取得到要连续填充的图像像素数量;
[0008]S4:将文件中的每个像素数据与读取的原始画布中的同坐标像素数据进行ARGB运算,从而得到新的RGB像素数据,其中新像素数据以DR、DG、DB为标记,其中对于要绘制的图像的像素数据已进行预运算,不需要CPU重复运算;
[0009]S5:最后将S4中的RGB像素数据写回画布的同坐标位置,再进行输出到屏幕显示;
[0010]S6:采用L8M ARM处理器,主频120MHz与常规PNG解码绘图和本专利编解码绘图进行对比。
[0011]优选地,所述S4中,ARGB像素数据以PA、PR、PG、PB来标记。
[0012]优选地,所述S4中,RGB像素数据以SR、SG、SB为标记。
[0013]优选地,所述S4中,运算方法为:DR=SR*PA/255+PR,DG=SG*PA/255+PG;DB=SB*PA/255+PB。
[0014]优选地,所述S1中,数据帧格式定义为:X坐标2字节+Y坐标2字节+连续的非透明像素数量N 2字节+预处理的像素数据4字节*N。
[0015]优选地,所述S4中,S4中,常规像素数据按字节排序为B为蓝色1字节、G为绿色1字节、R为红色1字节、A为透明度1字节、0=完全透明、255=完全不透明,像素数据存储时,为4字节进行储存,存储的字节的计算公式为:B*A/255为蓝色1字节、G*A/255为绿色1字节、R*
A/255为红色1字节、255
‑
A为反转的透明度。
[0016]优选地,所述S1中,在扫描像素存储时,只存储每行的非透明像素的数据,所以存储的数据量较少,从而使文件大小变小。
[0017]与现有的技术相比,本专利技术的有益效果是:
[0018]本专利技术针对那些大分辨率的PNG图像中仅有少量像素为非透明时,通过特定的编解码和预运算方法,可以实现更低存储空间和快速的解码绘图,只消耗很少的CPU资源,提高显示效率,满足使用需求。
具体实施方式
[0019]下面结合具体实施例对本专利技术作进一步解说。
[0020]实施例
[0021]本实施例提出了一种特定PNG图像的源码高压缩与快速绘图方法,包括以下步骤:
[0022]S1:逐行从左到右,从上到下扫描图像的像素数据,以所见的首个非透明像素点起始坐标(X,Y),连续的非透明像素数量,连续的ARGB像素数据为1帧;然后继续扫描并存储图像帧,直至所有像素均被扫描,扫描后,对扫描的像素进行编码,其中数据帧格式定义为:X坐标2字节+Y坐标2字节+连续的非透明像素数量N 2字节+预处理的像素数据4字节*N,且在扫描像素存储时,只存储每行的非透明像素的数据,所以存储的数据量较少,从而使文件大小变小;
[0023]S2:打开S1中所述的编码后的图像文件,顺序读取数据,首先得到要填充的图像像素的起始坐标(X,Y);
[0024]S3:将S2中的图像写入画布的位置偏移至该坐标(X,Y),接下来读取得到要连续填充的图像像素数量;
[0025]S4:将文件中的每个像素数据与读取的原始画布中的同坐标像素数据进行ARGB运算,运算方法为:DR=SR*PA/255+PR,DG=SG*PA/255+PG;DB=SB*PA/255+PB,从而得到新的RGB像素数据,其中新像素数据以DR、DG、DB为标记,其中对于要绘制的图像的像素数据已进行预运算,不需要CPU重复运算,其中ARGB像素数据以PA、PR、PG、PB来标记,RGB像素数据以SR、SG、SB为标记,常规像素数据按字节排序为B为蓝色1字节、G为绿色1字节、R为红色1字节、A为透明度1字节、0=完全透明、255=完全不透明,像素数据存储时,为4字节进行储存,存储的字节的计算公式为:B*A/255为蓝色1字节、G*A/255为绿色1字节、R*A/255为红色1字节、255
‑
A为反转的透明度;
[0026]S5:最后将S4中的RGB像素数据写回画布的同坐标位置,再进行输出到屏幕显示;
[0027]S6:采用L8M ARM处理器,主频120MHz与常规PNG解码绘图和本专利编解码绘图进行对比。
[0028]以上所述,仅为本专利技术较佳的具体实施方式,但本专利技术的保护范围并不局限于此,任何熟悉本
的技术人员在本专利技术揭露的技术范围内,根据本专利技术的技术方案及其专利技术构思加以等同替换或改变,都应涵盖在本专利技术的保护范围之内。
本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种特定PNG图像的源码高压缩与快速绘图方法,其特征在于,包括以下步骤:S1:逐行从左到右,从上到下扫描图像的像素数据,以所见的首个非透明像素点起始坐标(X,Y),连续的非透明像素数量,连续的ARGB像素数据为1帧;然后继续扫描并存储图像帧,直至所有像素均被扫描,扫描后,对扫描的像素进行编码;S2:打开S1中所述的编码后的图像文件,顺序读取数据,首先得到要填充的图像像素的起始坐标(X,Y);S3:将S2中的图像写入画布的位置偏移至该坐标(X,Y),接下来读取得到要连续填充的图像像素数量;S4:将文件中的每个像素数据与读取的原始画布中的同坐标像素数据进行ARGB运算,从而得到新的RGB像素数据,其中新像素数据以DR、DG、DB为标记,其中对于要绘制的图像的像素数据已进行预运算,不需要CPU重复运算;S5:最后将S4中的RGB像素数据写回画布的同坐标位置,再进行输出到屏幕显示;S6:采用L8M ARM处理器,主频120MHz与常规PNG解码绘图和本专利编解码绘图进行对比。2.根据权利要求1所述的一种特定PNG图像的源码高压缩与快速绘图方法,其特征在于,所述S4中,ARGB像素数据以PA、PR、PG、PB来标记。3.根据权利要求1所述的一种特定PNG图像的源码高压缩与快速...
【专利技术属性】
技术研发人员:吕申,
申请(专利权)人:普力生厦门机电有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。