2017-07-19 49 views
1

我需要使用Javascript功能来在Photoshop中创建一个空白的画布和打开的图像添加到特定位置,即画布上(通过使用Javascript不能手动四处移动图像)Javascript-如何将图像自动移动到Photoshop中的画布?

我试过这段代码:

//create canvas 
var canvas= app.documents.add(5000,5000,72); 
var ctx = canvas[0].getContext('2d'); 

var inputFolder = Folder.selectDialog("Select a folder to process"); 
var fileList = inputFolder.getFiles(); 

//open file and auto contrast it 
for (var i = 0, len = fileList.length; i < len; i++){ 
    var i = 1; 
    var filename = fileList[i].name; 
    var img = app.open(File(inputFolder + "/" + filename)); 
    img.activeLayer.autoContrast(); 
} 

出现错误canvas[0].getContext('2d')。它表示get.Contec t函数不存在。 我也尝试过canvas = elem.find('canvas')[0]var canvas = document.createElement('canvas'),他们都没有工作。

有谁知道它出错了吗?

+1

你声明一个变量名为'i'环路内,但已经有一个名为'i'变量。声明已经存在的变量并不好,但最糟糕的是,在你的代码中'i'将始终有值1,因此它将会形成无限循环。 –

+1

+您正在混合Web API和Photoshop脚本API。我不太了解photoshop脚本API,但是如果它确实支持HTMLCanvasElement和它的'getContext'方法,我会非常惊讶。 – Kaiido

回答

0

您在文件列表中循环错误。无限错误。尝试这样的事情。

for (var i = 0; i < fileList.length; i++) 
{ 
    try 
    { 
     var doc = open(fileList[i]); 
    } 
    catch(e) 
    { 
     alert("Failed to open file!"); 
    } 
}