2017-03-18 91 views
1

我正在尋找一個函數來加載圖像並將它放置在photoshop中特定的x,y座標處。在photoshop中加載圖像文件並將其放置在特定位置

我有以下代碼:

var docRef = app.activeDocument; 

function MoveLayerTo(fLayer,fX,fY) { 

var Position = fLayer.bounds; 
Position[0] = fX - Position[0]; 
Position[1] = fY - Position[1]; 

fLayer.translate(-Position[0],-Position[1]); 
} 

var doc = app.documents.add(); 
MoveLayerTo(doc, 12, 24) 

} 

但是,如果我嘗試運行它,我得到:

Error 21: undefined is not an object. 

上發生的事情錯在這裏的任何想法和我怎樣才能讓我的代碼工作?

回答

0

您不指定圖層,而是提供完整的文檔。正如你在Reference中看到的,Document沒有叫bounds的成員。

此外,您正在處理一個空的圖像文件(調用documents.add並使用新創建的圖像),但我想你想在活動文檔上工作。

您可能想要做的是選擇提供的文檔的最頂層。無論如何,如果這是一個普通的圖像(如PNG或JPEG),(唯一)現有圖層被鎖定(即你不能翻譯它),你不能解鎖背景層,所以你應該:

  • 第一複製圖層
  • 刪除原始層
  • 翻譯您層
  • 將圖像縮小到只有一個背景圖像
var layerOrig = docRef.layers[0]; 
var layerCopy = layerOrig.duplicate(); 
layerOrig.remove(); 
MoveLayerTo(layerCopy, 12, 24) 
docRef.flatten(); 
// and maybe you want to save 

小心:做這個只與平面圖像(如巴紐,JPEG格式)但你最終拼合圖像(其降低到一個單一的背景層不這樣做,與.PSD圖片)。如果您然後保存該圖像,則所有圖層信息都會丟失!

相關問題