PhotoShop文件格式解析.docx

上传人:b****6 文档编号:8249403 上传时间:2023-01-30 格式:DOCX 页数:50 大小:36.83KB
下载 相关 举报
PhotoShop文件格式解析.docx_第1页
第1页 / 共50页
PhotoShop文件格式解析.docx_第2页
第2页 / 共50页
PhotoShop文件格式解析.docx_第3页
第3页 / 共50页
PhotoShop文件格式解析.docx_第4页
第4页 / 共50页
PhotoShop文件格式解析.docx_第5页
第5页 / 共50页
点击查看更多>>
下载资源
资源描述

PhotoShop文件格式解析.docx

《PhotoShop文件格式解析.docx》由会员分享,可在线阅读,更多相关《PhotoShop文件格式解析.docx(50页珍藏版)》请在冰豆网上搜索。

PhotoShop文件格式解析.docx

PhotoShop文件格式解析

PSD文件解析

(lzgame整理)

一、PSD文件结构为:

文件头信息

颜色映射表

图像资源

图层与蒙版信息

图像数据

二、PSD文件头信息结构

typedefstructtagPSD_FILE_HEADER

{

DWORDsignature;

WORDversion;

WORDreserved1;

WORDreserved2;

WORDreserved3;

WORDnumber_of_channels;

DWORDheight_of_image;

DWORDwidth_of_image;

WORDdepth;

WORDcolor_mode;

}psd_file_header;

字段名

类型

大小

(字节)

描述

signature

char

4

签名:

总是为'8BPS'

version

short

2

版本:

总是为1(**PSB**版本为2)

reserved1-3

6

保留:

必须为0

number_of_channels

short

2

图片通道数量,包含所有颜色通道数和alpha通道数。

支持范围为1-56

height_of_image

int

4

图片高度像素数,支持范围为1-30,000.(**PSB**最大为300,000.)

width_of_image

int

4

图片宽度像素数,支持范围为1-30,000.(*PSB**最大为300,000)

depth

short

2

每像素字节数:

支持的值为1,8,16.

color_mode

short

2

颜色模式.支持的值有:

Bitmap=0;Grayscale=1;Indexed=2;RGB=3;CMYK=4;Multichannel=7;Duotone=8;Lab=9.

三、PSD颜色映射表,在photoshop中仅有索引色模式和双色调模式有颜色映射表,数据格式如下:

1.4字节(int):

颜色映射表三色总颜色数

2.颜色映射表数据区:

颜色映射表中保存的颜色数量为“三色总颜色数/3”,在颜色映射表中每个颜色的RGB三色被分开保存,每个颜色值2字节,依次为R通道数据区、G通道数据区、B通道数据区。

可以计算得到总数据长度为“颜色映射表三色总颜色数*2字节”

四、PSD图像资源,起始为4字节的图像资源数量(int),然后为图像资源数据区,图像资源的数据结构为:

typedefstructtagPSD_IMAGE_RESOURCE{

DWORDsignature;

WORDUniqueID;

BYTEnNameSize;

BYTE*name;

DWORDnResourceSize;

BYTE*data;

}psd_image_resource;

字段名

类型

大小

(字节)

描述

signature

Int

4

签名,总是为'8BIM'

UniqueID

Short

2

资源唯一索引号

nLength

Byte

1

名称字符串长度

name

Char

nLength

名称,Pascal字符串,长度如果为奇数,在字符串末尾追加1个字节“0”

nSize

Int

4

实际资源数据字节数

Data

Byte

nSize

实际图像资源数据,长度如果为奇数,在图像资源数据末尾追加1个字节“0”

已知资源ID介绍:

1.ID1005:

图像分辨率,共16字节

1)4字节(int):

水平分辨率(像素/英寸)

2)2字节(short):

画布显示的水平分辨率单位,1:

像素/英寸,2:

厘米/英寸

3)2字节(short):

画布显示的宽度单位,1:

英寸,2:

厘米,3:

点,4:

派卡,5:

4)4字节(int):

垂直分辨率(像素/英寸)

