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文件.scptMac OS
JavaScripttext.js/.jsxMac OS & Windows
VBScripttext.vbsWindows
Visual Basic可执行的.exeWindows

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

如果您的脚本位于这个所谓的主启动文件夹中,则所有其他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 = artLayerRef.textItem
textItemRef.contents= "Hello, World"
// Release references
docRef = null
artLayerRef = null
textItemRef = null
// Restore original ruler unit setting
app.preferences.rulerUnits = originalUnit

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值