我需要将一些图像分组到一个photoshop文件中,并尝试寻找更优化的路径。我知道我可以使用applescript来做这样的事情。
tell application id "com.adobe.Photoshop"
activate
open file (CurrentImg)
duplicate layer 1 of current document to end of NewDocRef
end tell
-- CurrentImg is some file path and NewDocRef is a path to some other open document
我可以使用open打开每个图像一次打开并将其移动到一个文档中。我的问题是,是否有人有更好的方法将图像直接放入打开的文档中。寻找只是拖动图像的效果。我愿意使用javascript函数来完成它。 (我不知道javascript,但我可以设法理解我读到的内容。)
答案 0 :(得分:2)
我是用ExtendScript编写的。 在Osx Photoshop 2014 CC上测试
// based on this stackoverflow
// http://stackoverflow.com/a/2780624/1770432
var main = function(arguments, body) {
if (app.documents.length < 1) {
// abort no file to place imports in
return;
}
// filter does not work on OSX
var files = File.openDialog("Select your files to place", "*.*", true);
if (files.length < 1 || files === null) {
// abort
// nothing selected or canceld
return;
} else {
// got something
var doc = app.activeDocument;
// loop all files
for (var i = 0; i < files.length; i++) {
// we use a try catch to sort out files Photoshop cant handle
try {
var curr_file = app.open(files[i]); // one of them
curr_file.selection.selectAll();
curr_file.selection.copy();
curr_file.close(SaveOptions.DONOTSAVECHANGES);
doc.paste();
} catch (e) {
// need to skip files Photoshop can't open
// could also be done via a file filter
continue;
}
}
}
}
main();
答案 1 :(得分:0)
我一直在寻找同样的事情。打开所有文件,选择并复制粘贴内容对最终用户来说并不是一个非常好的视觉体验。
使用Photoshop Scriptlistener plugin,您可以听取操作并在javascript中为您编写。然后,您可以根据自己的需要重播或修改它们。
这是(第一行除外)是我用听众捕获的内容。它会要求您输入文件并将其放在当前打开的文档中。您可以使用此处提供的代码@fabiantheblind轻松地根据您的情况对其进行修改。
var sourceFile= File.openDialog('pick an image');
var idPlc = charIDToTypeID( "Plc " );
var desc3 = new ActionDescriptor();
var idnull = charIDToTypeID( "null" );
desc3.putPath( idnull, sourceFile);
var idFTcs = charIDToTypeID( "FTcs" );
var idQCSt = charIDToTypeID( "QCSt" );
var idQcsa = charIDToTypeID( "Qcsa" );
desc3.putEnumerated( idFTcs, idQCSt, idQcsa );
executeAction( idPlc, desc3, DialogModes.NO );
您可以将其粘贴到extendscript工具包中,看看它是否有效。我有它在CC工作,没有测试它为cc2014