您的当前位置:首页正文

基于XML的PSD文档信息的获取

2020-03-06 来源:个人技术集锦
第9卷第10期 软件导刊 VO1.9 N0.10 Software Guide 0ct.2010 基于XM L的PSD文档信息的获取 孟书会 (浙江师范大学教师教育学院,浙江金华321004) 摘 要:介绍PSD的信息获取方法,并且描述了使用XML技术表达PSD的信息结构,简要分析了用XML表达PSD 信息的实现。 关键词:XML;PSD:信息荻取;Photoshop 中图分类号:TP393 文献标识码:A 文章编号:1672—7800(2010)10—0013—02 综上所述,在Photoshop考试中采取的信息获取策略是综 1 PSD文档的信息获取方法 合上述三种策略.各取所长、优化组合。首先使用Photoshop对 Photoshop文档的扩展名为.psd.亦称PsD文档。目前计算 象方法提取文档基本信息、图层及其属性信息。再使用二进制 机实现PSD文档信息的获取方法有多种,但每种方法都存在 文件方法提取部分图层效果信息。最后通过操作记录日志分析 各自的优缺点.下面作简要介绍。 法分析用户操作记录.提取用户操作信息.这部分信息操作对 (1)二进制文件分析法。二进制文件分析法就是依据 象是精确的,但是操作属性相对比较模糊。该本文主要是探究 Photoshop的源文件以字节分析的手段实现提取Photoshop操 使用Photoshop对象法获取PSD文档的信息.并阐述了PSD 作结果的信息。该方法准确但比较繁琐,但是实现的前提是必 文档信息的表达结构以及信息表达的实现。 须清楚了解Photoshop源文件的内部结构和含义。目前由于 adobe公司对于Photoshop文档说明书等内容保密,因此无法获 2 PSD文档的信息表达结构 取最新版本的信息,只能借助早期版本的相关说明进行部分信 PSD文档通过XML技术将其表达为XML文档结构,该结 息的获取。 构具有结构清晰、描述完整、检索方便、转换方便等特点。该结 (2)Photoshop对象分析法。Photoshop对象分析法就是借助 构通过元素及元素属性表达该节点对象信息,通过元素间的层 Photoshop高版本中出现的Photoshop对象控件实现信息提取。 次关系表达对象之间的包含和被包含关系,通过同层节点表达 目前提供的较高版本9.0中的Photoshop控件对象所提供的信 对象问的并列关系。PSD文档的信息表达结构如图1所示。 息并不是很多.只能提取部分Photoshop操作结果信息.但是该 l乜Q£I ME 卫 方法具有直接、准确的特点。二进制文件分析法和Photoshop对  l△ 量 S I 叵圃[互 ][卫囱 ] 象分析法都是针对Photoshop源文件操作结果信息进行直接分 匝衄囚耍 圃 析。这两种方法都是非常准确,虽然实现方法不同,但在信息提 匝耍 面五 面壶 五 匠 网 取内容上相差不大。 图1 PSD信息表达结构图 (3)操作记录Et志分析法。操作记录13志分析法就是通过 “DOCUMENT”为根节点,描述的是PSD文档的基本信息, 考试时对用户操作进行监控和记录。通过系统分析记录文件实 包括PSD文档的色彩模式、图像像素(即图像行数和列数)及颜 现用户操作的还原和信息获取。这种方法优点在于可以实现基 色深度等信息。在根节点内是“LAYERS”节点。描述的是图层号、 于用于操作过程的全程阅卷,能够获取操作过程中几乎所有的 图层名称及图层类型等信息,该节点包括n个结构相似的 操作信息,但是也存在一些不足。由于Photoshop的操作手段相 “LAYER”子节点。在“LAYER”子节点中描述的是具体图层的信 当丰富,大部分操作实现手段有鼠标操作、菜单操作、快捷键操 息,在该节点内有“ARTLAYER”子节点.有图层混合模式、图层 作等多种。同时用户在实现某一操作时可能进行重复操作或者 总体透明度、图层像素高度等参数.如果没有图层效果信息和文 分步操作,因此操作具有随意性和不确定性,导致对操作记录 本信息(即普通图层),则仅会显示该节点的内容。如果有图层效 日志分析不可能完全达到精确的效果。 果信息,则会显示在其子节点“EFFECT”中.该节点与节点 作者简介:孟书会(1984一),女,河南郑州人,浙江师范大学教师教育学院硕士研究生,研究方向为计算机软件。 ・14・ 软件导刊 2010年 “ARTLAYER”是并列关系,在“EFI'’ECT”节点中包括“DROP— SHADOW”、“OUTERGLOW”、“INNERGLOW”、“BEVEL”、“COL— OR”和“INNERSHAD0W”等子节点,在这些节点中又包含了各 自不同的参数。如果在图层中包含有文本信息,则会在“IAY. ER”子节点内的“ARTLAYER”子节点中出现“TEXTITEM”子节 点.该子节点中包含的就是文本的信息。 3信息表达实现 3.1实现原理 使用XML表达PSD文档,需要一个流程如图2所示。 图2 XML表达PSD文档流程图 首先载入PSD源文件,在载人PSD源文件的同时创建 XML文档。其次是进行文档基本信息分析,并用XML表达文 档的基本信息。再次是进人PSD图层信息分析阶段,在图层中 进行图层效果分析,如果在图层中含有文本,也会对文本信息 进行分析并将图层效果等信息进行XML表达。当图层全部分 析完毕后,关闭PSD文档,如果没有分析完毕就返回图层分析 阶段直至分析完毕,最后在关闭PSD文档之后,保存并关闭 XML文档。 3.2实现效果 通过运用Visual Basic工具编写程序使PSD文档转换为 XML文档,并使用XMLwriter工具查看某文档转换后的XML 文档.用XML表达PSD文档的基本信息如图3所示。 图3 PSD文件头XML表达图 在图3中.蓝色选中部分为该PSD文档用XML表达的基 本信息,包括PSD文档的色彩模式、图像像素(即图像行数和 列数)及颜色深度等信息。PSD文档的所有图层信息表达都是 在<LAYERS>…一</LAYERS>语句中,且每一层的图层信息是 在<LAYER>……</LAYER>语句中,对于普通的图层,即没有 任何图层效果及文本等信息。图层效果信息部分为空信息,用 语句<EFFECT></EFFECT>表示,文本信息是包含在<TEX. TlrrEM></TEXTITEM>语句中,在没有文本信息的图层中,没有 有关文本信息的表达,如图4所示。 图4 PSD图层信息XML表达图 图层中若有图层效果的信息时,有关图层效果的信息则会 出现在表示效果的语句中,如图5所示。 图5 PSD图层效果信息XML表达图 在表达图层效果的语句中包括了能够获取的PSD文档图 层效果及各自的参数信息,比如投影、外发光、内发光、内阴影 及斜面与浮雕等效果,每一个效果也包含了各自的参数表达。 比如混合模式、透明度、颜色等参数。在该PSD文档图层中包 含有文本信息,故该XML文档中也有图层文本信息的表达语 句,它是在语句<ARTLAYER>中的<TEXTITEM>语句中如图6 所示,选中的语句即为表达图层文本信息的语句。 图6 PSD图层文本信息XML表达图 PSD文档的图层可以同时包括文本信息和效果信息,也可 以只包括一个,或者都没有,如图7所示。 图7 PSD图层信息XML表达图 4结束语 以上关于基于XML表达的PSD文档信息的自动获取是 基于长期对PSD文档研究的经验所得,针对考试阅卷Photo— shop信息自动分析的实际需求,并结合Photoshop自动阅卷的 方向提出个人的见解.希望能获得更多的观点和看法,解决未 来Photoshop等学科的自动阅卷所面临的各种难题。 参考文献 [1]金炳尧,马永进,骆红波,等.阅卷信息的形式化描述及其应用 [J].计算机科学,2005(10). [2]ARENAS,MARCELO,LIBKIN,LEONID,A Normal Form for XML Documents[J].ACM Transactions on Database Systems,2004(3). [3] FOURER.R,GASSMANN,H.I,MA,J,MARTIN,R K.An XML— based schema for stochastic programs[J].Annals of Operations Re— seareh,2009(1). [4]周长敏.基于XML的网络考试系统的研究与实现[D].贵阳:贵州 师范大学,20o8. [5] BURSTEIN JETAL.Automated Evaluation of Essays and Short An— swers『A].Fifth International Computer Assisted Assessment Confer— ence[C].Lough boroush University,2001. [6] 张宏展,王建成,蔡宗琰.实用XML应用开发技术[M].北京:电子 工业出版社.2oo8. (责任编辑:周晓辉) 

因篇幅问题不能全部显示,请点此查看更多更全内容