2012-11-20 45 views
0

我想將整個文檔中的選區寬度值(var x2)與當前位置相對移動。看起來在早期版本中有一個翻譯功能,完全符合我的要求,但此功能現在提供了「此版本的Photoshop可能不支持」錯誤。我正在Photoshop Extended CS6中工作。 這是我的選擇有:從當前位置相對移動選區

var x2 = 720; 
var y2 = 350; 

    docRef.selection.select(Array (Array(0, 0), Array(x2, 0), Array(x2, y2), Array(0, y2))); 

我試圖讓該方程式,但我得到的是垃圾的選擇甚至不是長方形了。

回答

1

我認爲翻譯(在早期版本)不工作,或正在過時,因爲它是基於點,而不是像素based.1點= 4.86127像素

我傾向於使用此功能獲取矩形或橢圓選擇。我發現比每次定義四個限制(頂部,左側,右側,底部)而不是四組限制更容易。

selectThis(10, 10, 90, 90, "rect") 

// function selectThis (top, left, right, bottom, ellipse or rect [default], antialias [default]) 
// ---------------------------------------------------------------------------- 
function selectThis(top, left, right, bottom, shape, aa) 
{ 
    srcDoc.selection.deselect() 
    // ======================================================= 
    var id1 = charIDToTypeID("setd"); 
    var desc1 = new ActionDescriptor(); 
    var id2 = charIDToTypeID("null"); 
    var ref1 = new ActionReference(); 
    var id3 = charIDToTypeID("Chnl"); 
    var id4 = charIDToTypeID("fsel"); 
    ref1.putProperty(id3, id4); 
    desc1.putReference(id2, ref1); 
    var id5 = charIDToTypeID("T "); 
    var desc2 = new ActionDescriptor(); 
    var id6 = charIDToTypeID("Top "); 
    var id7 = charIDToTypeID("#Pxl"); 
    desc2.putUnitDouble(id6, id7, top); 
    var id8 = charIDToTypeID("Left"); 
    var id9 = charIDToTypeID("#Pxl"); 
    desc2.putUnitDouble(id8, id9, left); 
    var id10 = charIDToTypeID("Btom"); 
    var id11 = charIDToTypeID("#Pxl"); 
    desc2.putUnitDouble(id10, id11, bottom); 
    var id12 = charIDToTypeID("Rght"); 
    var id13 = charIDToTypeID("#Pxl"); 
    desc2.putUnitDouble(id12, id13, right); 


    if (shape == "Elps" || shape == "oval") 
    { 
     var id14 = charIDToTypeID("Elps"); 
     desc1.putObject(id5, id14, desc2); 
     var id15 = charIDToTypeID("AntA"); 
     if (aa == true || aa == undefined) 
     { 
      desc1.putBoolean(id15, true); 
     } 
     else 
     { 
      desc1.putBoolean(id15, false); 
     } 
    } 
    else 
    { 
     var id16 = charIDToTypeID("Rctn"); 
     desc1.putObject(id5, id16, desc2); 
    } 

    executeAction(id1, desc1, DialogModes.NO); 
} 

希望這是有幫助的。

+0

確實有用,謝謝:) – PTS

0

沒關係,這很簡單我想我的腦袋裏有個結。

這完美的作品:

var offset = 720; 
var x2 = 720+offset; 
    var y2 = 350; 

    docRef.selection.select(Array (Array(0+offset, 0), Array(x2,0), Array(x2, y2), Array(0+offset, y2))); 
相關問題