Photoshop脚本指南
Photoshop 脚本指南
⼀. 介绍
关于本⼿册:
本⼿册介绍了如何在Mac OS和Windowse上编写Adobe®Photoshopo CC脚本。
第1章介绍了本⼿册中使⽤的基本约定
第2章简要概述了脚本、如何执⾏脚本和Photoshop对象模型(object model)
第3章介绍了Photoshop专有的对象和组件,并描述了为Photoshop应⽤程序编写脚本的⾼级技术。本⼿册为三种语⾔分别提供了代码⽰例, 涉及:Apple Script、VBScript、JavaScript
注意:每种语⾔都有单独的Photoshop脚本参考信息,可以通过安装时提供的脚本参考⼿册,也可以通过每种语⾔的对象浏览器。参见第21页的“查看Photoshop的AppleScript字典”和第22页的“查看Photoshop的类型库(VBS)”。有关使⽤扩展脚本对象模型浏览器的信息,请参阅JavaScript⼯具指南。
第4章涵盖了动作管理器,它允许您编写针对Photoshop功能的脚本,⽽这些功能在scriptinq接⼝中是⽆法访问的。
注意: 请查看随Photoshop附带的README⽂件,了解最新消息、⽰例脚本和有关未解决问题的信息。
约定
代码和特定语⾔的⽰例以下⾯样式显⽰:
app.documents.add
当提到AppleScript、VBScript和JavaScript时,使⽤了⼏种约定。请注意以下缩写:
AS :AppleScript
VBS :VBScript的缩写
JS :JavaScript
术语“命令”既指AppleScript中的命令,也指VBScript和VBScript中的⽅法。
在提到特定属性和命令时,本⼿册遵循该属性的AppleScript命名约定,VBScript和JavaScript风格的命名出现在括号中,例如:
display dialogs (DisplayDialogs/ displayDialogs)属性是应⽤程序对象的⼀部分。在这个案例中,display dialogs指AppleScript 风格的属性名,DisplayDialogs和displayDialogs分别是VBScript风格以及JavaScript风格的属性名。
对于较⼤的代码块,脚本⽰例在单独的⾏中列出。
AS
layer 1 of layrt set 1 of current document
VBS
appRef.ActiveDocumrnt.LayerSets(1).Layers(1)
JS
app.activeDocument.layerSets[0].layers[0]
最后,表格有时也会被⽤于展⽰不⽤脚本语⾔的不同写法。
⼆. Photoshop脚本基础
本章提供了Photoshop脚本的概述,描述了脚本语⾔AppleScript、VBScript和JavaScript的脚本⽀持,以及如何执⾏脚本,并介绍了Photoshop 对象模型(object model)。本章也提供了⼀个如何编写第⼀个Photoshop脚本的简单⽰例。
如果您熟悉脚本或编程语⾔,您很可能想跳过本章的⼤部分内容。请使⽤以下列表来查您要的信息。
有关Photoshop对象模型的更多信息,请参见第11页的“Photoshop对象模型”。
有关脚本语⾔选择的信息,请参阅*脚本编写指南(Introduction to Scripting)*的介绍。
如何使⽤为Photoshop专门创建的脚本,请参见第3章,第21页的“脚本化Photoshop”。
有关Photoshop对象和命令的详细信息,请使⽤本次安装提供的三个参考⼿册中的参考信息:Adobe photoshop CC AppleScript脚本参考、Adobe photoshop CC Visual Basic脚本参考和Adobe Photoshop CC JavaScript脚本参考。
注意:您还可以通过这三种脚本语⾔的对象浏览器查看关于Photoshop对象和命令的信息。参见第21页“查看Photoshop对象、命令和⽅法”。
脚本概览
脚本的概述脚本是⼀系列命令,告诉Photoshop执⾏⼀组指定的操作,⽐如对打开的⽂档中的被选中的图层应⽤不同的过滤器。这些操作可以很简单,只影响⼀个对象,也可以很复杂,影响Photoshop⽂档中的多个对象。这些操作可以只调⽤Photoshop,也可以调⽤其他应⽤程序。
脚本使重复的任务⾃动化,并且经常作为⼀种创造性的⼯具来简化那些可能太耗时⽽⽆法⼿⼯完成的任务。例如,您可以编写⼀个脚本来⽣成特定图像的多个本地化版本,或者收集关于图像集合使⽤的各种颜⾊配置⽂件的信息。
如果您是脚本编程新⼿,您应该熟悉脚本编写指南(Introduction to Scripting)介绍中提供的基本脚本编程信息。
为什么使⽤脚本⽽不是动作?
如果你使⽤过Photoshop动作(Actions),你就已经熟悉了重复任务⾃动化的巨⼤好处。脚本允许您通过添加Photoshop动作⽆法使⽤的功能来扩展这些好处。例如,您可以使⽤脚本⽽不能使⽤动作完
成以下操作:
您可以添加条件逻辑(conditional logic),以便脚本根据当前情况⾃动做出“决策”。例如,您可以编写⼀个脚本根据⼀张图⽚中选择区域的⼤⼩来决定添加什么颜⾊的边界:“如果所选区域⼩于2×4英⼨,则添加⼀个绿⾊边框;否则添加⼀个红⾊边框。”
单个脚本可以执⾏涉及多个应⽤程序的操作。例如,根据您使⽤的脚本语⾔,您可以在同⼀个脚本中同时使⽤Photoshop和另⼀个Adobe Creative Cloud应⽤程序(如Adobe Illustrator“CC)
您可以使⽤脚本打开、保存和重命名⽂件
您可以将脚本从⼀台计算机复制到另⼀台计算机。如果您正在使⽤⼀个动作,然后切换计算机,您必须重新创建该动作。
脚本为⾃动打开⽂件提供了更多的灵活性。在动作中打开⽂件时,只能使⽤固定的⽂件位置,⽽在脚本中,可以使⽤变量保存⽂件路径,此时⽂件路径是可以更改的。
注意:有关Photoshop操作的更多信息,请参见Photoshop帮助。
Photoshop中的脚本⽀持
Photoshop⽀持三种脚本语⾔:AppleScript、VBScript和JavaScript。AppleScript和JavaScript运⾏在Mac OS上,JavaScript和VBScript运⾏在Windows上。有关如何选择使⽤哪种脚本语⾔的信息,以及有关在Adobe应⽤程序中使⽤这些语⾔的其他信息,请参阅脚本编写指南(Introduction to Scripting)。
参见第18页的“创建和运⾏AppleScript”,第19页的“创建和运⾏VBScript”,第19页的“创建和运⾏JavaScript”。
您可以从AppleScript和VBScript脚本调⽤JavaScript脚本。参见第10页的“从AS或者VBS中执⾏JavaScript”。
⼀个⽂件要被Photoshop识别为有效的脚本⽂件,它必须有正确的扩展名:
脚本类型⽂件类型扩展名平台
AppleScript编译的脚本OSAS⽂件.scpt Mac OS
JavaScript text.js/.jsx Mac OS & Windows
VBScript text.vbs Windows
Visual Basic可执⾏的.exe Windows JavaScript⽀持
要让Photoshop将JavaScript⽂件识别为有效的脚本⽂件,它必须使⽤. js或.jsx扩展名。在Mac OS上,使⽤两个扩展函数的脚本的⽅式没有区别。在Windows上,如果脚本⽂件是在Photoshop中打开的,那么使⽤.js和.jsx扩展也没有区别。但是,如果通过双击启动脚本,.js扩展名的脚本将使⽤Microsoft JScript引擎去解释代码,并且不能启动Photoshop。对于Windows,最好使⽤.jsx扩展名,因为它使⽤ExtendScript引擎解释器。
使⽤JavaScript编写的脚本可以从Adobe Photoshop Scripts菜单(⽂件>脚本)中访问,该菜单提供了对您的JavaScripts的快速和容易的访问。通过将JavaScript⽂件放⼊磁盘的适当位置,可以直接从Photoshop菜单中访问它。
若要在Scripts菜单中安装JavaScript选项,请将其放⼊Scripts⽂件夹(Photoshop CC 2018/Presets /Scripts)。“脚本”⽂件夹中的脚本名称(不包括⽂件名扩展名)将显⽰在“脚本”菜单中。在“脚本”菜单中可以安装任意数量的脚本。
在运⾏Photoshop时添加到Scripts⽂件夹中的脚本在下次启动应⽤程序之前不会出现在Scripts菜单中。
scripts⽂件夹和⼦⽂件夹中的所有脚本都会显⽰在⽂件> scripts菜单的顶层。添加⼦⽂件夹并不会将层次结构组织添加到Scripts菜单。
执⾏其他脚本
Scripts菜单末尾的Browse项(⽂件> Scripts > Browse)允许您执⾏Scripts⽂件夹中没有安装的脚本。您还可以使⽤Browse选择上次启动应⽤程序后安装在scripts⽂件夹中的脚本。
选择Browse将显⽰⼀个⽂件浏览器对话框,允许您选择要执⾏的脚本⽂件。只有js或.jsx⽂件显⽰在浏览对话框中。当您选择⼀个脚本⽂件时,它将以与已安装的脚本相同的⽅式执⾏。
启动脚本
在启动时,Photoshop会执⾏它在启动⽂件夹中到的所有.jsx⽂件。
在Windows上,⽤户定义脚本的启动⽂件夹是:c:\Program Files\Common Files\ Adobe\Startup Scripts CC\Adobe
Photoshop
在Mac OS上,为⽤户定义的脚本启动⽂件夹是:-/Library/Application Support/Adobe/startup scripts CC/Adobe Photoshop
js脚本编程入门如果您的脚本位于这个所谓的主启动⽂件夹中,则所有其他Adobe Creative Suite 6应⽤程序在启动时也将执⾏此脚本。如果这样的脚本只需要在Photoshop中执⾏,那么它必须包含如下代码:
if(BridgeTalk.appName =="photoshop"){
//continue executing script
}
额外细节,请参阅JavaScript⼯具指南(the JavaScript Tools Guide)。
从AS或VBS中调⽤的JavaScripts脚本
您可以利⽤JavaScript的平台独⽴性,直接从AppleScript或者VBScript中调⽤JavaScript。您既可以执⾏单个JavaScript语句,也可以执⾏完整的JavaScript⽂件。有关更多信息,请参阅脚本编写指南(Introduction to Scripting)。
Photoshop 对象模型(Object Model)
⽂档对象模型(DOM)是⼀个应⽤程序编程接⼝(API),它允许您通过脚本语⾔访问⽂档的各个组件(如为该应⽤程序定义的那样)。有关Adobe对象模型和⽀持它们的脚本语⾔的更多信息,请参阅脚本编写指南(Introduction to Scripting)。
Photoshop DOM由Photoshop应⽤的分层表⽰、应⽤使⽤的⽂档以及⽂档的组件这3块组成。DOM允许您以编程⽅式访问和操作⽂档及其组件。例如,通过DOM,您可以创建⼀个新⽂档,向现有⽂档添加⼀个层,或者更改⼀个层的背景颜⾊。Photoshop⽤户界⾯提供的⼤部分功能都可以通过DOM获得。
理解Photoshop DOM,以及Photoshop应⽤程序与⽂档相关的DOM的各个层⾯,将使脚本编写更容易。
容器层次结构
Photoshop对象模型是⼀个包含层次结构,这意味着模型中的对象⼀定程度上由包含它们的对象标识。在Photoshop中,Application对象位于层次结构的顶部。Application包含⼀个Documents集合。Documents集合包含数个Documents对象。⼀个Documents对象包含⼀
个ArtLayers集合、⼀个HistoryStates集合、⼀个Layers集合、⼀个layerset集合和⼀个Channels集合。
通过在DOM中使⽤命令或⽅法,您可以告诉Photoshop⽂档添加和删除对象,或设置或更改单个对象属性,如颜⾊、⼤⼩和形状。在下⾯的图中,层次结构中的每个节点代表Photoshop DOM中的⼀个类。
Photoshop对象模型使⽤元素(AppleScript)或集合(VBScript、JavaScript)作为⽅便的类分组⽅式。在下⾯的对象模型图中,我们还没有显⽰对象元素或集合。并不是所有的类都与⼀个集合相关联。然⽽,⼀些关键类是按元素或集合分组的。以下元素/集合存在于Photoshop 中:Art Layers, Channels,Color Samplers. Count Items, Documents, Layers, Layer Comps, Layer Sets. History states, Notifiers, Path Items, Path Points Sub Path Items, and Text Fonts. (美术层、通道、颜⾊采样器、计数项、⽂档、图层、图层⽐较、图层集、历史状态、通知器、路径项、路径点⼦路径项和⽂本字体)。有关元素和集合的更多信息,请参见脚本编写指南(Introduction to Scripting)。
注意:在Photoshop中,VBScript集合索引来⾃1⽽不是o。这与其他0基址的VBScript数组形成了对⽐。
Application和document类
Application类是Photoshop对象模型层次结构的根。为了正确运⾏,脚本必须定向到适当的应⽤程序。参见第22页的“定位和引⽤应⽤程序对象”。
Document类⽤于修改⽂档。通过使⽤Document对象,您可以裁剪、旋转或翻转画布,调整图像或画布的⼤⼩,并修剪imaqe。您还可以使⽤Document对象来获取当前图层,然后保存当前⽂档,并在当前⽂档内或不同⽂档之间进⾏复制和粘贴。有关使⽤Document对象的更多信息,请参见第23页的“在
脚本中创建新对象”和第34页的“使⽤⽂档对象”。
Layer类
Photoshop有两种类型的图层:⼀种是可以包含图像内容的艺术图层(Art Layer),另⼀种是图层集(Art Layer),可以包含0个或多个艺术图层。
⼀个Art Layer是⽂档中的⼀个层类,它允许您处理⼀个图像元素,并且不会⼲扰其他图像。图像通常由多个层组成,由⼀个层集定义。你可以通过改变组成图层的顺序和属性来改变图像的组成。
⼀个`Text Item⼀种特殊类型的艺术图层,它允许您向imaqe添加类型。在Photoshop中,⽂本项被实现为艺术图层的属性。有关⽂本项的更多信息,请参见第41页的“使⽤⽂本项对象”。
层集是⼀个包含多个层的类。把它想象成你桌⾯上的⼀个⽂件夹。由于⽂件夹可以包含其他⽂件夹,所以层集是递归的。也就是说,⼀个层集可以调⽤对象模型层次结构中的另⼀个层集。有关层的更多信息,请参见第36页的“使⽤层对象”
Layer Comp类允许你在⼀个单独的⽂档中创建、管理和查看⼀个布局的多个版本。通道类通道类⽤于存储图像颜⾊的像素信息。图像颜⾊决定了可⽤通道的数量。例如,RGB图像有四个默认通道:⼀个⽤于每个主⾊,⼀个⽤于编辑整个图像。您可以让红⾊通道处于活动状态,以便只操作图像中的红⾊像
素,或者您可以选择⽴即操作所有通道,这些通道与⽂档模式相关,称为组件通道。除了组件通道
外,Photoshop还允许您创建其他通道。您可以创建⼀个专⾊通道,⼀个掩蔽区域通道,和⼀个选定的区域通道通道的命令或⽅法的通道对象,您可以创建,删除和复制通道。你也可以检索⼀个通道的直⽅图,改变它的种类或者改变当前的通道选择。有关通道的更多信息,请参见第46页的“使⽤通道对象”。选择类⽤于指定要使⽤的活动⽂档(或活动⽂档的选定层)中的像素区域。有关选择的更多信息,请参见第42页的“使⽤选择对象”
Type the following script.NOTE: Entering comments is optional.
//Hello word Script
// Remember current unit settings and then set units to
// the value expected by this script
var originalUnit = preferences.rulerUnits
preferences.rulerUnits = Units.INCHES
// Create a new 2x4 inch document and assign it to a variable
var docRef = app.documents.add(2,4)
// Create a new art layer containing text
var artLayerRef = docRef.artLayers.add()
artLayerRef.kind = LayerKind.TEXT
// set the contents of the text layer.
var textItemRef = Item
// Release references
docRef =null
artLayerRef =null
textItemRef =null
/
/ Restore original ruler unit setting
app.preferences.rulerUnits = originalUnit
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论