5)2字节(short):

画布显示的垂直分辨率单位,1:

像素/英寸,2:

厘米/英寸

6)2字节(short):

画布显示的高度单位,1:

英寸,2:

厘米,3:

点,4:

派卡,5:

2.ID1006:

Alpha通道的名称列表,以Pascal字符串存储,即通道名称字符串长度(1字节)+通道名称(最大255字节)。

可以通过计算名称数量获得总alpha通道数。

3.ID1007:

颜色通道信息

1)10字节:

颜色通道对应的颜色值:

2)2字节(short):

颜色值使用的颜色空间类型,颜色空间表示了PhotoShop把不同颜色模式转换为屏幕RGB显示模式的取值方式。

颜色空间类型定义为:

typedefenum{

psd_color_space_dummy=-1,//没有颜色空间

psd_color_space_rgb,//RGB颜色空间

psd_color_space_hsb,//HSB颜色空间

psd_color_space_cmyk,//CMYK颜色空间

psd_color_space_pantone,//潘通颜色空间

psd_color_space_focoltone,//FOCOLTONE颜色空间

psd_color_space_trumatch,//TRUMATCH颜色空间

psd_color_space_toyo,//TOYOColorFinder颜色

psd_color_space_lab,//LAB颜色空间

psd_color_space_gray,//灰度颜色空间

psd_color_space_wide_cmyk,//宽CMYK颜色空间

psd_color_space_hks,//HKS颜色空间

psd_color_space_dic,//DIC颜色空间

psd_color_space_total_ink,//总墨量颜色空间

psd_color_space_monitor_rgb,//显示器RGB颜色空间

psd_color_space_duotone,//双色调颜色空间

psd_color_space_opacity//不透明颜色空间

}psd_color_space;

3)4x2字节(short):

颜色值

4)2字节(short):

不透明度,取值范围为0-100

5)1字节(byte):

显示方式,0:

选中,1:

保护

6)1字节:

可能是用于多通道颜色模式,通常为0

4.ID1008:

标题,以Pascal字符串存储,即标题长度(1字节)+标题(最大255字节)

5.ID1024:

当前图层ID号(2字节),为0表示最后一层

6.ID1026:

图层组信息,每个图层组ID占用2个字节,可通过计算该资源的数据长度/2得到图层组总数量

7.ID1033:

缩略图资源结构,同ID1036;(Photoshop4.0)

8.ID1036:

缩略图资源结构,缩略图信息由28字节的头信息+JFIF格式的RGB图像数据组成。

(Photoshop5.0以上)

1)4字节(int):

缩略图格式,1为kJpegRGB,也支持kRawRGB(0).

2)4字节(int):

缩略图宽度像素数

3)4字节(int):

缩略图高度像素数

4)4字节(int):

每行字节数=(宽度像素数*每像素字节数+31)/32*4.

5)4字节(int):

总字节数=每行字节数*高度*面板数量

6)4字节(int):

每行后面不用的字节,用于一致性检查

7)2字节(short):

每像素字节数,总是为24

8)2字节(short):

面板数量,总是为1

9)剩余字节:

JFIF图像数据

9.ID1034:

Copyright标记(2字节)。

Photoshop(v4.0以上)

10.ID1037:

全局光照角度(4字节(int)),范围为0-359,用于图层效果,默认为30。

(Photoshop5.0以上)

11.ID1042:

显示图层效果标记(1字节),全局标记,用于显示或隐藏所有的图层效果。

(Photoshop5.0以上)

12.ID1045:

Alpha通道的Unicode名称列表(Unicode字符串,每个字符由2个字节组成),存储格式为:

通道Unicode名称字符串长度(4字节)+通道Unicode名称(字符串长度*2字节)。

可以通过计算名称数量获得总alpha通道数。

(Photoshop5.0以上)

13.ID1046:

索引颜色表颜色数量(2字节)。

(Photoshop6.0以上)

14.ID1047:

索引颜色表中透明色的索引号(2字节)。

(Photoshop6.0以上)

15.ID1049:

