png文件分析

Portable Network Graphics (PNG, 官方发音为 /pɪŋ/, 但通常被念作 /ˌpiːɛnˈdʒiː/) ,是一种无损压缩的位图图像格式。它支持索引、灰度、RGB三种颜色方案以及Alpha通道等特性。PNG的开发目标是改善并取代GIF作为适合网络传输的格式而不需专利许可,所以被广泛应用于互联网及其他方面上。
PNG设计用于在线查看应用程序, 例如万维网,因此它可以通过渐进式显示选项完全流式传输。PNG 非常强大,既能提供完整的文件完整性检查,又能对常见传输错误进行简单检测。此外,PNG 还可以存储伽玛和色度数据,以改善异构平台上的颜色匹配
用二进制编辑器打开png文件,我们可以看到其格式内容,如下:
随意找了张图片打开了
其中前八比特为文件头(file header),用来表示这是一个png文件:
文件头
其含义为:
89:表示不支持8bit的数据,并减小一个文本文件被错误地认为是PNG文件的可能性。
50 4E 47:英文字符串“PNG”的ASCII码
0D 0A:DOS风格的换行符(CRLF)。用于DOS-Unix数据的换行符转换。
1A:在DOS命令行下,用于阻止文件显示的文件结束符。
0A:Unix风格的换行符(LF)。用于Unix-DOS换行符的转换。

其余部分为数据块(chunks),包括关键数据块(critical chunk)和辅助数据块(ancillary chunks)两种。
其中关键数据块是必须存在的,包括:
IHDR,header chunk:包含有图像基本信息,作为第一个数据块出现并只出现一次。
在这里插入图片描述
PLTE,palette chunk:调色板数据块,必须存放在图像数据块之前。
在这里插入图片描述

IDAT,image data chunk,存储实际的图像数据。PNG数据包允许包含多个连续的图像数据块
图像的主体内容,中间这些全是

IEND,image trailer chunk:图像结束数据,表示PNG数据流结束。
在这里插入图片描述

而辅助数据块是可选的,包括:
背景颜色数据块bKGD(background color)。
基色和白色度数据块cHRM(primary chromaticities and white point)。
图像γ数据块gAMA(image gamma)。
图像直方图数据块hIST(image histogram)。
物理像素尺寸数据块pHYs(physical pixel dimensions)。
样本有效位数据块sBIT(significant bits)。
文本信息数据块tEXt(textual data)。
图像最后修改时间数据块tIME (image last-modification time)。
图像透明数据块tRNS (transparency)。
压缩文本数据块zTXt (compressed textual data)。
—————————————————————————————————
参考文档:https://blog.csdn.net/Cross_Entropy/article/details/105179408

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值