Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/468.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 就地粘贴Photoshop脚本_Javascript_Photoshop - Fatal编程技术网

Javascript 就地粘贴Photoshop脚本

Javascript 就地粘贴Photoshop脚本,javascript,photoshop,Javascript,Photoshop,对于Photoshop脚本编写人员(javascript),我编写了一个脚本,用于复制合并图像区域并将其粘贴到另一个文档中。困扰我的是,粘贴的图像粘贴到屏幕中间,而不是选择坐标 所以第一个图像是2000px乘以2000px,我用脚本复制合并一个500px乘以500px的区域,然后粘贴到另一个500px乘以500px的文档中。唯一的问题是粘贴的图像被扑通一声放在文档的中间,因此,如果复制的区域有一些透明像素,有时它不会粘贴到正确的位置 Photoshop有一个名为“粘贴到位”的函数,你可以通过编辑

对于Photoshop脚本编写人员(javascript),我编写了一个脚本,用于复制合并图像区域并将其粘贴到另一个文档中。困扰我的是,粘贴的图像粘贴到屏幕中间,而不是选择坐标

所以第一个图像是2000px乘以2000px,我用脚本复制合并一个500px乘以500px的区域,然后粘贴到另一个500px乘以500px的文档中。唯一的问题是粘贴的图像被扑通一声放在文档的中间,因此,如果复制的区域有一些透明像素,有时它不会粘贴到正确的位置

Photoshop有一个名为“粘贴到位”的函数,你可以通过编辑>粘贴特殊>粘贴到位来访问它,这当然解决了这个问题。对我来说,问题是我需要知道“粘贴到位”的javascript代码,这样它就可以从我的脚本中实现这一点


有人知道吗?

将这些变量添加到代码的开头:

cTID = function(s) { return app.charIDToTypeID(s); };
sTID = function(s) { return app.stringIDToTypeID(s); };
用于粘贴到位的功能是:

function pasteInPlace(enabled, withDialog) {
    if (enabled != undefined && !enabled)
      return;
    var dialogMode = (withDialog ? DialogModes.ALL : DialogModes.NO);
    var desc1 = new ActionDescriptor();
    desc1.putBoolean(sTID("inPlace"), true);
    desc1.putEnumerated(cTID('AntA'), cTID('Annt'), cTID('Anno'));
    executeAction(cTID('past'), desc1, dialogMode);
  };
将函数添加到脚本的末尾

然后使用:

pasteInPlace();
在代码中调用函数

我是通过使用xtools actionfileTOJavascript.jsx得到的

希望这有帮助

这篇文章可能会有帮助: