`
pcx749qc
  • 浏览: 11416 次
社区版块
存档分类
最新评论

photoshop CS3 脚本入门

 
阅读更多

photoshop CS3 脚本入门
2009年09月14日
  这个入门教程实际上只是我阅读photoshop中自带的文档Photoshop CS3 Scripting Guide.pdf的一点笔记,对于Photoshop中的脚本,本人也是刚刚接触,因为对于设计人员,编程并不是熟悉的领域,本文自然十分简单,只为引起大家的兴趣,权当抛砖引玉。如果文中有任何错误,希望大家批评指正。
  photoshop提供了几种任务自动化的功能,其中包括动作、批处理和脚本。动作可以记录一些列的操作动作和选项,但这些步骤都必须是线性的,没有根据具体图像的情况来提供可供选择的操作。photoshop预设了一些常用的批处理任务,同时用户也可以根据动作来创建快捷批处理,这种批处理实际上也和动作存在同样的局限性。而脚本对文档的自动化处理则是最强大的,与动作相比,它提供了更多的可能性。他可以执行逻辑判断,重命名文档等操作,同时脚本文件更便于携带并重用。
  photoshop提供了3中脚本语法,分别是AppleScript(Mac平台),JavaScript扩展脚本(Mac平台和Windows平台),VBScript(Windows平台)。这里的示例采用的是通用的JavaScript扩展脚本,如果你编写过HTML中的JavaScript或者Flash平台中的ActionScript脚本,那么如下代码很容易理解。
  这里没有详细介绍JavaScript的语法,因为photoshop中的JavaScript扩展脚本也是参照于ECMAScript标准来实现的,它们的核心部分是相同的,photoshop只是添加了photoshop的DOM接口。如果你不熟悉JavaScript,那么任何一本介绍了“核心JavaScript”的书籍或网站都可以作为一个很好的参考。
  废话少说,开始第一个脚本吧。
  打开一个常用的文本编辑器(记事本即可),键入如下代码: 复制内容到剪贴板
  代码:
  var originalUnit = preferences.rulerUnits
  preferences.rulerUnits = Units.PIXELS
  var docRef = app.document.add(200, 200)
  var artLayerRef = docRef.artLayers.add()
  artLayerRef.kind = LayerKind.TEXT
  var textItemRef = artLayerRef.textItem
  textItemRef.contents = "Hello world!"
  docRef = null
  artLayerRef = null
  textItemRef = null
  app.preferences.rulerUnits = originalUnit然后保存文件,后缀名为.jsx,例如“helloworld.jsx”。
  打开Photoshop,文件――脚本――浏览,找到这个脚本文件,然后载入,看看效果吧。可以看到,脚本可以创建新的文档,同时可以创建新的图层,并操作图层的内容。很好很强大是吧。
  下面对于上段代码的解释:
  photoshop中提供了DOM来作为脚本语言编程的接口,通过这些接口来进行操作。DOM类似与一个属性结构,它的根就是Application,即photoshop,在Photoshop CS3 Scripting Guide中提供了一幅图,很清晰的说明了photoshop中DOM的结构,如下:
  我们几乎所有的脚本都是同这些对象打交道。我们通过“helloworld.jsx”这个例子来说明。(添加了注释,最好参照上图查看) 复制内容到剪贴板
  代码:
  /*
  保存当前设置的单位
  然后将单位设置为像素
  */
  var originalUnit = preferences.rulerUnits;
  preferences.rulerUnits = Units.PIXELS;
  /*
  创建一个新的文档,宽高都为200px
  */
  var docRef = app.documents.add(200, 200);
  /*
  为新文档添加一个新层
  设置层的类型为TEXT
  */
  var artLayerRef = docRef.artLayers.add();
  artLayerRef.kind = LayerKind.TEXT;
  /*
  设置文本内容为 "Hello world!"
  */
  var textItemRef = artLayerRef.textItem;
  textItemRef.contents = "Hello, World";
  /*
  清除对象的引用
  */
  docRef = null
  artLayerRef = null
  textItemRef = null
  /*
  将预设单位恢复为原来的默认值
  */
  app.preferences.rulerUnits = originalUnit;并不是很难,对吧。
  脚本的重用
  就像刚才所演示的,我们可以将脚本保存到任何地方,然后通过浏览来找到脚本。但是更好的方法是将脚本添加到photoshop的脚本菜单中,即将“helloworld.jsx”复制到 “photoshop安装目录\预置\脚本” 下,重新启动photoshop,就可以在[文件-脚本] 中直接使用这个脚本了。
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics