一种PNG图像和BMP图像的缩略图提取方法。本申请公开了一种PNG图像的缩略图提取方法,包括:对于非交织的PNG图像,开辟2行像素所占用空间大小的缓冲,用于存储当前行及其上一行的解码前像素值;对所述PNG图像从第一行开始逐行进行解码处理,并对每行的解码后重建像素值进行下采样得到目标缩略图的对应行像素值;其中,在所述逐行进行解码处理时,对除第一行之外的当前行解码完成后,将所述上一行的解码前像素值移出所述缓冲,再将下一行的解码前像素值写入所述缓冲,并将下一行作为当前行进行解码。应用本申请,能够节省系统的内存开销。
【技术实现步骤摘要】
一种PNG图像和BMP图像的缩略图提取方法
本申请涉及图像处理技术,特别涉及一种BMP图像的缩略图提取方法。
技术介绍
个人计算机可以访问存储在自身硬盘、其他外接设备、网络上的多媒体文件(视频,音乐,图片等),并为用户提供了浏览这些文件概貌的缩略图预览功能。在数字电视、手机等基于嵌入式系统的显示设备上,也拥有同样的预览功能。其中,预览图片能够向用户提供直观的图片内容概貌,具有很高的实用价值。由于图像文件较小,存储介质可以存储大量的图像文件。这就要求显示设备可以快速的处理原图像以生成缩略图信息,并快速的显示缩略图。当前对于图像文件的缩略图获取,现有方法有硬件实现方式,也有软件实现方式。其中,采用硬件实现时,其速度虽快,但其扩展性、容错性和多种格式兼容性差。采用软件方式提取缩略图时,会根据不同的图像源格式采取不同的缩略图提取方式。具体地,对于PNG(便携式网络图形格式)格式的缩略图,现有的方法主要是对原图像直接进行解码,然后再对原图像进行缩放以获得缩略图信息。对于BMP(Bitmap位图)格式的缩略图,现有的方法主要是对原图像直接进行解码,然后再对原图像进行缩放以获得缩略图信息。对于上述软件方式进行的PNG格式的缩略图提取,多直接对原图像解码然后缩放。对于尺寸较大的图像,全图像解码会占用较多系统内存。例如对于1张1920x1080色彩空间为RGBA的PNG图像,其全图解码,存储解码图像就要消耗8M的系统内存,不利于多幅图像提取缩略图。对于上述软件方式进行的BMP格式的缩略图提取,多直接对原图像解码然后缩放。由于BMP格式的图像往往比较大(如24bit的BMP图像最为常见),解码会占用较多内存且耗费较长时间,难以满足实时显示要求。例如:一张分辨率为1920x1080的24bitBMP图像,全图像解码再缩放,就要消耗6M的系统内存,而且每个像素都读取并存储一遍非常耗时,不能满足实时显示的要求,也不利于对多幅图像提取缩略图。
技术实现思路
本申请提供了一种PNG图像的缩略图提取方法和一种BMP图像的缩略图提取方法,能够大大节约系统内存消耗,提高缩略图的提取速度。一种PNG图像的缩略图提取方法,包括:对于非交织的PNG图像,开辟2行像素所占用空间大小的缓冲,用于存储当前行及其上一行的解码前像素值;对所述PNG图像从第一行开始逐行进行解码处理,并对每行的解码后重建像素值进行下采样得到目标缩略图的对应行像素值;其中,在所述逐行进行解码处理时,对除第一行之外的当前行解码完成后,将所述上一行的解码前像素值移出所述缓冲,再将下一行的解码前像素值写入所述缓冲,并将下一行作为当前行进行解码。较佳地,该方法进一步包括:在对当前行的重建像素值进行下采样后,该方法进一步包括:根据图像显示设备的输入参数,确定解码后的重建像素值是否需要进行混色处理,如果需要,则对当前行下采样后的像素值进行混色处理后输入显示设备;否则,直接将当前行下采样后的像素值输入显示设备。较佳地,当显示设备要求输入的数据格式为R、G、B、A四通道像素值时,确定不需要进行混色处理。较佳地,当显示设备要求输入的数据格式为R、G、B三通道像素值时,确定需要进行混色处理;所述混色处理为:根据重建的每个像素点的R、G、B、A像素值计算其中,BG为背景颜色,黑色背景BG=0,白色背景BG=1,R′、G′、B′为混色后的像素值,用于进行所述下采样处理。较佳地,当显示设备要求输入的数据格式为Y、Cb、Cr三通道像素值时,确定需要进行混色处理;所述混色处理为:根据重建的每个像素点的R、G、B、A像素值计算并根据R′、G′、B′计算其中,BG为背景颜色,黑色背景BG=0,白色背景BG=1,Y、Cb、Cr为混色后的像素值,用于进行所述下采样处理。较佳地,所述计算为:计算较佳地,所述根据R′、G′、B′计算为:预先对应R′、G′、B′的所有取值,计算相应的Y、Cb、Cr,并将计算结果与相应的R′、G′、B′取值对应保存,在计算时,选择与当前R′、G′、B′取值对应保存的Y、Cb、Cr作为计算结果。较佳地,该方法进一步包括:对于交织的PNG图像,解码与目标缩略图尺寸最接近的一幅图像,并将解码后的像素值进行下采样,获取目标缩略图。一种BMP图像的缩略图提取方法,包括:对于非RLE压缩格式的BMP图像,对应目标缩略图的任一像素,计算对应的所述BMP图像数据的字节位置;在计算出的所述字节位置上读取颜色表索引并根据所述颜色表索引确定对应的像素值,或者直接读取所述字节位置上的RGB数据,写入目标缩略图中所述任一像素对应的位置上。较佳地,所述计算对应的所述BMP图像数据的字节位置包括:byte=Tstart+linesize×((i-1)×HBMP)/HTHU+((j-1)×WBMP)×pixelsize/(WTHU×8)其中,Tstart为所述BMP图像基本信息中的数据起始位置,linesize为所述BMP图像基本数据中的每行像素的字节数,pixelsize为所述BMP图像基本数据中每个像素的比特数。由上述技术方案可见,本申请中,对于非交织的PNG图像,开辟2行像素所占用空间大小的缓冲,用于存储当前行及其上一行的解码前像素值;对PNG图像从第一行开始逐行进行解码处理,并对每行的解码后重建像素值进行下采样得到目标缩略图的对应行像素值。在逐行进行解码处理时,对除第一行之外的当前行解码完成后,将上一行的解码前像素值移出缓冲,再将下一行的解码前像素值写入缓冲,并将下一行作为当前行进行解码。这样,在整个解码过程中,只需要存储2行图像的解码前像素值,大大节省了解码时的系统内存消耗。附图说明图1为本申请实施例中PNG图像的缩略图提取方法流程示意图;图2为本申请中BMP图像的缩略图提取方法示意图。具体实施方式为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。图1为本申请实施例中PNG图像的缩略图提取方法流程示意图。如图1所示,该方法包括:步骤101,判断当前图像是否是PNG格式的图像,如果是,则继续执行步骤102,如果不是则退出;步骤102,解析PNG图像的头信息,获取该图像的基本信息。其中,获取的基本信息包括:原图像的宽WORG和高HORG、位深、色彩类型和交织类型等。步骤103,确定的文件交织类型,若为交织的PNG图像,执行步骤104,若为非交织的PNG图像,执行步骤105-106。步骤104,对于交织PNG图像,解码PNG图像文件中与目标缩略图尺寸最接近的一幅图像,并对该图像进行下采样得到目标缩略图。本步骤的处理与现有方式相同。假定IBASE表示PNG图像文件中与目标缩略图尺寸最接近的一幅图像的像素值,下采样得到的目标缩略图宽高尺寸分别为WREL和HREL,则目标缩略图每个像素的像素值IREL(i,j)=IBASE(HIndex[i],WIndex[j]),其中,HIndex[]和WIndex[]分别为行索引数组和列索引数组,HIndex[]表明IREL的行索引到IBASE的行索引的映射关系,WIndex[]表明IREL的列索引到IBASE的列索引的映射关系,这些映射关系是在预先根据目标缩略图的尺寸和PNG图像尺寸计算得到的,具体可以按照现有方式实现,这里就不再赘述本文档来自技高网...
【技术保护点】
一种PNG图像的缩略图提取方法,其特征在于,包括:对于非交织的PNG图像,开辟2行像素所占用空间大小的缓冲,用于存储当前行及其上一行的解码前像素值;对所述PNG图像从第一行开始逐行进行解码处理,并对每行的解码后重建像素值进行下采样得到目标缩略图的对应行像素值;其中,在所述逐行进行解码处理时,对除第一行之外的当前行解码完成后,将所述上一行的解码前像素值移出所述缓冲,再将下一行的解码前像素值写入所述缓冲,并将下一行作为当前行进行解码。
【技术特征摘要】
1.一种PNG图像的缩略图提取方法,其特征在于,包括:对于非交织的PNG图像,开辟2行像素所占用空间大小的缓冲,用于存储当前行及其上一行的解码前像素值;对所述PNG图像从第一行开始逐行进行解码处理,并对每行的解码后重建像素值进行下采样得到目标缩略图的对应行像素值;其中,在所述逐行进行解码处理时,对除第一行之外的当前行解码完成后,将所述上一行的解码前像素值移出所述缓冲,再将下一行的解码前像素值写入所述缓冲,并将下一行作为当前行进行解码;其中,在对当前行的重建像素值进行下采样后,该方法进一步包括:根据图像显示设备的输入参数,确定解码后的重建像素值是否需要进行混色处理,如果需要,则对当前行下采样后的像素值进行混色处理后输入显示设备;否则,直接将当前行下采样后的像素值输入显示设备。2.根据权利要求1所述的方法,其特征在于,当显示设备要求输入的数据格式为R、G、B、A四通道像素值时,确定不需要进行混色处理。3.根据权利要求1所述的方法,其特征在于,当显示设备要求输入的数据格式为R、G、B三通道像素值时,确定需要进行混色处理;所述混色处理为:根据重建的每个像素点...
【专利技术属性】
技术研发人员:胡伟,常江龙,朱春波,
申请(专利权)人:三星电子中国研发中心,三星电子株式会社,
类型:发明
国别省市:江苏;32
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。