如何用JavaScript在Photoshop中放置结尾含_01的图片到打开文档
Photoshop JS脚本:置入指定后缀的文件到当前文档
你的原脚本问题在于用app.open()直接打开了目标文件,而非将其置入到已打开的Photoshop文档中,同时也没支持PSD格式和可变前缀的文件名需求。以下是修正后的脚本:
#target photoshop // 确保当前有打开的文档 if (app.documents.length === 0) { alert("请先打开一个Photoshop文档!"); exit(); } var activeDoc = app.activeDocument; var docPath = activeDoc.path; var targetFolder = new Folder(docPath); // 筛选目录下所有以_01.jpg或_01.psd结尾的文件(不区分大小写) var targetFiles = targetFolder.getFiles(function(file) { var fileName = file.name.toLowerCase(); return (fileName.endsWith("_01.jpg") || fileName.endsWith("_01.psd")) && file instanceof File; }); if (targetFiles.length === 0) { alert("未找到符合条件的_01.jpg或_01.psd文件!"); exit(); } // 遍历找到的文件并置入到当前文档 for (var i = 0; i < targetFiles.length; i++) { var fileRef = targetFiles[i]; try { // 置入文件 var placedLayer = activeDoc.placedItems.add(fileRef); // 可选:将置入的图层居中对齐文档 placedLayer.position = [ (activeDoc.width - placedLayer.width) / 2, (activeDoc.height - placedLayer.height) / 2 ]; // 可选:提交置入的图层(如果需要栅格化) // placedLayer.commit(); alert("已成功置入文件:" + fileRef.name); } catch (e) { alert("置入文件失败:" + fileRef.name + "\n错误信息:" + e.message); } }
脚本说明:
- 先校验是否有打开的PS文档,避免无文档时触发报错
- 自动遍历当前文档所在目录,筛选出所有后缀为
_01.jpg或_01.psd的文件(不区分大小写,比如abc_01.JPG也能被识别) - 使用
placedItems.add()方法完成「置入」操作,这才是将文件添加到现有文档的正确方式,而非打开新文档 - 加入错误处理逻辑,避免单个文件置入失败导致整个脚本中断
- 附带可选的居中对齐和图层提交操作,你可以根据自己的动作需求调整
内容的提问来源于stack exchange,提问作者Tsunami Lâm
相关产品推荐
相关产品推荐