全局光源高度(GlobalAltitude)(4字节)。

(Photoshop6.0以上)

16.ID1053:

Alpha通道ID号列表(4字节/ID号),可以通过计算ID号数量获得总alpha通道数。

(Photoshop6.0以上)

17.ID1057:

(Photoshop6.0)版本信息

1)4字节(int):

版本号

2)1字节(bool):

有真实的图像混合数据标记

3)4字节(int):

作者名称Unincode字符串长度

4)2字节(wchar)*作者名称字符串长度:

作者名称

5)4字节(int):

读者名称Unincode字符串长度

6)2字节(wchar)*读者名称字符串长度:

读者名称

7)4字节(int):

当前文件版本

18.ID2000-2998:

Photoshop路径资源,ID范围为2000-2998。

路径资源数据由26字节的资源块组成,总长度为26x路径资源数量

起始的2字节(short)为路径资源类型,余下24字节根据类型,注释如下:

1)类型0:

关闭的路径;

类型3:

打开的路径;

a)2字节(short):

路径中的贝塞尔节点数量

b)22字节:

总是为0

2)类型1:

关闭的贝塞尔节点,连接;

类型2:

关闭的贝塞尔节点,未连接;

类型4:

打开的贝塞尔节点,连接;

类型5:

打开的贝塞尔节点,未连接;

a)4字节(int):

节点前控制点Y坐标

b)4字节(int):

节点前控制点X坐标

c)4字节(int):

节点Y坐标

d)4字节(int):

节点X坐标

e)4字节(int):

节点后控制点Y坐标

f)4字节(int):

节点后控制点X坐标

3)类型6:

路径填充规则24字节

4)类型7:

路径剪切范围

a)4字节(int):

路径剪切范围Top

b)4字节(int):

路径剪切范围Left

c)4字节(int):

路径剪切范围Bottom

d)4字节(int):

路径剪切范围Right

e)4字节(int):

路径剪切范围分辨率

f)4字节(int):

总是为0

5)类型8:

路径填充

a)2字节(short):

填充的值

b)22字节:

总是为0

19.ID2999:

EPS文件剪切路径(暂无资料)

以下为脱离了Photoshop可能就没用的图像资源:

20.ID1009:

打印边框(边界)信息

1)(2字节实际数据,2字节分数):

打印边框宽度,固定值

2)2字节(short):

打印边框单位,1为英寸,2为厘米,3为点,4为派卡,5为列

21.ID1011:

打印设置标记

1)1字节(bool):

打印标签标记

2)1字节(bool):

打印角裁剪标记

3)1字节(bool):

打印颜色条标记

4)1字节(bool):

打印套准标记

5)1字节(bool):

负片打印标记

6)1字节(bool):

药膜向下标记

7)1字节(bool):

插入说明标记

8)1字节(bool):

打印标题标记

9)1字节(bool):

打印出血标记

22.ID1032:

网格线信息(Photoshop4.0以上)

1)4字节(int):

版本号,总是为1

2)4字节(int):

水平方向网格线数量

3)4字节(int):

垂直方向网格线数量

4)4字节(int):

网格线总数(可以为0)

以下5字节/组*网格线总数

5)4字节(int):

网格线坐标列表

6)1字节(byte):

网格线类型,0为垂直网格线,1为水平网格线

23.ID1038:

颜色样板资源(Photoshop5.0以上)

1)4字节(int):

版本号,总是为1

2)4字节(int):

颜色样板数量

以下10字节/组*颜色样板数量

3)4字节(int):

颜色垂直位置

4)4字节(int):

颜色水平位置

5)2字节(short):

颜色空间类型

24.ID1050:

切片资源(Photoshop6.0以上)

1)4字节(int):

版本号,总是为6

2)4字节(int):

切片范围top

3)4字节(int):

切片范围left

4)4字节(int):

切片范围bottom

5)4字节(int):

切片范围right

6)4字节(int)+字符串长度*2:

切片资源名称Unicode字符串长度+切片资源名称

7)4字节(int):

切片数量

8)各个切片的详细信息

a)4字节(int):

