免费教程_免费网赚教程_破解版软件-寂涯网络学习基地

当前位置: 主页 > 系统综合 > 各类编程 > 用vb编写PhotoShop作业的机器阅卷机(2)

用vb编写PhotoShop作业的机器阅卷机(2)

时间:2012-05-19 10:32来源:未知 整理:寂涯网络 点击:


由上述程序可以看出,如果能够理清Ps脚本支持对象的
模型结构,机器阅卷还是很轻松的。图2是PS脚本支持对象
中的几个重要对象和属性。
vb对象和属性
Ps脚本支持对象提供了十分清晰的对象模型结构,所以
使程序的编制和调试显得相对透明和直观。但缺点也是明显
的,首先它只适合于PS 7.0以I:的版本;其次,各版本所提供
的对象模型结构不尽相同,使脚本阅卷法存在一定的兼容性问
题;还有,阅卷前必须启动Ps程序,等待时间较长,对于配
置较差的机器是个考验;而滤镜效果则只能勉强通过像索色彩
值比较法进行阅卷.效果很不理想。
鉴于脚本阅卷法存在的一些问题。采用PSD文档二进制
数据直接读取法町以解决部分问题。要通过文件的二进制数据
直接获取相关信息.首先要了解文件的数据结构。根据PSD
文档格式说明书的解释。PsD文档总体分为5个数据区.依次
是:文件头(File Header)、色彩模式数据(Color Mode Data)、
图像资源区(Image Resources)、图层和蒙版信息(Layer and
Mask Information)和图像数据区(Image Data),它们的数据分
布如图3所示。

各数据区的详细数据结构如表l一表5所示。

以上5张表格只是PsD文件的总体数据结构.其中各图
层信息和图像数据町参考PsD文档格式说明书。现以检测“C:
、香皂包装盒.psd”图像的宽度和高度为例。说明如何使用-二进
制方式阅卷的方法。
第一步。确定图像宽度和高度值存放地址。根据表l,可
以确定宽度值存放位置始于第15字节,高度值存放位置始于
第19字节,均用4字节存储。PSD文档中整数的存放格式采
用“Little Endian”方式,即高位在前低位在后,根据这个特
点对数据进行转换。转换函数如下:
Function get4ByteInteger(fileid As Integer,linkPos As
Long)As Long
’fileid为文件号,linkPos为地址指针
Dim al As Byte,a2 As Byte,a3 As Byte,a4 As Byte,sl
As Long
Get *fileid,linkPos.a 1
Get #fileid,linkPos+1.a2
Get #fileid,linkPos+2,a3
Get #fileid,linkPos+3,a4
sl=a4+a3+256&+a2’256&‘256&+al’256&
。256&。256&
getLong=sl
End Function
第二步,读取宽高数据:
Dim fileid As Integer,linkPos As Long,sign as string
fileid=FreeFile()
Open“C:\香皂包装盒.psd“For Binary As槲ileid
sign=InputS(4,#fileid)
if sign=”8BPS”then
imageHeight=get4ByteInteger(fileid,1 5)
imageWidth=get4ByteInteger(fileid.1 9)
Else
Msgbox“目标文件不是photoshop源文件,不能阅卷!。
End if
Close #fileid
采用PSD文档二进制数据直接读取法。无需安装Ps,无
需启动Ps,也不存在版本问题,兼容性好,阅卷效率很高.
不过调试略显嗣难。可借助winHex等二进制浏览编辑软件辅
助调试程序。但这种方法对滤镜效果也只能采用像素检测法。



 

本页地址 http://www.jybase.net/biancheng/20120519929.html

百度搜索更多

谷歌搜索更多

顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------

评价:
昵称: 验证码:点击我更换图片
推荐内容
赞助商
赞助商


关于本站免责声明视频更新google百度地图视频地图RRS订阅

如有什么问题请在本站留言,或发邮件到 hxt167#foxmail.com