登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

面包会有的

... ...

 
 
 

日志

 
 

分析PNG图像文件结构(3)  

2010-07-23 17:59:12|  分类: VC++ |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

5.2.3  分析PNG图像文件结构(3)

表5-17所示为pic1.png图像文件中物理像素尺寸数据块(pHYs)中各字段的含义。

表5-17 pic1.png图像文件中物理像素尺寸数据块(pHYs)中各字段的含义


十六进制值

描    述

00 00 00 09

物理像素尺寸数据块的长度,00 00 00 09 =9

70 48 59 73

数据块类型标志,70 48 59 73的ASCII值等于pHYs

00 00 0B 13

x轴上每米像素的数量,00 00 0B 13 = 2835,即每米2835个像素

00 00 0B 13

y轴上每米像素的数量,00 00 0B 13 = 2835,即每米2835个像素

01

Meter=1,将单位定义为米

00 9A 9C 18

CRC值


继续分析下面的数据,按照前面的分析方法,分析出接下来的数据块是iCCP,iCCP数据块是PNG解码时进行特殊的颜色处理信息。

iCCP数据块的结构可以用以下代码定义:

PNG_CHUNK_HEADER chunkHdr
typedef struct {
string profile_name;
unsigned byte red;
} PNG_ICCP_CHUNK_DATA;
DWORD ICCPCrc;
图5-21所示为pic1.png中的iCCP的数据结构。
498)this.style.width=498;" border=0< 
(点击查看大图)图5-21  pic1.png图像文件中iCCP数据块结构
498)this.style.width=498;" border=0< 
(点击查看大图)图5-21  pic1.png图像文件中iCCP数据块结构


表5-18所示为pic1.png图像文件中的iCCP数据块各字段的含义。

表5-18 pic1.png图像文件中的iCCP数据块各字段的含义

十六进制值

描    述

00 00 0A 4D

ICCP数据块的长度,00 00 0A 4D = 2637

69 43 43 50

数据块类型标志,69 43 43 50的ASCII值等于iCCP

50 68 6F 74 6F 73 68 6F 70 20 49 43 43 20 70 72 6F 66 69 6C 65 00

配置文件名,长度1~79字节,以0作为终止符的字符串。

50 68 6F 74 6F 73 68 6F 70 20 49 43 43 20 70 72 6F 66 69 6C 65 00 的ASCII值等于Photoshop ICC profile

00

压缩方法,0表示使用deflate压缩

78 DA 9D 53~F7 84 F3 FB

压缩后的配置文件,解码时使用

继续分析下面的数据,按照前面的分析方法,分析出接下来的数据块是gAMA,gAMA数据块是PNG解码时进行gamma校正的信息。

gAMA数据块的结构可以用以下代码定义:

PNG_CHUNK_HEADER chunkHdr;
BYTE gamaChunkData[chunkHdr.btChunkLen];
DWORD gamaCrc;
图5-22所示为pic1.png中的gAMA的数据结构:
498)this.style.width=498;" border=0< 
(点击查看大图)图5-22  pic1.png图像文件中gAMA数据块结构
  评论这张
 
阅读(1152)| 评论(0)

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018