2011-12-17 152 views
3

我是新來的Photoshop腳本編寫腳本,它將循環遍歷圖層,修剪它們並導出。到目前爲止,我擁有完成此腳本所需的大部分元素。我唯一無法找到的是如何顯示/隱藏單個圖層。我發現了一些功能來顯示/隱藏所有圖層,但沒有任何一個圖層。使用Photoshop腳本(JSX)顯示/隱藏圖層的功能

/////////////////////////////////////////////////////////////////////////////// 
// selectAllLayers - select all layers (Select > All Layers) 
/////////////////////////////////////////////////////////////////////////////// 
function selectAllLayers() { 
    var ref = new ActionReference(); 
    ref.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt')); 
    var desc = new ActionDescriptor(); 
    desc.putReference(cTID('null'), ref); 

    executeAction(sTID('selectAllLayers'), desc, DialogModes.NO); 
} 

/////////////////////////////////////////////////////////////////////////////// 
// hideLayers - hide all selected layers (Layer > Hide Layers) 
/////////////////////////////////////////////////////////////////////////////// 
function hideLayers() { 
    var ref = new ActionReference(); 
    ref.putEnumerated(cTID('Lyr '), cTID('Ordn'), cTID('Trgt')); 
    var list = new ActionList(); 
    list.putReference(ref); 
    var desc = new ActionDescriptor(); 
    desc.putList(cTID('null'), list); 
    executeAction(cTID('Hd '), desc, DialogModes.NO); 
} 

function cTID(s) {return app.charIDToTypeID(s);} 
function sTID(s) {return app.stringIDToTypeID(s);} 

任何想法?

回答

5

在Photoshop中沒有太多腳本,但據我所知Layer對象有一個.visible布爾屬性,您可以使用它來單獨切換每個圖層的可見性。

例如選定/有源層切換可視性:

app.activeDocument.activeLayer.visible = !app.activeDocument.activeLayer.visible; 
通過你所需要的圖層和切換自己的知名度

或循環: //示例隱藏奇數層同時顯示偶數層的基礎上,他們是指數

var doc = app.activeDocument; 
for(var i = 0 ; i < doc.layers.length;i++){ 
    doc.layers[i].visible = (i % 2 == 0); 
} 

我建議在Photoshop CS5 Javascript Reference(PDF鏈接)或ExtendScript工具包的對象模型查看器中查看相應的內容。 您可以通過幫助>對象模型查看器訪問它,並從瀏覽器組合框/列表中選擇Adob​​e Photoshop CS5對象庫到Photoshop DOM中可用的類列表。