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

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

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

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

过VBScript对PSD文档信息的读取方法,实现Photoshop作业的机器阅卷。

PhotoShop(以下简称Ps)作为当前最热门的平面设计软
件.其应用领域也口益,’泛,从早期的商业领域扩展到r如今
的寻常百姓家,Ps技术甚至已经成为当前中学生选修的一门
课程。但在本课程的教学中有一个棘手的『口j题,就是学生的
Ps作品只能通过人工阅卷。费时又费力。能否通过计箅机技
术实现自动阅卷.提高阅卷效率。从而解决许多信息技术教师
的阅卷之苦.同时培养学生独立思考、自行纠错的自学能力.
提升学生的学习效率。基于对PS作业进行机器阅卷的设想,
经过多年研究,总结出一套有效的解决方法,即利用Ps脚本
程序和PsD文档的二进制数据结构读取义件信息.通过分析
比对实现机器阅卷。
在现有书籍和网络中.关于Ps脚本程序相关的介绍还相
当少。然而在对PhotoShop CS版本以卜的安装目录中观察发
现.有一个脚本指南文件夹.其中详细介绍了操纵PS的3种
脚本:AppleScript、JavaScript和VBScript,通过对其中提供的
“示例脚本”的研究,发现通过脚本能操作Ps实觋各种效果,
同样也能读取PSD文档的许多信息,这就为机器阅卷提供丁
重要的基础。现在.通过VBSeript来介绍PsD文档信息的渎
取方法。
比如:对“C:\香皂包装盒psd”文档进行分析,要求检阅
“舍有天然精华素”网层中的文本内容,字体、字号和颜色等
设置参数.文档囝层信息如图I所示。


PhotoShop作业的机器阅卷

第一步.在VB工程中引用Ps对象库。如果安装的是
PhoLoShop CS版本.引用Adobe PhotoShop 8.0 Object Library
Ps对象库(如果是PS CS2版本的,对应版本号为9.0,依次
类推)。如果安装的是Ps 7.0版本,需要事先安装PhotoShop
Scriptting support程序.才能支持脚本读取.而对干PS7.0以下
的版本是不支持脚本应JH的。
第二步,定义Ps应用程序对象变量:Dim appRefAs New
photoshopApplication.当对变量下逃相关指令后.程序会肩动
Ps。如果该变蜃定义之前已经打开了PS.则不会重复启动Ps。
如果不希望看到PS应用程序窗n.可以使用“appReLvisible=
False”指令隐藏.但还是需要等到Ps程序肩动完毕后才能执
行下一条指令。
第三步,定义PSD文档对象变量,并打开待阅文档:
Dim doeRef As photoshop.Document
Set docRef=appRef.open("C:\香皂包装盒.psd”)
第四步,遍历图层信息,确定存在文本图层“含有天然精
华索”。在Ps的VBA对象模型中,各图层信息存放在数组对
象layers巾.通过对layers数组的遍历,可以确定是否存在目
标阿层.同时根据layers对象的kind属性值确定目标图层是否
为文本类型.如是.则读取文本信息。
Dim layerExist as boolean’是否存在目标图层的标志值
Dim psLayerName as string’目标图层名称www.jybase.net
psLayerName=”含有天然精华素”
IaverExlst=faIse
For i=1 To docRef.layers.count
If docRef.layers(i).Name=psLayerName Then
layerExist=True
Exit For
EndIf
Next
If layerExist and docRef ArtLayers(psLayerName)Kind=
psTextLayer Then
textContents=docref.ArtLayers(psLayerName)Textltem.
Contents‘文本内容
fontNarne=docref.ArtLayers(psLayerName).Textltem font
’字体
fontSize=Int(docrefArtLayersIpsLayerName).Textltem.
Size}’字号
fontColor=docref ArtLayers IpsLayerName)Textltem

color.RGB.HexValue’文本颜色
end if
第五步.显示阅卷结果:
If not layerExist Then
msgbox“不存在日标图层,不能阅卷。”
else
If docRef.ArtLayers(psLayerName).Kind<>psTextLayer
Then
Msgbox“目标图层不是文本图层,不能阅卷。”
Else
Msgbox“文本内容:”&textContents&vbCrLf&
“字体:”&fontName&vbCrLf&“字号:”&fontSize&
vbCrLf&“文本颜色:”&fontColor
End if
End if7
第六步,关闭PS和相关对象.阅卷结束:
docref.Close
appRef.Quit
Set appRef=Nothing
Set docRef=Nothing

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

百度搜索更多

谷歌搜索更多

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

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


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

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