切片ID

b)4字节(int):

切片组ID,为0表示不是用户切片

c)4字节(int):

关联图层数量

d)0或4字节(int):

关联图层id(仅当关联图层数量为1时存在)

e)4字节(int)+字符串长度*2:

切片名称Unicode字符串长度+切片名称

f)4字节(int):

切片类型

g)4字节(int):

切片范围left

h)4字节(int):

切片范围top

i)4字节(int):

切片范围right

j)4字节(int):

切片范围bottom

k)4字节(int)+字符串长度*2:

HTML链接地址(URL)Unicode字符串长度+HTML链接地址(URL)

l)4字节(int)+字符串长度*2:

HTML目标(Target)Unicode字符串长度+HTML目标(Target)

m)4字节(int)+字符串长度*2:

HTML图片信息文本Unicode字符串长度+HTML图片信息文本

n)4字节(int)+字符串长度*2:

HTMLAlt标记Unicode字符串长度+HTMLAlt标记

o)1字节(byte):

在单元格中显示文本的标记

p)4字节(int)+字符串长度*2:

在单元格中显示的文本Unicode字符串长度+在单元格中显示的文本

q)4字节(int):

水平对齐位置

r)4字节(int):

垂直对齐位置

s)4*1字节(byte):

读取ARGB背景颜色,依次为A-R-G-B颜色值

25.ID1054:

URL列表(Photoshop6.0以上)

1)4字节(int):

URL列表数量

2)各个URL的详细信息

a)4字节(int):

4字节简略关联标签,如:

来自切片为“slic”

b)4字节(int):

关联ID

c)4字节(int)+字符串长度*2:

链接地址(URL)Unicode字符串长度+链接地址(URL)

26.ID1058,ID1059:

EXIF数据,不包含固定格式的EXIF头信息(Photoshop7.0以上)

27.ID1062:

打印缩放信息(Photoshop7.0以上)

1)2字节(short):

打印缩放类型,0为图像居中,1为缩放以适合介质,2为用户自定义

2)4字节(float):

X坐标位置

3)4字节(float):

Y坐标位置

4)4字节(float):

打印缩放比例

28.ID1064:

像素高宽比(PhotoshopCS以上)

1)4字节(int):

版本号,总是为1

2)8字节(double):

像素高宽比,像素点的X/Y值

29.ID10000:

打印出血信息

1)2字节(short):

版本号,总是为1

2)1字节(bool):

打印中心裁剪标记

3)1字节(bool):

预留,总是为0

4)4字节(int):

读取打印出血宽度

5)2字节(short):

打印出血缩放比例

五、PSD图层与蒙版信息,数据格式如下:

1.4字节(int):

图层和蒙版信息数据总长度(PSB为8字节)

2.4字节(int):

图层信息数据长度(PSB为8字节),长度必须为偶数,否则追加1个字节“0”

以下为图层信息部分:

3.2字节(short):

图层数量

4.各图层信息数据列表,包括图层的头信息、蒙版信息、效果图层信息及设置信息,其数据格式如下:

1)4字节(int):

图层范围top

2)4字节(int):

图层范围left

3)4字节(int):

图层范围bottom

4)4字节(int):

图层范围right

5)2字节(short):

图层通道数量

6)各个图层通道的头信息,数据格式如下:

a)2字节(short):

图层通道ID。

在RGB图像中:

0表示R通道,1表示G通道,2表示B通道;在CMYK图像中:

0表示C通道,1表示M通道,2表示Y通道,3表示K通道,等等;另外-1表示透明蒙版,-2表示用户颜色通道。

b)4字节(int):

图层通道数据长度(PSB为8字节)

7)4字节(char):

混合模式签名,总是为'8BIM'

8)4字节(char):

混合模式类型,混合模式类型定义为

