2016-02-05 56 views
0

所以我的最終目標是在角落創建4個圓形選區,但在查看文檔並進行了多次搜索後,除了矩形選區之外,我找不到任何其他信息。我相信有應該是是一個解決方案,但我不能真正想到任何不涉及爲一個圈設置一個巨大的邊界像素位置陣列(我甚至不知道會工作,因爲我' m相當新的Photoshop腳本和它的工作原理)。如何在Javascript中使用Photoshop創建圓形或橢圓形選區?

非常感謝!

回答

0

Photoshop腳本API沒有完成,有時你會陷入困境試圖完成某些任務。處理這個問題的好工具是Adobe自己的ScriptListener插件。它需要一點時間才能找出它所吐出的代碼,但這將有助於填補腳本的漏洞。下面是我用做圓選擇一個功能:

function makeCircle(left,top,right,bottom,antiAlias){ 
 

 
var circleSelection = charIDToTypeID("setd"); 
 
    var descriptor = new ActionDescriptor(); 
 
    var id71 = charIDToTypeID("null"); 
 
     var ref5 = new ActionReference(); 
 
     var id72 = charIDToTypeID("Chnl"); 
 
     var id73 = charIDToTypeID("fsel"); 
 
     ref5.putProperty(id72, id73); 
 
    descriptor.putReference(id71, ref5); 
 
    var id74 = charIDToTypeID("T "); 
 
     var desc12 = new ActionDescriptor(); 
 

 
     var top1 = charIDToTypeID("Top "); 
 
     var top2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(top1, top2, top); 
 

 
     var left1 = charIDToTypeID("Left"); 
 
     var left2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(left1, left2, left); 
 

 
     var bottom1 = charIDToTypeID("Btom"); 
 
     var bottom2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(bottom1, bottom2, bottom); 
 

 
     var right1 = charIDToTypeID("Rght"); 
 
     var right2 = charIDToTypeID("#Pxl"); 
 
     desc12.putUnitDouble(right1, right2, right); 
 

 
    var id83 = charIDToTypeID("Elps"); 
 
    descriptor.putObject(id74, id83, desc12); 
 
    var id84 = charIDToTypeID("AntA"); 
 
    descriptor.putBoolean(id84, antiAlias); 
 
executeAction(circleSelection, descriptor, DialogModes.NO); 
 
}

+0

這正是我一直在尋找。非常感謝!我將不得不運行幾次並調整一些東西,以便我能夠完全理解它。 –