《PNG格式介绍》
png是什么格式
png是什么格式PNG 是什么格式在我们日常的数字生活中,图像格式多种多样,其中 PNG 格式是比较常见且重要的一种。
那 PNG 到底是什么格式呢?PNG,全称为 Portable Network Graphics,翻译过来就是“便携式网络图形”。
它是一种无损压缩的位图图形格式。
从图像质量的角度来看,PNG 格式最大的特点就是能够提供高质量的图像显示。
与一些有损压缩格式(比如 JPEG 格式)不同,PNG 格式在压缩图像时不会损失图像的细节和质量。
这意味着,当您多次保存和打开一个 PNG 图像时,它始终能保持最初的清晰度和准确性,不会像有损压缩格式那样出现图像模糊或失真的情况。
在色彩表现方面,PNG 格式支持的颜色非常丰富。
它不仅能够处理常规的 RGB 颜色模式,还能很好地支持索引颜色、灰度以及带 Alpha 通道的真彩色。
Alpha 通道是 PNG 格式的一个重要特性,它使得图像可以具有透明效果。
比如说,您想要把一个带有复杂边缘的物体放到另一个背景上,PNG 格式的透明特性就能派上大用场,让物体与新背景完美融合,毫无违和感。
PNG 格式还具有良好的跨平台性。
无论是在 Windows、Mac 还是Linux 系统上,PNG 图像都能被正确地显示和处理,不会出现兼容性问题。
而且,在网页设计中,PNG 格式也被广泛应用。
因为它能够在不同的浏览器和设备上保持一致的显示效果,为网页的视觉呈现提供了稳定的保障。
与其他常见的图像格式相比,PNG 格式也有其独特之处。
与 BMP 格式相比,PNG 格式经过压缩,文件大小更小,更便于存储和传输。
而与 GIF 格式相比,PNG 格式在色彩表现和透明效果的处理上更加出色。
然而,PNG 格式也并非十全十美。
由于其无损压缩的特性,PNG 图像的文件大小通常比有损压缩格式(如 JPEG)要大。
对于一些对文件大小要求非常严格的场景,比如网页加载速度要求极高的情况下,可能需要谨慎使用。
png 和jpg正则表达式
png 和jpg正则表达式PNG和JPG是两种常见的图片文件格式,它们在图像的存储和传输中起着重要的作用。
本文将分别介绍PNG和JPG的特点、应用领域以及相应的正则表达式。
一、PNG图片格式PNG(Portable Network Graphics)是一种无损压缩的位图图形文件格式。
它的特点是支持高质量的图像压缩,同时可以保留图像的细节和透明度。
PNG格式广泛应用于电子出版、网页设计、图像处理等领域。
1. 特点:- 无损压缩:PNG格式使用无损压缩算法,可以保留图像的细节和质量。
- 支持透明度:PNG格式支持透明背景,可以实现图像的透明效果。
- 支持多种色彩模式:PNG格式支持灰度、索引色、RGB和真彩色等多种色彩模式。
- 支持多层图像:PNG格式可以保存多层图像,方便图像编辑和处理。
2. 应用领域:- 网页设计:PNG格式透明背景的特点使其在网页设计中得到广泛应用,可以实现各种特殊效果。
- 图像处理:PNG格式无损压缩的特点使其在图像处理和存储中得到广泛应用,可以保留图像的细节和质量。
- 电子出版:由于PNG格式支持透明度和多层图像,因此在电子出版中也得到广泛应用,可以实现复杂的图像效果。
3. PNG的正则表达式:- PNG格式的文件扩展名为“.png”。
- 对于文件名的正则表达式可以使用“\w+\.png”的形式,其中“\w+”表示任意长度的字母、数字或下划线。
二、JPG图片格式JPG(Joint Photographic Experts Group)是一种有损压缩的图像文件格式,也被称为JPEG。
JPG格式在图像的存储和传输中具有较高的压缩率和广泛的应用。
它常用于摄影、图像存储和网页设计等领域。
1. 特点:- 高压缩率:JPG格式采用有损压缩算法,可以实现较高的图像压缩率,减小图像文件的大小。
- 色彩丰富:JPG格式支持真彩色,可以呈现丰富的色彩细节。
- 适用于摄影:JPG格式在摄影领域得到广泛应用,可以存储和传输高质量的照片。
《PNG格式介绍》课件
约1600万色
不支持
《PNG格式介绍》
透明支持
支持布尔透明 支持8位(256阶) alpha透明
Байду номын сангаас
什么时候应该使用PNG
• 下图是淘宝网最常见的一个图片即“立刻购买”按钮,这里我尝 试用JPG和PNG8格式分别进行保存,可以看到保存的结果有两 个值得注意的地方:
• 1、JPG保存的文件大小是PNG保存的文件大小的2倍 • 2、JPG不仅文件更大并且还出现了噪点(如图中红色方框标注
《PNG格式介绍》
PNG的特性 • 1、能在保证最不失真的情况下尽可能压缩图像文
件的大小。 • 2、PNG用来存储灰度图像时,灰度图像的深度可
多到16位,存储彩色图像时,彩色图像的深度可 多到48位,并且还可存储多到16位的α通道数据。 • 3、对于需要高保真的较复杂的图像,PNG虽然能 无损压缩,但图片文件较大,不适合应用在Web 页面上。
•不仅如此,PNG8还支持1位的布尔透明通道,所谓布尔透明指
的是要么完全透明要么完全不透明。而PNG24则支持8位(256
阶)的alpha通道透明,也就是说可以存储从完全透明到完全不
透明一共256个层级的透明度(即所谓的半透明)。
格式
PNG8 PNG24
最高支持色彩通 索引色编辑支持 道
256色
支持
《PNG格式介绍》
有损压缩与无损压缩
• 有损压缩-你看到的不一定是真实的 • 按照我的理解有损压缩就是在存储图像的时候并不完全真实的
记录图像上每个像素点的数据信息,它会根据人眼观察现实世 界的特性(人眼对光线的敏感度比对颜色的敏感度要高,生物 实验证明当颜色缺失时人脑会利用与附近最接近的颜色来自动 填补缺失的颜色)对图像数据进行处理,去掉那些图像上会被 人眼忽略的细节,然后使用附近的颜色通过渐变或其他形式进 行填充。这样既能大大降低图像信息的数据量,又不会影响图 像的还原效果。
PNG文件格式详解
PNG文件格式详解
PNG文件结构分析(上:了解PNG文件存储格式)
前言
我们都知道,在进行J2ME的手机应用程序开发的时候,在图片的使用上,我们可以使用PNG格式的图片(甚至于在有的手机上,我们只可以使用PNG格式的图片),尽管使用图片可以为我们的应用程序增加不少亮点,然而,只支持PNG格式的图片却又限制了我们进一步发挥的可能性(其实,应该说是由于手机平台上的处理能力有限)。
在MIDP2中,或者某些厂商(如NOKIA)提供的API中,提供了drawPixels/getPixels的方法,这些方法进一步提高了开发者处理图片的灵活性,然而,在MIDP2还未完全普及的今天,我们需要在MIDP1 .0中实现这类方法还属于异想天开,因此,为了实现更高级的应用,我们必须充分挖掘PNG的潜力。
PNG的文件结构
对于一个PNG文件来说,其文件头总是由位固定的字节来描述的:十进制数
137 80 78 71 13 10 26 10
十六进制数
89 50 4E 47 0D 0A 1A 0A。
图片格式介绍
图片格式介绍在当今信息爆炸的时代,图片已经成为人们表达思想、记录记忆的重要方式之一。
而选择合适的图片格式,不仅可以保证图片的质量,还能够方便我们的使用和分享。
本文将介绍几种常见的图片格式,并对其特点和应用场景进行详细说明。
一、JPEG(Joint Photographic Experts Group)JPEG是一种广泛应用于数字图像压缩和传输的格式,常见的文件后缀为.jpg或.jpeg。
JPEG采用有损压缩算法,能够在一定程度上减小文件大小,但会引起画质的损失。
JPEG格式适用于照片、图像和复杂的艺术图案,因为可以保留大量的颜色和细节信息。
这种格式的图片适合用于网页、电子邮件附件和社交媒体上传。
二、PNG(Portable Network Graphics)PNG是一种无损图像压缩格式,常见的文件后缀为.png。
相比于JPEG,PNG格式不会导致画质损失,可以保留更多的细节。
此外,PNG支持透明度通道,可以创建带有透明背景的图片。
由于PNG格式的图片文件相对较大,因此适用于一些对画质要求较高或需要保留透明背景的图像,例如公司LOGO、产品包装等。
三、GIF(Graphics Interchange Format)GIF是一种常用的无损压缩格式,常见的文件后缀为.gif。
GIF格式支持动画图像,可以将多个图像帧合成动画,并可以实现简单的透明效果。
此外,GIF格式还支持简单的色彩表,最多可使用256种颜色。
这种格式的文件大小通常较小,适合用于表情包、简单动画以及网页中的图标和按钮。
四、BMP(Bitmap)BMP是一种未经压缩的位图图像格式,常见的文件后缀为.bmp。
BMP格式的图片文件保存了每个像素的颜色信息,可以实现最高质量的图像显示。
然而,这也导致了BMP格式的图片文件相对较大,不适合网络传输和存储。
BMP格式适用于打印、编辑和处理高质量图像。
五、TIFF(Tagged Image File Format)TIFF是一种适用于存储和传输大型高质量图像的格式,常见的文件后缀为.tiff或.tif。
Png图片格式使用技巧!
Png图片格式使用技巧!图/文白树Png是图像文件存储格式,Png有多少种格式,有哪些特点,PC 端中常用的Png格式是哪些,手机端最合适的Png格式是什么呢?如果你对这些问题有疑问,那么很开心的告诉你,这里有你需要的答案。
PNG的格式和透明度png有3种不同深度的,格式:png8、png24、png32。
其中,在优化面板选择png8,可发现png8包括不透明、索引色透明、alpha透明3种格式。
PNG88位的png最多支持256(2的8次方)种颜色,8位的png其实8支持不透明、索引透明、alpha透明。
PNG24支持2的24次方种颜色,表现为不透明。
PNG32支持2的32次方种颜色,32位是我们最常使用的格式,它是在png在24位的png基础上增加了8位的透明信息,支持不同程度的半透效果。
其实PNG8的3种格式不透明、索引透明、alpha透明,正好把png的所有格式都归类好了:•『png 不透明』格式•『png 索引透明』格式•『png alpha透明』格式•『PNG 不透明』格式说到不透明,就像jpg格式一样,『png 不透明』只能为不透明,代表格式有:『png8 不透明』和『png24』,导出软件有:Photoshop、Fireworks。
不推荐使用『png 不透明』格式,建议用jpg图片来代替它。
可能会有同学会问为什么png24是不透明的,我使用photoshop 导出来的就是png24啊?Png24实际为不透明图片打开photoshop,任意打开一个带透明的psd文件,存储为web 所有格式(ctrl+shift+alt+s),如下面板所示:不勾选透明度单选框,图片的透明背景会被默认的白色填充导出来的png图片深度为24位,图片为不透明,表现跟jpg图片相似如果勾选了透明度(alpha通道),导出深度为32位的透明图片从photoshop存储为web所有格式面板中这样理解,png24深度其实为24位,再勾选上8位的alhpa通道,24+8=32,即『png32』= 『png24+alpha』,这也许是photoshop软件开发者不添加png32位格式的原因,下图为Photoshop存储为web所有格式界面的图片格式选择,并没有png32位的选项~『PNG 索引透明』格式说到索引颜色透明,我们可以了解下什么是索引颜色,『png 索引透明』代表格式有『png8 索引透明』导出软件有:Photoshop、Fireworks,它的特点总结如下:•挑选一副图片中最有代表性的若干种颜色(通常不超过256种)、只能为不透明或全透明、文件体积小、带有杂边锯齿、支持IE6如何使用Photoshop导出『png8 索引透明』使用Photoshop,存储为web所有格式,按照如下图片的红色边框配置,可导出png8索引透明。
png的格式及像素存储分析
png的格式及像素存储分析从图⽚的数据块存储⽅式来看png分两种1.索引⾊模式存储。
png8的索引⾊透明就采取该种⽅式。
该种⽅式是将颜⾊存在png的可选模块调⾊板中,调⾊板的⾊彩存储格式为RGB(各1byte)。
⽽图⽚的数据块⾥的像素直接存储调⾊板⾥的索引值,根据索引寻找对应的颜⾊及透明⾊。
透明⾊的指定由PLTE后的tRNS图像透明数据块指定。
布尔透明和alpha透明的区别是alpha透明为透明⾊附加了8位(1byte)的透明级别。
tRNS图像透明数据块的长度与调⾊板对应如下。
PLTE块格式为:循环RED: 1byteGREEN:1byteBLUE: 1byteENDtRNS块布尔透明格式为:循环if(对应调⾊盘颜⾊⾮透明)0xFF: 1byteelse0x00: 1byteENDtRNS块alpha透明格式为:循环if(对应调⾊盘颜⾊⾮透明)0xFF: 1byteelse0x**: 1byte (具体的透明级别共256级)ENDtRNS块的循环长度为调⾊盘的颜⾊数,相当于调⾊板颜⾊表的⼀个对应表,标识该颜⾊是否透明,0xFF(255)不透明,0x00(0)全透明。
2.真彩⾊存储(⾮专业术语)。
该类存储不存在调⾊板(或者有调⾊板供⾮真彩⾊显⽰程序⽤它来量化图像数据,从⽽显⽰该图像。
),在数据块的像素⾥直接存储颜⾊信息。
这⾥就有常说的RGB_888(24bit)、RGB565(16bit)、RGBA_8888(32bit)、RGBA_4444(16bit)、RGBA5551(16bit)等等。
png24及png32都是该类存储。
从图⽚的⾊彩位数来看常⽤以下⼏种1.png8。
这个8理解为位深,但这个位深可减少。
存储⽅式可为索引⾊存储。
索引⾊位深可为1,2,4,8。
随着位深的减少可⽀持的颜⾊也减少。
可⽀持8位⾊彩共256(2的8次⽅)种颜⾊。
1.png16。
这个8理解为位深,存储⽅式可为RGB565(16bit)、RGBA_8888(32bit)、RGBA_4444(16bit)、RGBA5551(16bit)。
什么是PNG
什么是PNGPNG格式是什么便携式网络图形(PNG图片)是一种无损压缩的位图片形格式,其设计目的是试图替代GIF和TIFF文件格式,同时增加一些GIF文件格式所不具备的特性。
目前,PNG已经成为一种流行的图像存储格式。
PNG格式的特点体积小:网络通讯受带宽制约,在保证图片清晰、逼真的前提下,网页中不可能大范围使用较大的文件格式。
无损压缩:PNG文件采用LZ77算法的派生算法进行压缩,其结果是获得高的压缩比,不损失数据。
优点是对图像的颜色没有影响,不会造成颜色损失,可以重复保存而不降低图像质量。
索引彩色模式:采用8位调色板将RGB彩色图像转换为索引彩色图像。
图像中保存的不再是各个像素的彩色信息,而是从图像中挑选出来的具有代表性的颜色编号,每一编号对应一种颜色,图像的数据量也因此减少,这对彩色图像的传播非常有利。
更优化的网络传输显示:PNG图像在浏览器上采用流式浏览,即使经过交错处理的图像会在完全下载之前提供浏览者一个基本的图像内容,然后再逐渐清晰起来。
它允许连续读出和写入图像数据,这个特性很适合于在通信过程中显示和生成图像。
支持透明效果:PNG可以为原图像定义256个透明层次,使得彩色图像的边缘能与任何背景平滑地融合,从而彻底地消除锯齿边缘。
PNG图片的丢失与恢复既然PNG格式的图片如此流行,您有必要知道PNG图片丢失的原因以及必要的恢复方法。
首先,我们来看看PNG图片丢失的常见原因:删除、格式化等操作。
意外丢失,如蓝屏、热插拔、病毒、被工具误清理等。
保存PNG图片的设备出现了故障。
在这种情况下,用什么方法能恢复PNG图片呢?其实,简单的逻辑删除(误删除、格式化、分区丢失等),您可以选择专业的数据恢复工具来进行扫描恢复。
在这里,我们向您推荐迷你兔数据恢复软件。
迷你兔数据恢复软件是一款专业、安全且绿色无插件的工具,能帮助您恢复意外丢失的PNG图片,并且支持电脑、U盘、移动硬盘、内存卡等多种设备,不会对数据造成任何损坏,您可以放心使用。
PNG格式种类及应用实例使用详解
PS教程:PNG格式种类及应用实例使用详解PNG格式种类【PConline 教程】PNG是图像文件存储格式,在网页设计中已经不是一个陌生的名词,在前端开发中经常使用到它,如常用CSS 雪碧图。
而PNG的使用不仅仅如此,PNG有多少种格式,有哪些特点,PC端中常用的PNG格式是哪些,手机端最合适的PNG格式是什么呢?如果你对这些问题有疑问,那么很开心的告诉你,这里有你需要的答案。
PNG的格式和透明度这个Fireworks会比较清楚,打开Fireworkd优化面板,可以清楚看到PNG有3种不同深度的格式:PNG8、PNG24、PNG32。
图01其中,在优化面板选择PNG8,可发现PNG8包括不透明、索引色透明、alpha透明3种格式。
图02PNG88位的PNG最多支持256(2的8次方)种颜色,8位的PNG其实8支持不透明、索引透明、al pha透明。
PNG24支持2的24次方种颜色,表现为不透明。
PNG32支持2的32次方种颜色,32位是我们最常使用的格式,它是在PNG在24位的PNG基础上增加了8位的透明信息,支持不同程度的半透效果。
其实PNG8的3种格式不透明、索引透明、alpha透明,正好把PNG的所有格式都归类好了:『PNG 不透明』格式『PNG 索引透明』格式『PNG alpha透明』格式『PNG 不透明』格式说到不透明,就像jpg格式一样,『PNG 不透明』只能为不透明,代表格式有:『PNG8 不透明』和『PNG24』,导出软件有:Photoshop、Fireworks。
不推荐使用『PNG 不透明』格式,建议用j pg图片来代替它。
可能会有同学会问为什么PNG24是不透明的,我使用Photoshop导出来的就是PNG24啊?PNG24实际为不透明图片打开Photoshop,任意打开一个带透明的psd文件,存储为web所有格式(ctrl+shift+alt+s),如下面板所示:图03不勾选透明度单选框,图片的透明背景会被默认的白色填充图04导出来的PNG图片深度为24位,图片为不透明,表现跟jpg图片相似图05如果勾选了透明度(alpha通道),导出深度为32位的透明图片图06PNG索引透明『PNG8 索引透明』产生杂边锯齿原因从Photoshop存储为web所有格式面板中这样理解,PNG24深度其实为24位,再勾选上8位的alhpa通道,24+8=32,即『PNG32』= 『PNG24+alpha』,这也许是Photoshop软件开发者不添加PNG32位格式的原因,下图为Photoshop存储为web所有格式界面的图片格式选择,并没有PNG32位的选项~图07『PNG 索引透明』格式说到索引颜色透明,我们可以了解下什么是索引颜色,『PNG 索引透明』代表格式有『PNG8 索引透明』,导出软件有:Photoshop、Fireworks,它的特点总结如下:挑选一副图片中最有代表性的若干种颜色(通常不超过256种)只能为不透明或全透明文件体积小带有杂边锯齿支持IE6如何使用Photoshop导出『PNG8 索引透明』图08使用Photoshop,存储为web所有格式,按照如下图片的红色边框配置,可导出PNG8索引透明注:使用Photoshop导出『PNG8 索引透明』的效果比Fireworks导出的效果良好,这里不介绍使用Fireworks导出『PNG8 索引透明』『PNG8 索引透明』只有透明索引颜色,没有半透明索引颜色,下图左侧为带半透明像素的图片,在浏览器中打开不会有锯齿,而右侧图片为全透明或不透明的像素,在浏览器打开后有锯齿。
图像PNG格式、GIF格简介,图像GIF格式工作原理
图像PNG格式、GIF格简介,图像GIF格式工作原理PNG格式1、图像png格式简介PNG是20世纪90年代中期开始开发的图像文件存储格式,其目的是企图替代GIF和TIFF 文件格式,同时增加一些GIF文件格式所不具备的特性。
流式网络图形格式(PortableNetwork Graphic Format,PNG)名称来源于非官方的“PNG’s NotGIF”,是一种位图文件(bitmapfile)存储格式,读成“ping”。
PNG用来存储灰度图像时,灰度图像的深度可多到16位,存储彩色图像时,彩色图像的深度可多到48位,并且还可存储多到16位的α通道数据。
PNG使用从LZ77派生的无损数据压缩算法。
2、图像png文件结构PNG图像格式文件(或者称为数据流)由一个8字节的PNG文件署名(PNG filesignature)域和按照特定结构组织的3个以上的数据块(chunk)组成。
PNG定义了两种类型的数据块,一种是称为关键数据块(criticalchunk),这是标准的数据块,另一种叫做辅助数据块(ancillarychunks),这是可选的数据块。
关键数据块定义了4个标准数据块,每个PNG文件都必须包含它们,PNG读写软件也都必须要支持这些数据块。
虽然PNG文件规范没有要求PNG编译码器对可选数据块进行编码和译码,但规范提倡支持可选数据块。
3、图像png文件特性PNG文件格式保留GIF文件格式的下列特性:使用彩色查找表或者叫做调色板可支持256种颜色的彩色图像。
流式读/写性能(streamability):图像文件格式允许连续读出和写入图像数据,这个特性很适合于在通信过程中生成和显示图像。
逐次逼近显示(progressivedisplay):这种特性可使在通信链路上传输图像文件的同时就在终端上显示图像,把整个轮廓显示出来之后逐步显示图像的细节,也就是先用低分辨率显示图像,然后逐步提高它的分辨率。
解析PNG图像文件
PNG图像文件介绍PNG图像文件格式PNG是可携式网络图像(portable network graphics)的英文缩写。
PNG是从网络上开始发展的,目的是替代GIF和JPG格式,PNG图像文件格式也是当今游戏中常用的图像资源文件格式了。
PNG图像文件支持的图像颜色非常丰富,存储灰度图时可使用16位色深表示,存储真彩色图像时色深更可达到48位之多。
PNG图像文件介绍与BMP格式相比,PNG格式稍微复杂些。
PNG图像支持从0~255级次的多层透明色,使用无损压缩的zlib压缩算法压缩图像数据。
通常使用zlib压缩过的图像文件大小比BMP使用的RLE压缩的效果好,BMP的RLE压缩算法只支持压缩8位以下的图像,对于16位以上的真彩色图像不支持图像压缩,PNG使用的zlib压缩算法支持任何色深的图像数据压缩,压缩后的图像数据可以完整还原,相比之下JPG需要牺牲图像质量使用有损压缩来获得大的压缩率。
最后有一点需要注意,PNG图像格式使用Big-Endian顺序存储数据。
PNG图像文件存储结构(1)PNG文件存储结构的格式可以在/TR/REC-png.htm上找到定义。
BMP文件总体上由两部分组成,分别是PNG文件标志和数据块(chunks),如表5-8所示。
其中数据块分为两类:关键数据块(critical chunk)和辅助数据块(ancillary chunks)。
表5-8 PNG文件的组成结构PNG文件标志数据块(chunks)1.PNG文件标志PNG文件标志由8字节数据组成:89 50 4E 47 0D 0A 1A 0Ah,其中50 4E 47对应的ASCII值是"PNG"。
2.数据块(chunks)紧跟在PNG文件标志后面的数据是数据块(chunks),数据块(chunks)分为两类:关键数据块(critical chunks)和辅助数据块(ancillary chunks)。
png文件格式分析
png⽂件格式分析png⽂件格式分析写在前⾯在写这个东西写到⼀半的时候,突然发现CTFWiki已经有这篇相对正规的⽂章了。
对PNG⽂件格式的分析⽹上相对⽐较多,所以分析的⽐较菜,表哥们轻喷。
PNG⽂件结构PNG⽂件格式PNG⽂件格式很简单,对于⼀个PNG⽂件来说,主要是开头固定的字节(⼜叫做⽂件头,⽂件署名域,标识符等等)和三组以上的PNG数据块按照特定的顺序组成,其中,最基本的PNG⾄少包含以下部分:⽂件头 IHDR IDAT IEND其中,⽂件头的hex为:89 50 4E 47 0D 0A 1A 0A这⼀部分主要是考察对各类媒体类型(mime type)的识别⽐较多。
重要的是,正确判断⼀个图⽚的⽂件格式⼗分重要,如 GIF ⾥⾯有帧信息,⽽JPG ⾥⾯却没有,PNG 图⽚有通道信息,⽽ JPG 也没有。
单凭后缀进⾏错判会导致处理的时候⽂件报错。
(补充:)同时由于⽂件种类多⽽复杂,通过背诵⽂件头实现对应图⽚⽂件格式便显得⼗分困难。
根据⽹上资料可知,python库中存在imghdr模块可以直接识别⽂件,同⽬录下命令⾏⾥敲⼊指令:python -m imghdr file1即可识别,结果会返回⽂件格式。
PNG数据块(Chunk)PNG定义了两种类型的数据块:关键数据块(critical chunk),是标准的数据块;辅助数据块(ancillary chunks),是可选的数据块。
关键数据块定义了四个标准数据块。
分别是IHDR、PLTE、IDAT、IEND,后⾯我们会分别提⼀下这四块。
其中PLTE仅与索引彩⾊图像有关,在⿊⽩PNG图⽚是作为可选数据块存在的,但是本⾝是标准数据块之⼀。
对于每⼀个数据块,其数据结构⼜是统⼀的,每个数据块由Length(4bytes,指定数据块数据域的长度),Chunk Type Code(4bytes,数据块类型码,由ASCII字母组成), Chunk Data(数据块数据,储存按照CTC指定的数据),CRC(4byte,循环冗余检测,检测是否有错误的循环冗余码)组成。
png格式
png格式PNG格式是一种高质量的图像文件格式,它被广泛用于数字图像的存储和传输。
PNG(Portable Network Graphics)格式的出现填补了JPEG和GIF格式的不足,被认为是一种功能更强大的图像文件格式。
下面将详细介绍PNG格式的特点、优势以及在实际应用中的使用场景。
首先,PNG格式具有无损压缩的特点。
相比于JPEG格式,PNG格式不会损失图像质量,因此适用于保存对图像质量要求较高的图片,比如设计作品、艺术品和图片编辑等领域。
由于无损压缩,PNG格式的图像文件体积通常较大,但它可以保留图像的所有细节和色彩信息,使得输出的图像效果更加清晰和精细。
其次,PNG格式支持透明背景。
相比于JPEG格式,PNG格式可以将图像的透明部分保存下来,使得图像在应用于网页设计、图标设计和移动应用开发等场景时能够更好地融合到背景中,使得整体效果更加美观和协调。
这一特性使得PNG格式成为了进行图像合成和图层处理的理想选择。
此外,PNG格式还支持多种颜色模式。
除了常见的RGB颜色模式,PNG格式还支持索引颜色模式和灰度颜色模式。
索引颜色模式可以将图像的颜色数量限制在256种以内,适用于一些有限色彩的场景,如图标和动漫绘画。
而灰度颜色模式则对图像的色彩信息进行了简化,使得黑白图像的保存更加高效。
在实际应用中,PNG格式有着广泛的使用场景。
首先,PNG格式常用于网页设计中的图像元素的保存。
由于PNG格式支持透明背景和良好的图片质量,设计师们经常选择PNG格式来保存矢量图形和图标,以便在网页中实现更好的呈现效果。
其次,PNG格式也适用于移动应用开发中的图片资源保存。
在众多的移动设备上,PNG格式的透明背景和高质量的效果也展现出了强大的优势。
此外,对于那些要求图像精细度高的领域,比如印刷和出版等,PNG格式也是不可或缺的选择。
然而,PNG格式也有一些限制和不足之处。
由于它是无损压缩的,所以PNG格式的图像文件体积通常较大,这在一些资源受限的场景下可能会造成一定的不便。
png的特点
png的特点
简单的来说最明显的区别就是PNG格式可以保存为透明背景的图⽚,JPEG就不可以,jpeg是⼀种有损压缩的图⽚格式。
png是可以转换成JPEG的,但是透明像素会变成⽩⾊的,⽽且图像信息会丢失⼀部分。
下⾯是2种格式的介绍
JPEG是Joint Photographic Experts Group(联合图像专家组)的缩写,⽂件后辍名为".jpg"或".jpeg",是最常⽤的图像⽂件格式,由⼀个软件开发联合会组织制定,是⼀种有损压缩格式,能够将图像压缩在很⼩的储存空间,图像中重复或不重要的资料会被丢失,因此容易造成图像数据的损伤。
PNG是20世纪90年代中期开始开发的图像⽂件存储格式,其⽬的是试图(原来此处使⽤了"企图")替代GIF和TIFF⽂件格式,同时增加⼀些GIF ⽂件格式所不具备的特性。
流式⽹络图形格式(Portable Network Graphic Format,PNG)名称来源于⾮官⽅的“PNG's Not GIF”,是⼀种位图⽂件(bitmap file)存储格式,读成“ping”。
PNG⽤来存储灰度图像时,灰度图像的深度可多到16位,存储彩⾊图像时,彩⾊图像的深度可多到48位,并且还可存储多到16位的α通道数据。
PNG使⽤从LZ77派⽣的⽆损数据压缩算法。
png格式详解
Portable Network GraphicsFrom Wikipedia, the free encyclopediaPortable Network GraphicsPNGA PNG image with an 8-bit transparency channel (top). Thesame image is overlaid onto a checkered background(bottom), typically used in graphics software to indicatetransparency.Filenameextension .pngInternet mediatype image/pngType code PNGfPNGpublic.pngUniform TypeIdentifierDeveloped by PNG Development Group (donated to W3C)Initial release October 1, 1996Type of format lossless bitmap imageformat and video codecExtended to APNG, JNG and MNGStandard(s)ISO/IEC15948[1], IETF RFC 2083Open format? YesPortable Network Graphics (PNG, pronounced /ˈpɪŋ/[2]ping) is a bitmapped imageformat and video codec that employs lossless data compression. PNG was created to improve upon and replace GIF (Graphics Interchange Format) as an image-file format not requiringa patent license. The PNG acronym is optionally recursive, unofficially standing for PNG's Not GIF.[2]PNG supports palette-based images (with palettes of 24-bit RGB or32-bit RGBA colors),grayscale images (with or without alpha channel), and RGB[A] images (with or without alpha channel). PNG was designed for transferring images on the Internet, not for print graphics, and therefore does not support non-RGB color spaces such as CMYK.[dubious–discuss] PNG files nearly always use file extension "PNG" or "png" and are assigned MIME media type "image/png"; it was approved for this use by the Internet Engineering Steering Group on October 14, 1996.[3] PNG was published as an ISO/IEC standard in 2004.[1]Contents[hide]∙ 1 History and development∙ 2 PNG Working Group∙ 3 Technical detailso 3.1 File headero 3.2 "Chunks" within the file▪ 3.2.1 Critical chunks▪ 3.2.2 Ancillary chunkso 3.3 Color deptho 3.4 Transparency of imageo 3.5 Compression▪ 3.5.1 Filteringo 3.6 Interlacingo 3.7 Animation∙ 4 Comparison to other file formatso 4.1 Comparison to Graphics Interchange Format (GIF) o 4.2 Comparison to JPEGo 4.3 Comparison to JPEG-LSo 4.4 Comparison to TIFF∙ 5 Software supporto 5.1 Bitmap graphics editor support for PNGo 5.2 Web browser support for PNGo 5.3 Operating system support for PNG icons∙ 6 File size and optimization softwareo 6.1 Compared to GIFo 6.2 File size factorso 6.3 Image editing softwareo 6.4 Optimizing tools▪ 6.4.1 Ancillary chunk removal▪ 6.4.2 Filter optimization▪ 6.4.3 DEFLATE optimization▪ 6.4.4 Wrapper toolso 6.5 Icon optimization∙7 See also∙8 References∙9 Further reading∙10 External linkso10.1 o10.2 W3Co10.3 Others[edit]History and developmentSee also: Graphics Interchange Format#Unisys and LZW patent enforcementThe motivation for creating the PNG format was in early 1995, after it became known thatthe Lempel–Ziv–Welch (LZW) data compression algorithm used in the Graphics InterchangeFormat (GIF) format was patented by Unisys. There were also other problems with the GIF format which made a replacement desirable, notably its limit of 256 colors at a time when computers able to display far more than 256 colors were growing common. Although GIF allows for animation, it was decided that PNG should be a single-image format. A companion format called Multiple-image Network Graphics (MNG) has been defined for animation.A January 1995 precursory discussion thread, on the usenet newsgroup "comp.graphics" with thesubject Thoughts on a GIF-replacement file format, had many propositions, which would later be part of the PNG file format. In this thread, Oliver Fromme, author of thepopular DOSJPEG viewer QPEG, proposed the PING name, meaning PING is not GIF, and also the PNG extension.[4]▪October 1, 1996: Version 1.0 of the PNG specification was released,and later appeared as RFC 2083. It becamea W3C Recommendation on October 1, 1996.▪December 31, 1998: Version 1.1, with some small changes and theaddition of three new chunks, was released.▪August 11, 1999: Version 1.2, adding one extra chunk, was released.▪November 10, 2003: PNG became an International Standard(ISO/IEC 15948:2003). This version of PNG differs only slightlyfrom version 1.2 and adds no new chunks.▪March 3, 2004: ISO/IEC 15948:2004.[1][edit]PNG Working GroupThe original PNG specification was authored by an ad-hoc group of computer graphics experts and enthusiasts. Discussions and decisions about the format were done exclusively via email. The original authors listed on RFC 2083 are:[5]Editor: Thomas Boutell . Contributing Editor: Tom Lane Authors' names in alphabetical order: Mark Adler , Thomas Boutell , Christian Brunschen , Adam M. Costello , Lee Daniel Crocker , Andreas Dilger , Oliver Fromme , Jean-loup Gailly , ChrisHerborth , Alex Jakulin , Neal Kettler , Tom Lane , Alexander Lehmann , Chris Lilley , DaveMartindale , Owen Mortensen , Keith S. Pickens , Robert P. Poole , Glenn Randers-Pehrson , Greg Roelofs , Willem van Schaik , Guy Schalnat , Paul Schmidt , Tim Wegner , Jeremy Wohl[edit ]Technical details[edit ]File headerA PNG file starts with an 8-byte signature . The hexadecimal byte values are 89 50 4E 47 0D 0A 1A 0A ; the decimal values are 137 80 78 71 13 10 26 10. Each of the header bytes is there for a specific reason:[6] Bytes Purpose89 Has the high bit set to detect transmission systems that do not support 8 bit data and to reduce the chance that a text file is mistakenly interpreted as aPNG, or vice versa.50 4E 47 In ASCII , the letters PNG , allowing a person to identify the format easily if it is viewed in a text editor.0D 0A A DOS -style line ending (CRLF) to detect DOS-Unix line ending conversion of thedata.1A A byte that stops display of the file under DOS when the command type has beenused —the end-of-file character0A A Unix-style line ending (LF) to detect Unix-DOS line ending conversion.[edit ]"Chunks" within the fileAfter the header comes a series of chunks, each of which conveys certain information about the image. Chunks declare themselves as critical or ancillary , and a program encountering an ancillary chunk that it does not understand can safely ignore it. This chunk-based storage layer structure, similar in concept to a container format , is designed to allow the PNG format to be extended whilemaintaining compatibility with older versions—it provides forward compatibility, and this same file structure (with different signature and chunks) is used in the associated MNG, JNG,and APNG formats.A chunk consists of four parts: length (4 bytes), chunk type/name (4 bytes), chunk data (length bytes) and CRC (cyclic redundancy code/checksum; 4 bytes).Length Chunk type Chunk data CRC4 bytes 4 bytes Length bytes 4 bytesChunks are given a four letter case sensitive ASCII type/name; compare FourCC. The case of the different letters in the name (bit 5 of the numeric value of the character) is a bit field that provides the decoder with some information on the nature of chunks it does not recognize.The case of the first letter indicates if the chunk is critical or not. If the first letter is uppercase, the chunk is critical; if not, the chunk is ancillary. Critical chunks contain information that is necessary to read the file. If a decoder encounters a critical chunk it does not recognize, it must abort reading the file or supply the user with an appropriate warning.The case of the second letter indicates if the chunk is "public" (either in the specification or the registry of special purpose public chunks) or "private" (not standardised). Uppercase is public and lowercase is private. This ensures that public and private chunk names can never conflict with each other (although two private chunk names could conflict).The third letter must be uppercase to conform to the PNG specification. It is reserved for future expansion. Decoders should treat a chunk with a lower case third letter the same as any other unrecognised chunk.The case of the fourth letter indicates if a chunk is safe to copy by editors that do not recognize it. If lowercase, the chunk may be safely copied regardless of the extent of modifications to the file. If uppercase, it may only be copied if the modifications have not touched any critical chunks. [edit]Critical chunksA decoder must be able to interpret these to read and render a PNG file.▪IHDR must be the first chunk; it contains the header.[7]▪PLTE contains the palette; list of colors.▪IDAT contains the image, which may be split among multiple IDATchunks. Doing so increases filesize slightly, but makes it possibleto generate a PNG in a streaming manner.▪IEND marks the image end.The PLTE chunk is essential for color type 3 (indexed color). It is optional for color types 2 and 6 (truecolor and truecolor with alpha) and it must not appear for color types 0 and 4 (grayscale and grayscale with alpha).[edit]Ancillary chunksOther image attributes that can be stored in PNG files include gamma values, background color, and textual metadata information. PNG also supports color management through the inclusionof ICC color space profiles.[8]▪bKGD gives the default background color. It is intended for usewhen there is no better choice available, such as in standaloneimage viewers (but not web browsers; see below for more details).▪cHRM gives the chromaticity coordinates of thedisplay primaries and white point.▪gAMA specifies gamma.▪hIST can store the histogram, or total amount of each color in theimage.▪iCCP is an ICC color profile.▪iTXt contains UTF-8 text, compressed or not, with anoptional language tag. iTXt chunk with the keyword'XML:com.adobe.xmp' can contain Extensible MetadataPlatform (XMP).▪pHYs holds the intended pixel size and/or aspect ratio of the image.▪sBIT (significant bits) indicates the color-accuracy of the sourcedata.▪sPLT suggests a palette to use if the full range of colors isunavailable.▪sRGB indicates that the standard sRGB color space is used.▪sTER stereo-image indicator chunk for stereoscopic images[9]▪tEXt can store text that can be represented in ISO/IEC 8859-1,with one name=value pair for each chunk.▪tIME stores the time that the image was last changed.▪tRNS contains transparency information. For indexed images, itstores alpha channel values for one or more palette entries. Fortruecolor and grayscale images, it stores a single pixel value thatis to be regarded as fully transparent.▪zTXt contains compressed text with the same limits as tEXt.The lowercase first letter in these chunks indicates that they are not needed for the PNG specification. The lowercase last letter in some chunks indicates that they are safe to copy, even if the application concerned does not understand them.[edit]Color depthPNG color options[10]Bits per pixel Bits per channelColor option Channels 1 2 4 8 16Indexed 1 1 2 4 8Grayscale 1 1 2 4 8 16Grayscale & alpha 2 16 32Truecolor 3 24 48Truecolor & alpha 4 32 64PNG images can either use palette-indexed color or be made up of one or more channels (numerical values directly representing quantities about the pixels). When there is more than one channel in an image all channels have the same number of bits allocated per pixel (known as the bit depth of the channel). Although the PNG specification always talks about the bit depth of channels, most software and users generally talk about the total number of bits per pixel (sometimes also referred to as bit depth or color depth). Since multiple channels can affect a single pixel, the number of bits per pixel is often higher than the number of bits per channel, as shown in the illustration at right.The number of channels will depend on whether the image is grayscale or color and whether it has an alpha channel. PNG allows the following combinations of channels, called the color type.The color type is specified in the color type field, which is a bit field, as explained in the table below at right. Not all combinations are valid, however: there is no indexed grayscale, which would becolor types 1 and 5; transparency in palette images is indicated by the presence of a tRNS chunk, not a separate channel, so there is no color type 7.Name ColortypeBinaryMasksA C PGrayscale 0 0 0 0 0Indexed grayscale 1 0 0 0 1 PaletteTruecolor 2 0 0 1 0 ColorIndexed 3 0 0 1 1 Color | paletteGrayscale & alpha 4 0 1 0 0 AlphaIndexed grayscale & alpha 5 0 1 0 1 Alpha | paletteTruecolor & alpha 6 0 1 1 0 Alpha | colorIndexed & alpha 7 0 1 1 1 Alpha | color | palette▪grayscale▪red, green and blue: rgb/truecolor▪indexed: channel containing indexes into a palette of colors▪grayscale and alpha: level of transparency for each pixel▪red, green, blue and alphaWith indexed color images, the palette is always stored in RGB at a depth of 8 bits per channel (24 bits per palette entry). Additionally, an optional array of 8-bit alpha values of the palette entries may be included. The palette must not have more entries than the image bit depth allows for, but it may have fewer (for example, if an image only uses 90 colors then it does not need palette entries for all 256 colors).Indexed color PNGs are allowed to have 1, 2, 4 or 8 bits per pixel by the standard; grayscale images with no alpha channel allow for 1, 2, 4, 8 or 16 bits per pixel. Everything else uses a bit depth per channel of either 8 or 16. The combinations this allows are given in the table above. The standard requires that decoders can read all supported color formats, but many image editors can only produce a small subset of them.[edit]Transparency of imagePNG offers a variety of transparency options. With truecolor and grayscale images either a single pixel value can be declared as transparent or an alpha channel can be added (enabling any percentage of partial transparency to be used). For paletted images, alpha values can be added to palette entries. The number of such values stored may be less than the total number of palette entries, in which case the remaining entries are considered fully opaque.The scanning of pixel values for binary transparency is supposed to be performed before any color reduction to avoid pixels becoming unintentionally transparent. This is most likely to pose an issue for systems that can decode 16 bits per channel images (as they must to be compliant with the specification) but only output at 8 bits per channel (the norm for all but the highest end systems). [edit]CompressionPNG uses a 2-stage compression process:▪pre-compression: filtering (prediction)▪compression: DEFLATEPNG uses a non-patented lossless data compression method known as DEFLATE, which is the same algorithm used in the zlib compression library.[edit]FilteringPNG's filter method 0 can use the data in pixels A, B, and C to predict the value for X.Before DEFLATE is applied, the data is precompressed, via a prediction method: a single filter method is used for the entire image, while for each image line, a filter type is chosen that transforms the data so that it is hopefully more easily compressed.[11]There is only one filter method in the current PNG specification (denoted method 0), and thus in practice the only choice is which filter type to apply to each line. For this method, the filter predicts the value of each pixel based on the values of previous neighboring pixels, and subtracts the predicted color of the pixel from the actual value, as in DPCM. An image line filtered in this way is often more compressible than the raw image line would be, especially if it is similar to the line above, since the differences from prediction will generally be clustered around 0, rather than spread over all possible image values. This is particularly important in relating separate rows, since DEFLATE has no understanding that an image is a 2D entity, and instead just sees the image data as a stream of bytes.There are five filter types for filter method 0; each type predicts the value of each byte (of the image data before filtering) based on the corresponding byte of the pixel to the left (A), above (B), above and to the left (C) or some combination thereof, and encodes the difference between the predicted value and the actual value. Filters are applied to byte values, not pixels; pixel values may be one or two bytes, or several values per byte, but never cross byte boundaries. The filter types are:[12]Type byte Filter name Predicted value0 None Zero (so that the raw byte value passes through unaltered)1 Sub Byte A (to the left)2 Up Byte B (above)3 Average Mean of bytes A and B, rounded down4 Paeth A, B, or C, whichever is closest to p = A + B−CThe Paeth filter is based on an algorithm by Alan W. Paeth.[13] Compare to the versionof DPCM used in lossless JPEG, and to the discrete wavelet transform using 1×2, 2×1, or (for the Paeth predictor) 2×2 windows and Haar wavelets.Compression is further improved by choosing filter types adaptively on a line-by-line basis. This improvement, and a heuristic method of implementing it commonly used by PNG-writing software,were created by Lee Daniel Crocker, who tested the methods on many images during the creation of the format;[14] the choice of filter is a component of file size optimization, as discussed below.If interlacing is used, each stage of the interlacing is filtered separately, meaning that the image can be progressively rendered as each stage is received; however, interlacing generally makes compression less effective.[edit]InterlacingAn illustration of Adam7 interlacing over a 16×16 image.PNG offers an optional 2-dimensional, 7-pass interlacing scheme—the Adam7 algorithm. This is more sophisticated than GIF's 1-dimensional, 4-pass scheme, and allows a clearer low-resolution image to be visible earlier in the transfer, particularly if interpolation algorithms such as bicubic interpolation are used.[15]However, the 7-pass scheme tends to reduce the data's compressibility more than simpler schemes.[edit]AnimationPNG itself does not support animation at all. MNG is an extension to PNG that does; it was designed by members of the PNG Group. MNG shares PNG's basic structure and chunks, but it is significantly more complex and has a different file signature, which automatically renders it incompatible with standard PNG decoders.The complexity of MNG led to the proposal of APNG by developers of the Mozilla Foundation. It is based on PNG, supports animation and is simpler than MNG. APNG offers fallback to single-image display for PNG decoders that do not support APNG. However, neither of these formats is currently widely supported. APNG is supported in Firefox3.0 and Opera 9.5.[16] The PNG Group decided in April 2007 not to embrace APNG.[17] Several alternatives were under discussion, ANG,aNIM/mPNG, ―PNG in GIF‖ and its subset ―RGBA in GIF‖.[18][edit]Comparison to other file formats[edit]Comparison to Graphics Interchange Format (GIF)▪On small images, GIF can achieve greater compression than PNG(see the section on filesize, below).▪On most images, except for the above cases, GIF will be bigger thanindexed PNG.▪PNG gives a much wider range of transparency options than GIF,including alpha channel transparency.▪Whereas GIF is limited to 8-bit indexed color, PNG gives a muchwider range of color depths, including 24-bit (8 bits per channel)and 48-bit (16 bits per channel) truecolor, allowing for greatercolor precision, smoother fades, etc.[19] When an alpha channel isadded, up to 64 bits per pixel (before compression) are possible.▪GIF intrinsically supports animated images. PNG supports animationonly via unofficial extensions (see the section on animation,above).▪PNG images are less widely supported (e.g. older web browsers andoffice software).[20]▪Silverlight supports PNG but has opted not to support GIF.[21] [edit]Comparison to JPEGComposite image comparing JPEG and PNG: notice artifacts in JPEG versus solid PNG background. JPEG (Joint Photographic Experts Group) can produce a smaller file than PNGfor photographic (and photo-like) images, since JPEG uses a lossy encoding method specifically designed for photographic image data, which is typically dominated by soft, low-contrast transitions, and an amount of noise or similar irregular structures. Using PNG instead of a high-quality JPEG for such images would result in a large increase in filesize (often 5–10 times) with negligible gain in quality. By contrast, when storing images that contain text, line art, or graphics – images with sharp transitions and large areas of solid color – the PNG format can compress image data more than JPEG can, and without the noticeable visual artifacts which JPEG produces around high-contrastareas. Where an image contains both sharp transitions and photographic parts a choice must be made between the two effects. Note that JPEG does not support transparency.Also, JPEG suffers from generation loss (repeatedly encoding and decoding an image with JPEG will degrade its quality), whereas lossless formats such as PNG do not. Since PNG is extremely inefficient in compressing photographs, sometimes a lossless compression format designed for photographic images – such as lossless JPEG 2000, or Adobe DNG (Digital negative) – is used for storing photographs which might require further editing. When the photograph is finally ready to be distributed, it can then be saved as a JPEG: a single pass of high-quality JPEG encoding will not noticeably degrade a photographic image. Furthermore, PNG does not provide a standard means of embedding Exif image data from sources such as digital cameras, which makes it problematic for use amongst photographers, especially professionals. TIFF, JPEG 2000, and DNG do support such meta data.JPEG has historically been the format of choice for exporting images containing gradients, as it could handle the color depth much better than the GIF format. However, any compression by the JPEG would cause the gradient to become blurry, but a 24-bit PNG export of a gradient image often comes out identical to the source image, and at a small file size. As such, the PNG format is the optimal choice for exporting small, repeating gradients for web usage.[edit]Comparison to JPEG-LSJPEG-LS is a "near-lossless" image format by the Joint Photographic Experts Group, though far less widely known and supported than the other lossy JPEG format discussed above. It is directly comparable with PNG,[clarification needed] and has a standard set of test images.[citation needed] On these images, JPEG-LS generally performs better than PNG, by 10–15%, but on some images PNG performs substantially better, on the order of 50–75%.[22] Thus, if both of these formats are options and file size is an important criterion, they should both be considered, depending on the image. [edit]Comparison to TIFFTagged Image File Format (TIFF) is a format that incorporates an extremely wide range of options. While this makes TIFF useful as a generic format for interchange between professional image editing applications, it makes adding support for it to applications a much bigger task and so it has little support in applications not concerned with image manipulation (such as web browsers). It also means that many applications can read only a subset of TIFF types, creating more potential user confusion.The most common general-purpose, lossless compression algorithm used with TIFFis Lempel–Ziv–Welch (LZW). This compression technique, also used in GIF, was covered by patents until 2003. There is a TIFF variant that uses the same compression algorithm as PNG uses, but it is not supported by many proprietary programs. TIFF also offers special-purpose losslesscompression algorithms like CCITT Group IV, which can compress bilevel images (e.g., faxes or black-and-white text) better than PNG's compression algorithm.[edit]Software support[edit]Bitmap graphics editor support for PNGMain article: Comparison of raster graphics editorsPopular graphics programs which support the PNG format include AdobePhotoshop, Corel's Photo-Paint and Paint Shop Pro, the GIMP,GraphicConverter, HeliconFilter, Inkscape, IrfanView, Konvertor, Universal Converter, Pixel image editor, and Xara. Some programs bundled with popular operating systems which support PNGinclude Microsoft's Paint and Apple's iPhoto and Preview, with the GIMP also often being bundled with popular Linux distributions.Adobe Fireworks (formerly by Macromedia) uses PNG as its native file format, allowing other image editors and preview utilities to view the flattened image. However, Fireworks by default also stores meta data for layers, animation, vector data, text and effects. Such files should not be distributed directly. Fireworks can instead export the image as an optimized PNG without the extra meta data for use on web pages, etc.[23]Some image processing programs have PNG compression problems, mainly related to lack of full implementation of the PNG compressor library.[citation needed] These include:▪Microsoft's Paint for Windows XP▪Microsoft Picture It! Photo Premium 9▪older versions of Adobe Photoshop.Adobe's Fireworks is sometimes placed in this category, but its difficulties are less severe than the other entries. The confusion stems from a misunderstanding of the mechanics of its Save format: though PNGs, the intermediate images produced by that option include large, private chunks containing complete layer and vector information, which allows further, lossless editing. Properly saved with the Export option, Fireworks' PNGs are competitive with those produced by other image editors, but are no longer editable as anything but flattened bitmaps. Fireworks is unable to save size-optimized vector-editable PNGs.[edit]Web browser support for PNGMain article: Web browser image format supportPNG support first appeared in Internet Explorer 4.0b1 and in Netscape 4.04.[24]Despite calls by the Free Software Foundation[25] and the World Wide WebConsortium (W3C),[26] tools such as gif2png,[27] and campaigns such as burn all gifs,[28] PNG adoption on websites has been fairly slow.[citation needed]GIF is found to be in use more than PNG for a few reasons:▪No support on old browsers (such as Internet Explorer below version4).▪No animation, still images only (unlike GIF, though Mozilla'sunofficial APNG format is a potential solution).PNG compatible browsers include: Apple Safari, Google Chrome, MozillaFirefox, Opera, Camino, Internet Explorer 7 (still numerous issues),[29]Internet Explorer8 (improved) and many others. For the complete comparison, see Comparison of web browsers (Image format support).However, Internet Explorer (Windows), has numerous problems which prevent it from correctly rendering PNG images.[29]▪4.0 crashes on large PNG chunks.[30]▪4.0 does not include the functionality to view .png files,[31] but there isa registry fix.[29]▪5.0 and 5.01 have broken OBJECT support.[32]▪5.01 prints palette images with black (or dark gray) backgroundsunder Windows 98, sometimes with radically altered colors.[33]▪6.0 fails to display PNG images of 4097 or 4098 bytes in size.[34][35]▪6.0 cannot open a PNG file that contains one or more zero-lengthIDAT chunks. This issue was first fixed in security update 947864(MS08-024). For more information, see this article in the MicrosoftKnowledge Base: 947864 MS08-024: Cumulative Security Updatefor Internet Explorer [36]▪6.0 sometimes completely loses ability to display PNGs, but there arevarious fixes.[34]▪6.0 and below has broken alpha-channel transparency support (willdisplay the default background color instead).[37][38][39] Howeverthere are various fixes:▪Degradable PNG Transparency for IE6▪webfx - PNG Behavior (IE behavior/.htc)▪The PNG problem in Windows Internet Explorer (IEbehavior/.htc) (unmaintained)。
常见图片格式分析-bmp,png
常见图⽚格式分析-bmp,png⼀、bmp图⽚①单⾊位图:每个像素最多可以表⽰2种颜⾊,只需要使⽤长度为1的⼆进制位来表⽰,因此每个像素占1/8byte② 16⾊位图:每个像素最多可以表⽰16种颜⾊,只需要长度为4(2^4=16)的⼆进制表⽰,每个像素占1/2byte③ 256⾊位图:每个像素最多表⽰256种颜⾊,需要长度为8(2^8=256)的⼆进制表⽰,每个像素占1byte④ 24位位图:即RGB三原⾊位图,每个像素占24位,3个byteps:⼀字节(1byte)=8位(8bit)图形的⼤⼩ = 图⽚的总像素*每个像素的⼤⼩,图⽚的总像素 = 图⽚长*⾼bmp图⽚格式:①位图⽂件头bmfh(占14个字节):数据结构如下:typedef struct tagBITMAPFILEHEADER {WORD bfType; //类型名,字符串“BM”,占2个字节,DWORD bfSize; //⽂件⼤⼩,占4个字节WORD bfReserved1; //保留字,占2个字节WORD bfReserved2; //保留字,占2个字节DWORD bfOffBits; //实际位图数据的偏移字节数,即前三个部分长度之和,占4个字节} BITMAPFILEHEADER;②位图信息头bmih(占40个字节)typedef struct tagBITMAPINFOHEADER{DWORD biSize; //指定此结构体的长度,0x28LONG biWidth; //位图宽LONG biHeight; //位图⾼.为正,表⽰从下往上存储,左下⾓是起点。
为负,表⽰从上往下储存,左上⾓是起点 WORD biPlanes; //平⾯数,为1WORD biBitCount //采⽤颜⾊位数,可以是1,2,4,8,16,24,32DWORD biCompression; //压缩⽅式,可以是0,1,2,其中0表⽰不压缩DWORD biSizeImage; //实际位图数据占⽤的字节数LONG biXPelsPerMeter; //X⽅向分辨率LONG biYPelsPerMeter; //Y⽅向分辨率DWORD biClrUsed; //使⽤的颜⾊数,如果为0,则表⽰默认值(2^颜⾊位数)DWORD biClrImportant; //重要颜⾊数,如果为0,则表⽰所有颜⾊都是重要的} BITMAPINFOHEADER;③彩⾊表aColors单⾊位图彩⾊表占8字节16⾊位图彩⾊表占64字节256⾊位图彩⾊表占1024字节⼆、png图⽚png图⽚格式:由8个字节的PNG⽂件署名和数据块组成png⽂件署名域:89 50 4e 47 0d 0a 1a 0a (固定)IHDR数据块:00 00 00 0d(说明IHDR头块长度为13)49 48 44 52(IHDR的hex值)00 00 00 64(图像的宽,这⾥为100像素)00 00 00 4f(图像的⾼,这⾥为79像素)08 表⽰⾊深 02 表⽰颜⾊类型 00 预留 00 预留 00 ⾮隔⾏扫描92 eb f7 f6(CRC校验)※这⾥需要注意的是图像的宽、⾼数据,ctf题⽬经常将修改宽⾼后的图⽚作为题⽬来隐藏信息最后得有个IEND数据块,通常值为 00 00 00 00 49 45 4E 44 AE 42 60 82在IEND块后⾯添加任何的字符都对⽂件的打开造成不了影响,那我们就可以在这⾥藏⼀些数据了。
png的编码格式
png的编码格式PNG(Portable Network Graphics)是一种用于无损数据压缩的位图图形文件格式,广泛应用于互联网上的图像传输。
它是由PNG开发组于1995年开发的,为了取代GIF格式而设计的。
PNG采用多种编码格式实现其无损压缩和高质量图像显示的特性。
首先,PNG格式使用的最常见的编码格式是Deflate压缩算法。
Deflate算法是一种无损数据压缩算法,它采用了一种称为哈夫曼编码的技术,将重复出现的模式进行编码以减小文件的大小。
Deflate算法在压缩过程中使用了两种子算法,分别是LZ77(一种字典编码算法)和哈夫曼编码。
LZ77算法通过查找和利用重复出现的字符或字符串来压缩数据,哈夫曼编码则是将固定长度的编码转换为可变长度的编码,从而更高效地对数据进行编码。
其次,PNG格式还使用了预滤器编码格式。
预滤器编码是一种在压缩图像数据之前,先对图像数据进行预处理的技术。
PNG定义了五种不同的预滤器,分别是None、Sub、Up、Average和Paeth。
这些预滤器根据图像像素的特性对每一行的像素进行编码,以便更好地利用Deflate算法进行压缩。
这种预滤器编码格式可以有效地减小图像数据的大小,提高图像显示的效率。
此外,PNG格式还支持基于调色板的编码格式。
调色板编码是一种通过限制色彩数量来减小图像数据大小的技术。
PNG中定义了两种调色板编码格式,分别是8位索引色和4位索引色。
这些编码格式可以有效地减小图像数据的大小,并且由于采用了索引色的方式,可以在保持图像质量的同时减小文件大小。
最后,PNG还支持Alpha通道编码格式。
Alpha通道是一种用于表示图像中每个像素的透明度的通道。
PNG采用8位或16位的Alpha通道编码格式,可以对图像中的每个像素进行透明度的编码,从而实现图像的透明或半透明效果。
综上所述,PNG格式使用了多种编码格式来实现其无损压缩和高质量图像显示的特性,包括Deflate压缩算法、预滤器编码格式、调色板编码格式和Alpha通道编码格式。
png是什么意思
png是什么意思
是一种支持无损压缩的位图图形格式,支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性。
特性体积小网络通讯中因受带宽制约,在保证图片清晰、逼真的前提下,网页中不可能大范围的使用文件较大的BMP格式文件。
无损压缩PNG文件采用LZ77算法的派生算法进行压缩,其结果是获得高的压缩比,不损失数据。
它利用特殊的编码方法标记重复出现的数据,因而对图像的颜色没有影响,也不可能产生颜色的损失,这样就可以重复保存而不降低图像质量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
• 需要强调说明的是我们在web页面上所使用的图像都是位图,即便有些称为 矢量图形(如矢量icon等)也是指通过矢量工具进行绘制然后再转成位图格 式在web上使用的(区别于像素绘制的图形)。
• 位图的优点是利于显示色彩层次丰富的写实图像。缺点则是文件大小较大, 放大和缩小图像会失真。
.
• 尽管我们在web页面中所使用的JPG、PNG、GIF格 式的图像都是位图,即他们都是通过记录像素点的数 据来却不一样,这就是涉及到有损压缩 和无损压缩的区别。
注的)
.
• 那么是什么原因造成这样的差异呢? • 首先我们可以看出“立刻购买”这个按钮是在photoshop
中用矢量工具绘制出来的,其渐变填充是非常规则的线 性渐变,文字颜色和描边等都是采用纯色,所以这个图 像所包含的色彩信息非常有限。根据前面我们介绍的无 损压缩的特性,当用PNG存储这个图像时,只需要保存 很少的色彩信息就可以真实还原这个图像。而对于JPG格 式来说大小主要决定于图像的颜色层次,所以在这种颜 色较少但对比强烈的情况下,反而不能很好的压缩文件 大小。 • 另外根据有损压缩的压缩算法JPG会在图像中通过渐变或 其他方式填充一些被删除的数据信息来对图像进行压缩, 图中红色和白色的地方由于色差较大,JPG在压缩过程中 就会填充一些额外杂色进去,反而影响的图像的质量。 这也是为什么JPG不利于存储大块颜色相近区域以及亮度 差异十分明显的图像的原因。
•不仅如此,PNG8还支持1位的布尔透明通道,所谓布尔透明指
的是要么完全透明要么完全不透明。而PNG24则支持8位(256
阶)的alpha通道透明,也就是说可以存储从完全透明到完全不
透明一共256个层级的透明度(即所谓的半透明)。
格式
PNG8 PNG24
最高支持色彩通 道
256色
约1600万色
索引色编辑支持
.
• 无损压缩-最精确的拼图 • 相对有损压缩而言无损压缩则会真实的记录图像上每个像
素点的数据信息,但为了压缩图像文件的大小会采取一些 特殊的算法。无损压缩的压缩原理是先判断图像上哪些区 域的颜色是相同的,哪些是不同的,然后把这些相同的数 据信息进行压缩记录,(例如一片蓝色的天空之需要记录 起点和终点的位置就可以了),而把不同的数据另外保存 (例如天空上的白云和渐变等数据)。
PNG格式介绍
.
矢量图与位图
• 矢量图-完美的几何图形
• 矢量图是通过组成图形的一些基本元素,如点、线、面,边框,填充色等信 息通过计算的方式来显示图形的。就好比我们在几何学里面描述一个圆可以 通过它的圆心位置和半径来描述,当然还可以通过边框的粗细、颜色以及填 充的颜色等数据去描述它的样式。而电脑在显示的时候则通过这些数据去绘 制出我们定义的图像。
支持 不支持
.
透明支持
支持布尔透明 支持8位(256阶) alpha透明
什么时候应该使用PNG
• 下图是淘宝网最常见的一个图片即“立刻购买”按钮,这里 我尝试用JPG和PNG8格式分别进行保存,可以看到保存的结 果有两个值得注意的地方:
• 1、JPG保存的文件大小是PNG保存的文件大小的2倍 • 2、JPG不仅文件更大并且还出现了噪点(如图中红色方框标
.
PNG的特性
• 1、能在保证最不失真的情况下尽可能压缩图像 文件的大小。
• 2、PNG用来存储灰度图像时,灰度图像的深度 可多到16位,存储彩色图像时,彩色图像的深度 可多到48位,并且还可存储多到16位的α通道数 据。
• 3、对于需要高保真的较复杂的图像,PNG虽然 能无损压缩,但图片文件较大,不适合应用在 Web页面上。
.
• PNG是我们最常见的一种采用无损压缩的图片格式。无损 压缩在存储图像前会先判断图像上哪些地方是相同的哪些 地方是不同的,为此需要对图像上所有出现的颜色进行索
引(如上图),我们把称这些颜色称为索引色。索引色就
好比绘制这幅图像的“调色版”,PNG在显示图像的时候 则会用“调色版”上的这些颜色去填充相应的位置。 • 这里大家可能会疑惑既然PNG采用的是无损压缩为什么我 们保存的PNG格式图片还会有失真呢?这是因为无损压缩 只是说它的压缩方式会尽可能真实的还原图像,但从它的 压缩原理我们可以知道它是通过索引图像上相同区域的颜 色进行压缩和还原的,这就意味着只有在图像上出现的颜 色数量小于我们可以保存的颜色数量时,我们才能真实的 记录和还原图像,否则就会丢失一些图像信息(PNG8最 多只能索引256种颜色,所以对于颜色较多的图像不能真实 还原;PNG24则可以保存1600多万种颜色,基本能够真实 还原我们人类肉眼所可以分别的所有颜色;PNG格式最多 可以保存48位颜色通道)。而对于有损压缩来说,不管图 像上的颜色多少,都会损失图像信息。
.
有损压缩与无损压缩
• 有损压缩-你看到的不一定是真实的 • 按照我的理解有损压缩就是在存储图像的时候并不完全真实的
记录图像上每个像素点的数据信息,它会根据人眼观察现实世 界的特性(人眼对光线的敏感度比对颜色的敏感度要高,生物 实验证明当颜色缺失时人脑会利用与附近最接近的颜色来自动 填补缺失的颜色)对图像数据进行处理,去掉那些图像上会被 人眼忽略的细节,然后使用附近的颜色通过渐变或其他形式进 行填充。这样既能大大降低图像信息的数据量,又不会影响图 像的还原效果。
• 位图-神奇的拼图
• 位图又叫像素图或栅格图,它是通过记录图像中每一个点的颜色、深度、透 明度等信息来存储和显示图像。一张位图就好比一幅大的拼图,只不过每个 拼块都是一个纯色的像素点,当我们把这些不同颜色的像素点按照一定规律 排列在一起的时候,就形成了我们所看到的图像。所以当我们放大一幅像素 图时,能看到这些拼片一样的像素点(如下图)。
.
PNG8与PNG24
•提到PNG格式就不得不提到PNG8和PNG24,这种叫法并非官 方定义,不过由于普遍使用已经被大家广泛接受了。通过前面的 介绍我们知道PNG采用无损压缩是通过索引色去存储和还原图 像的,PNG8和PNG24后面的数字则是代表这种PNG格式最多 可以索引和存储的颜色值。”8″代表2的8次方也就是256色,而 24则代表2的24次方大概有1600多万色。