typedefenum{

psd_blend_mode_normal,//'norm'=normal(正常)

psd_blend_mode_dissolve,//'diss'=dissolve(溶解)

psd_blend_mode_darken,//'dark'=darken(变暗)

psd_blend_mode_multiply,//'mul'=multiply(正片叠底)

psd_blend_mode_color_burn,//'idiv'=colorburn(颜色加深)

psd_blend_mode_linear_burn,//'lbrn'=linearburn(线性加深)

psd_blend_mode_lighten,//'lite'=lighten(变亮)

psd_blend_mode_screen,//'scrn'=screen(滤色)

psd_blend_mode_color_dodge,//'div'=colordodge(颜色减淡)

psd_blend_mode_linear_dodge,//'lddg'=lineardodge(线性减淡(添加))

psd_blend_mode_overlay,//'over'=overlay(叠加)

psd_blend_mode_soft_light,//'sLit'=softlight(柔光)

psd_blend_mode_hard_light,//'hLit'=hardlight(强光)

psd_blend_mode_vivid_light,//'vLit'=vividlight(亮光)

psd_blend_mode_linear_light,//'lLit'=linearlight(线性光)

psd_blend_mode_pin_light,//'pLit'=pinlight(点光)

psd_blend_mode_hard_mix,//'hMix'=hardmix(实色混合)

psd_blend_mode_difference,//'diff'=difference(差值)

psd_blend_mode_exclusion,//'smud'=exclusion(排除)

psd_blend_mode_hue,//'hue'=hue(色相)

psd_blend_mode_saturation,//'sat'=saturation(饱和度)

psd_blend_mode_color,//'colr'=color(颜色)

psd_blend_mode_luminosity,//'lum'=luminosity(明度)

psd_blend_mode_pass_through,//'pass'=pass(通过)

}psd_blend_mode;

9)1字节(byte):

不透明度,0为透明,255为不透明

10)1字节(byte):

剪贴蒙版标记,0为底板,1为贴图

11)1字节(byte):

图层设置标记,每一位为一个标记,由右向左依次为:

a)0位:

透明度保护标记

b)1位:

显示图层标记

c)2位:

停用图层标记

d)3位:

像素数据无关标记(Photoshop5.0以上)

12)1字节(byte):

图层设置保留标记

13)4字节(int):

图层附加效果层数据长度(不知道为什么不设在图层附加效果层数据的前面)

14)4字节(int):

图层蒙版信息数据长度,可能的数值有0、20、36,如果为零,则表示没有数据。

a)如果数据长度为20,使用前18个字节,依次为:

1.4字节(int):

图层蒙版范围top

2.4字节(int):

图层蒙版范围left

3.4字节(int):

图层蒙版范围bottom

4.4字节(int):

图层蒙版范围right

5.1字节(byte):

蒙版图层的默认颜色(0或255)

6.1字节(byte):

蒙版图层设置标记,每一位为一个标记,由右向左依次为:

1)0位:

相对于图层的位置标记

2)1位:

关闭图层蒙版标记

3)2位:

混合时反转图层蒙版标记

7.2字节:

保留

b)如果数据长度为36,不使用前18个字节,依次为:

1.前18个字节:

不使用

2.1字节(byte):

蒙版图层设置标记,每一位为一个标记,由右向左依次为:

1)0位:

相对于图层的位置标记

2)1位:

关闭图层蒙版标记

3)2位:

混合时反转图层蒙版标记

3.1字节(byte):

蒙版图层的默认颜色(0或255)

4.4字节(int):

图层蒙版范围top

5.4字节(int):

图层蒙版范围left

6.4字节(int):

图层蒙版范围bottom

7.4字节(int):

图层蒙版范围right

15)4字节(int):

图层混合颜色带信息数据长度,其颜色通道数量=(数据长度-8字节)/8

16)2字节(short):

图层混合颜色带信息中的本图层灰度-黑色

17)2字节(short):

图层混合颜色带信息中的本图层灰度-白色

18)2字节(short):

图层混合颜色带信息中的下一图层灰度-黑色

19)2字节(short):

图层混合颜色带信息中的下一图层灰度-白色

20)图层混合颜色带各个颜色通道图层混合颜色带信息

a)2字节(short):

图层混合颜色带信息中的本图层灰度-黑色

b)2字节(short):

图层

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1