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

如果您的腳本位於這個所謂的主啓動文件夾中,則所有其他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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章