如何使用 javascript 将图像放置到 Photoshop 中的文档中

问题描述 投票:0回答:1

我正在寻找一个脚本,可以帮助我将“placefile”放入 Photoshop 中打开的文档中 - 这些文件位于同一位置。

重点是“placefile”有时有不同的名称,但它总是以“_01”结尾,并且它是一个 JPG 文件 - 有时它可以是 *.PSD。无论尺寸如何。

例如: 我有一个包含图像的文件夹,其中一个(此处为“*_24.jpg”)将用于在我创建添加一些组蒙版的操作后放置到其他文件夹中

这是一些截图 Files Placed to document

我已经尝试过了,但似乎有些不对劲。

#target photoshop
        
var pathOrig = app.activeDocument.path;
var refName = "_01.JPG"
        
function place() {
var fileRef = File(pathOrig+'/'+refName);
app.open(fileRef);
}
 
javascript photoshop photoshop-script
1个回答
0
投票

你的问题不清楚。但我猜您想要一种方法来编写将图像放入当前文档的脚本。我不知道你想要什么文件,所以我添加了一个文件对话框,它将过滤掉除末尾带有 _01.jpg 或 _01.psd 的所有内容。

您的代码不起作用,因为 a) 您没有调用 place 函数,b) 您没有向该函数传递任何参数,c) 文件路径不完整。

#target photoshop
   
// Switch off any dialog boxes
displayDialogs = DialogModes.ERROR; // OFF

// call the source document

// 563805325_a_m_s_reversibile_silent_down_jkt_patagonia_01.jpg
  

var filterFiles  = "*_01.JPG;*_01.PSD"; // I AM WINDOWS
var myFile = File.openDialog ("Choose the file to load from" , filterFiles);
if (myFile != undefined)
{
   place_it(myFile);
}


function place_it(afilename)
{
    // Place (embedded) file
   // =======================================================
   var idPlc = charIDToTypeID( "Plc " );
   var desc81 = new ActionDescriptor();
   var idIdnt = charIDToTypeID( "Idnt" );
   desc81.putInteger( idIdnt, 4 );
   var idnull = charIDToTypeID( "null" );
   desc81.putPath( idnull, new File( afilename ) );
   var idFTcs = charIDToTypeID( "FTcs" );
   var idQCSt = charIDToTypeID( "QCSt" );
   var idQcsa = charIDToTypeID( "Qcsa" );
   desc81.putEnumerated( idFTcs, idQCSt, idQcsa );
   var idOfst = charIDToTypeID( "Ofst" );
   var desc82 = new ActionDescriptor();
   var idHrzn = charIDToTypeID( "Hrzn" );
   var idPxl = charIDToTypeID( "#Pxl" );
   desc82.putUnitDouble( idHrzn, idPxl, 0.000000 ); //X offset
   var idVrtc = charIDToTypeID( "Vrtc" );
   var idPxl = charIDToTypeID( "#Pxl" );
   desc82.putUnitDouble( idVrtc, idPxl, 0.000000 ); // Y offset
   var idOfst = charIDToTypeID( "Ofst" );
   desc81.putObject( idOfst, idOfst, desc82 );
   executeAction( idPlc, desc81, DialogModes.NO );
}
 
© www.soinside.com 2019 - 2024. All rights reserved.