CN105808567B - 降低png图片大小的方法及装置 - Google Patents
降低png图片大小的方法及装置 Download PDFInfo
- Publication number
- CN105808567B CN105808567B CN201410844196.2A CN201410844196A CN105808567B CN 105808567 B CN105808567 B CN 105808567B CN 201410844196 A CN201410844196 A CN 201410844196A CN 105808567 B CN105808567 B CN 105808567B
- Authority
- CN
- China
- Prior art keywords
- png
- picture
- data block
- values
- replacing
- 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.)
- Active
Links
Images
Landscapes
- Compression Of Band Width Or Redundancy In Fax (AREA)
Abstract
本发明公开一种降低PNG图片大小的方法及装置。上述方法,包括以下步骤:读取待处理的PNG图片;根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值;遍历所述数据块以及每个数据块中预设字段的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片;以及比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出。本发明通过替换掉PNG图片中对于显示没有影响的字段,可以在不降低图像清晰度的前提下降低PNG格式图片的文件大小,从而加快网络加载速度,提升在移动互联网场景下的用户使用体验。
Description
技术领域
本发明涉及图像处理技术,尤其涉及一种降低PNG图片大小的方法及装置。
背景技术
移动互联网时代,网络的拥堵给人以十分糟糕的体验。如果能将网络上使用频度最高的PNG格式的图像在不影响图像清晰程度的前提下,降低其本身文件的大小,无疑会减少带宽的占用,同时提高响应速度,提高用户体验的满意程度。
发明内容
本发明是在不影响PNG格式的图像的清晰程度的前提下,就降低其本身的大小提供一种方法。
本发明实施例提供一种降低PNG图片大小的方法,包括以下步骤:
读取步骤:读取待处理的PNG图片;
解析步骤:根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值;
替换步骤:遍历所述数据块以及每个数据块中预设字段的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片;以及
输出步骤:比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出。
在一个实施例中,上述的替换步骤包括:清空文本信息tEXt数据块、压缩文本zTXt数据块和国际化文本iTXt数据块内存储的图片标题、作者、说明、原创时间等字段。
在一个实施例中,上述的替换步骤包括:清空时间戳tTIME数据块内记录的图像的最后一次修改时间字段。
在一个实施例中,上述的替换步骤包括:将文件署名域的Filter字段、Interlace字段、以及Compression字段替换为标准值。
在一个实施例中,上述的替换步骤包括:将文件头数据块中的ColorType域替换为合理值并删除无用信息。
本发明实施例还提供一种降低PNG图片大小的装置,包括以下步骤:
读取模块:用于读取待处理的PNG图片;
解析模块:用于根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值;
替换模块:用于遍历所述数据块以及每个数据块中预设字段的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片;以及
输出模块:用于比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出。
在一个实施例中,上述的替换模块用于:清空文本信息tEXt数据块、压缩文本zTXt数据块和国际化文本iTXt数据块内存储的图片标题、作者、说明、原创时间等字段。
在一个实施例中,上述的替换模块用于:清空时间戳tTIME数据块内记录的图像的最后一次修改时间字段。
在一个实施例中,上述的替换模块用于:将文件署名域的Filter字段、Interlace字段、以及Compression字段替换为标准值。
在一个实施例中,上述的替换模块用于:将文件头数据块中的ColorType域替换为合理值并删除无用信息。
本发明的有益效果是:通过替换掉PNG图片中对于显示没有影响的字段,可以在不降低图像清晰度的前提下降低PNG格式图片的文件大小,从而加快网络加载速度,提升在移动互联网场景下的用户使用体验。
附图说明
图1是本发明实施例的一种降低PNG图片大小的方法的步骤流程示意图。
图2是本发明实施例的一种降低PNG图片大小的装置的功能模块图。
附图中各部件的标记如下:210、读取模块;220、解析模块;230、替换模块;240、输出模块;S110,S120,S130,S140、步骤
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
请参阅图1,本发明实施例提供的一种降低PNG图片大小的方法,其包括以下步骤:
步骤S110、读取步骤:
读取待处理的PNG图片。所述待处理的PNG图片即可以是预先存储在存储器内的图片,也可以是从网络上下载的图片,还可以是直接采用摄像头实时拍摄的图片。
步骤S120、解析步骤:
根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值。
PNG图像格式由PNG文件署名域、四个关键数据块即文件头数据块IHDR、调色板数据块PLTE、图像数据块IDAT和图像结束数据块IEND,以及14个辅助数据块即tRNS,cHRM,gAMA,iCCP,sBIT,sRGB,iTXt,tEXt,zTXt,bkGD,hIST,pHYs,sPLT,tIME,组成。其中,每个PNG文件都必须包含关键数据块,提倡支持可选数据块。而每个数据块中根据标准又包括不同的预设参数。根据PNG协议可以对PNG图片进行解析从而获取所有数据块以及数据块中预设参数的值。
步骤S130、替换步骤:
遍历所述数据块以及每个数据块中预设字段的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片。
在PNG格式标准中,文件署名域的Filter字段有5种取值,分别对应None,Sub,Up,Average和Paeth5种不同的过滤算法。Interlace字段有2种取值,分别对应方法0和方法1两种扫描方法。Compression字段只有一种取值,对应LZ77派生算法。因此,这些字段可仅为这些值,当PNG图片中这些字段(参数)的值不为标准值时,可以替换为标准值或者直接清空。
在PNG格式标准中,文件头数据块中的ColorType域有5种取值,分别对应灰度、真彩、索引、α通道灰度和α通道真彩五种PNG图像类型。由于某种原因,PNG图像的ColorType取值可能并不合理。比如,由色彩数量较少的JPEG直接转换得到的的图像,附带了许多无用的渐变色信息,或者由小GIF直接转换得到的图像,附带了许多无用的调色板透明数据信息。因此,这些字段可仅为这些值,当PNG图片中这些字段(参数)的值不为标准值时,可以替换为标准值或者直接清空,而且无用的信息(如上述的无用的渐变色信息)也可以一并删除。
根据PNG图像的的不同类型,分别对应附带Alpha通道、附带单值透明数据块、附带透明数据块表等不同的Alpha通道表现形态,也即辅助数据块tRNS可能有也可能没有。
文本信息tEXt、压缩文本zTXt和国际化文本iTXt数据块,记录了图像标题、作者、说明、原创时间等等注释信息,与图像显示无关,可以根据情况清空。
时间戳tTIME数据块记录了图像的最后一次修改时间,与图像显示无关,可以根据情况清空。
在替换的过程中遵守PNG格式标准中对参数之间依赖关系的规定,比如对灰度图像,透明数据块tRNS只有2Bytes的灰度值,对真彩图像,透明数据块rRNS分别包含2Bytes的R/G/B值。
步骤S140、输出步骤:
比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出以在不降低图像清晰度的前提下降低PNG图片大小。
经过替换后的PNG图片的大小可能大于原PNG图片,也可能小于原PNG图片,取最小的记录即可。
在本实施例中,上述的方法是应用在IOS平台中,然而本发明并不限于在IOS系统中应用,任意可以处理PNG格式的平台均可应用。
根据上述实施的方法,通过替换掉PNG图片中对于显示没有影响的字段,可以在不降低图像清晰度的前提下降低PNG格式图片的文件大小,从而加快网络加载速度,提升在移动互联网场景下的用户使用体验。
参阅图2,其为本发明实施例提供的一种降低PNG图片的大小的装置的模块图。本实施例的装置包括:读取模块210、解析模块220、替换模块230、以及输出模块240。
读取模块210用于读取待处理的PNG图片。所述待处理的PNG图片即可以是预先存储在存储器内的图片,也可以是从网络上下载的图片,还可以是直接采用摄像头实时拍摄的图片。
解析模块220用于根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值。
PNG图像格式由PNG文件署名域、四个关键数据块即文件头数据块IHDR、调色板数据块PLTE、图像数据块IDAT和图像结束数据块IEND,以及14个辅助数据块即tRNS,cHRM,gAMA,iCCP,sBIT,sRGB,iTXt,tEXt,zTXt,bkGD,hIST,pHYs,sPLT,tIME,组成。其中,每个PNG文件都必须包含关键数据块,提倡支持可选数据块。而每个数据块中根据标准又包括不同的预设参数。根据PNG协议可以对PNG图片进行解析从而获取所有数据块以及数据块中预设参数的值。
替换模块230用于遍历所述数据块以及每个数据块中预设字段的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片。
在PNG格式标准中,文件署名域的Filter字段有5种取值,分别对应None,Sub,Up,Average和Paeth5种不同的过滤算法。Interlace字段有2种取值,分别对应方法0和方法1两种扫描方法。Compression字段只有一种取值,对应LZ77派生算法。因此,这些字段可仅为这些值,当PNG图片中这些字段(参数)的值不为标准值时,可以替换为标准值或者直接清空。
在PNG格式标准中,文件头数据块中的ColorType域有5种取值,分别对应灰度、真彩、索引、α通道灰度和α通道真彩五种PNG图像类型。由于某种原因,PNG图像的ColorType取值可能并不合理。比如,由色彩数量较少的JPEG直接转换得到的的图像,附带了许多无用的渐变色信息,或者由小GIF直接转换得到的图像,附带了许多无用的调色板透明数据信息。因此,这些字段可仅为这些值,当PNG图片中这些字段(参数)的值不为标准值时,可以替换为标准值或者直接清空,而且无用的信息(如上述的无用的渐变色信息)也可以一并删除。
根据PNG图像的的不同类型,分别对应附带Alpha通道、附带单值透明数据块、附带透明数据块表等不同的Alpha通道表现形态,也即辅助数据块tRNS可能有也可能没有。
文本信息tEXt、压缩文本zTXt和国际化文本iTXt数据块,记录了图像标题、作者、说明、原创时间等等注释信息,与图像显示无关,可以根据情况清空。
时间戳tTIME数据块记录了图像的最后一次修改时间,与图像显示无关,可以根据情况清空。
在替换的过程中遵守PNG格式标准中对参数之间依赖关系的规定,比如对灰度图像,透明数据块tRNS只有2Bytes的灰度值,对真彩图像,透明数据块rRNS分别包含2Bytes的R/G/B值。
输出模块240用于比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出。
经过替换后的PNG图片的大小可能大于原PNG图片,也可能小于原PNG图片,取最小的记录即可。
此外,值得注意的是,图像大小只在移动应用中是敏感因素。所述方法在IOS平台可用。在Android平台上,APK打包工具会将处理后的图像自动解压恢复原始大小,除非针对APK打包工具做额外的处理。也就是说,在针对现有的APK打包工具进行了额外的处理后,本发明实施例的方法也可应用于Android平台。根据上述实施的装置,通过替换掉PNG图片中对于显示没有影响的字段,可以降低PNG格式图片的文件大小,从而加快网络加载速度,提升在移动互联网场景下的用户使用体验。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (8)
1.一种降低PNG图片大小的方法,其特征在于,包括以下步骤:
读取步骤:读取待处理的PNG图片;
解析步骤:根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值;
替换步骤:遍历所述数据块以及每个数据块中预设参数的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片,在PNG格式标准中,将文件署名域的Filter字段、Interlace字段、以及Compression字段替换为标准值或者直接清空;以及
输出步骤:比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出以在不降低图像清晰度的前提下降低PNG图片大小。
2.如权利要求1所述的方法,其特征在于,所述替换步骤包括:清空文本信息tEXt数据块、压缩文本zTXt数据块和国际化文本iTXt数据块内存储的图片标题、作者、说明、原创时间字段。
3.如权利要求1所述的方法,其特征在于,所述替换步骤包括:清空时间戳tTIME数据块内记录的图像的最后一次修改时间字段。
4.如权利要求1所述的方法,其特征在于,所述替换步骤包括:将文件头数据块中的ColorType域替换为合理值并删除无用信息。
5.一种降低PNG图片大小的装置,其特征在于,包括以下步骤:
读取模块:读取待处理的PNG图片;
解析模块:根据PNG格式标准解析读取的PNG图片以获取所有PNG格式所对应的数据块以及每个数据块中的预设参数的值;
替换模块:遍历所述数据块以及每个数据块中预设参数的值,根据PNG规范中参数之间依赖关系替换所述预设参数的值以获取替换后的PNG图片,在PNG格式标准中,将文件署名域的Filter字段、Interlace字段、以及Compression字段替换为标准值或者直接清空;以及
输出模块:比较所述替换后的PNG图片以及所述待处理的PNG图片的大小并取尺寸较小的PNG图片作为结果图片输出以在不降低图像清晰度的前提下降低PNG图片大小。
6.如权利要求5所述的装置,其特征在于,所述替换模块用于:清空文本信息tEXt数据块、压缩文本zTXt数据块和国际化文本iTXt数据块内存储的图片标题、作者、说明、原创时间字段。
7.如权利要求5所述的装置,其特征在于,所述替换模块用于:清空时间戳tTIME数据块内记录的图像的最后一次修改时间字段。
8.如权利要求5所述的装置,其特征在于,所述替换模块用于:将文件头数据块中的ColorType域替换为合理值并删除无用信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844196.2A CN105808567B (zh) | 2014-12-30 | 2014-12-30 | 降低png图片大小的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410844196.2A CN105808567B (zh) | 2014-12-30 | 2014-12-30 | 降低png图片大小的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105808567A CN105808567A (zh) | 2016-07-27 |
CN105808567B true CN105808567B (zh) | 2021-02-05 |
Family
ID=56419997
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410844196.2A Active CN105808567B (zh) | 2014-12-30 | 2014-12-30 | 降低png图片大小的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105808567B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108933945B (zh) * | 2018-08-17 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种gif图片的压缩方法、装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0688133A2 (en) * | 1994-06-15 | 1995-12-20 | Eastman Kodak Company | Method for controllably deinterlacing sequential lines of video data fields based upon pixel signals associated with three successive interlaced video fiels |
CN102855602A (zh) * | 2011-06-28 | 2013-01-02 | 阿里巴巴集团控股有限公司 | 一种图片处理方法和装置 |
CN103002282A (zh) * | 2012-11-13 | 2013-03-27 | 北京大学 | 一种颜色数目自适应决策方法和图像压缩方法 |
CN103678543A (zh) * | 2013-12-04 | 2014-03-26 | 康佳集团股份有限公司 | 一种png图片逐行解压的系统及方法 |
CN104142924A (zh) * | 2013-05-06 | 2014-11-12 | 中国移动通信集团福建有限公司 | 一种动画图片格式的压缩方法和装置 |
-
2014
- 2014-12-30 CN CN201410844196.2A patent/CN105808567B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0688133A2 (en) * | 1994-06-15 | 1995-12-20 | Eastman Kodak Company | Method for controllably deinterlacing sequential lines of video data fields based upon pixel signals associated with three successive interlaced video fiels |
CN102855602A (zh) * | 2011-06-28 | 2013-01-02 | 阿里巴巴集团控股有限公司 | 一种图片处理方法和装置 |
CN103002282A (zh) * | 2012-11-13 | 2013-03-27 | 北京大学 | 一种颜色数目自适应决策方法和图像压缩方法 |
CN104142924A (zh) * | 2013-05-06 | 2014-11-12 | 中国移动通信集团福建有限公司 | 一种动画图片格式的压缩方法和装置 |
CN103678543A (zh) * | 2013-12-04 | 2014-03-26 | 康佳集团股份有限公司 | 一种png图片逐行解压的系统及方法 |
Non-Patent Citations (1)
Title |
---|
基于移动设备的PNG图片优化实现;徐逸卿;《电脑知识与技术》;20081208;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN105808567A (zh) | 2016-07-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9324164B2 (en) | Image encoding apparatus, image decoding apparatus, image processing apparatus, and control method thereof dealing with high dynamic range image | |
US20160140415A1 (en) | Methods and systems for differentiating synthetic and non-synthetic images | |
CN103366341B (zh) | 一种图像自适应分辨率显示的方法及装置 | |
US20150156557A1 (en) | Display apparatus, method of displaying image thereof, and computer-readable recording medium | |
CN103826028A (zh) | 一种无损压缩图片的方法和装置 | |
CN110505497B (zh) | 一种云手机运行监测方法、系统、装置和存储介质 | |
US20120002877A1 (en) | Non-transitory computer readable storage medium, marker creating apparatus, restoration apparatus, and marker creating method | |
KR100765761B1 (ko) | 화상 형성 시스템 및 화상 형성 방법 | |
CN111918065A (zh) | 一种信息压缩/解压缩方法及装置 | |
CN106503169A (zh) | 图片处理方法和装置 | |
CN105808567B (zh) | 降低png图片大小的方法及装置 | |
JP2004362541A (ja) | 画像処理装置、プログラム及び記憶媒体 | |
CN103986979B (zh) | 一种版权保护方法及系统 | |
US8812584B2 (en) | Moving picture file transmitting server and method of controlling operation of same | |
US8483288B2 (en) | Methods, apparatus and system for film grain cache splitting for film grain simulation | |
KR101685932B1 (ko) | 고기능 이미지 파일 및 이의 편집장치 | |
CN113099270B (zh) | 文件存储方法及解码方法、装置、存储介质、电子装置 | |
CN105704215A (zh) | 文件共享系统及相应的文件发送、接收方法及装置 | |
CN104219537A (zh) | 视频数据处理的方法、装置及系统 | |
KR102067691B1 (ko) | 이미지 파일의 처리 시스템 및 방법 | |
CN108933945B (zh) | 一种gif图片的压缩方法、装置及存储介质 | |
Calibo et al. | Metadata Extraction Analysis: A Review of Video Data in Effect to Social Media Compression | |
US8369637B2 (en) | Image processing apparatus, image processing method, and program | |
US20230401811A1 (en) | Information generation apparatus, information generation method, and storage medium | |
CN109982017A (zh) | 用于智能记录视频数据流的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | 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 |