Photoshop 脚本如何将图像添加到图层

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

如何通过本地计算机上的位置抓取图像并将其插入到带有扩展脚本的图层中?

var doc = app.documents.add();
var layer = doc.artLayers.add();
var img = new File('~/Desktop/tanks.png'); 
layer.image = img; //I want to add the image to this layer

我似乎所能做的就是打开图像作为背景,在此过程中创建一个新的 Photoshop 文档;

var opened = open(img);

但我想要实现的是将多个图像作为多个图层打开到同一个文档中。这可以吗?

photoshop extendscript
4个回答
3
投票

使用找到的打开方法打开要合并的每个图像。然后循环浏览打开的文档并使用艺术图层对象上的复制方法将所有图层复制到单个目标文档。请参阅下面的代码片段,了解如何将单层图像复制到新文档。

    //copy the layer into the target document
    app.activeDocument = pSourceDocument;
    pSourceDocument.artLayers[0].duplicate(pTargetDocument); 

2
投票

我在这里找到了一个非常有用的脚本来执行此操作https://forums.adobe.com/message/3946944#3946944

我拿了这个脚本的一部分,它对我有用。首先,您需要将要替换图像内容的图层转换为智能对象(否则图层内容无法通过脚本替换)。为此,请在 Photoshop 中打开要修改的文件,选择图层,单击“图层”>“智能对象”>“分组为新智能对象”。现在这一层是一个智能对象。

然后使用以下代码创建脚本:

var replacementFile = new File("X:/file.jpg");
var theLayer = app.documents[0].artLayers.getByName("targetLayer");
theLayer = replaceContents(replacementFile);

////// replace contents //////  
function replaceContents (newFile) {  
// =======================================================  
var idplacedLayerReplaceContents = stringIDToTypeID( "placedLayerReplaceContents" );  
    var desc3 = new ActionDescriptor();  
    var idnull = charIDToTypeID( "null" );  
    desc3.putPath( idnull, new File( newFile ) );  
    var idPgNm = charIDToTypeID( "PgNm" );  
    desc3.putInteger( idPgNm, 1 );  
executeAction( idplacedLayerReplaceContents, desc3, DialogModes.NO );  
return app.activeDocument.activeLayer  
};  

0
投票

如果打开的图像是垂直的,请将其插入另一个垂直的 PSD 文件层,否则插入图像是水平的,然后将其插入水平 PSD 文件层 javascript for Photoshop


0
投票

这是Photoshop中非常常见的操作。通常,它是通过创建智能对象图层来完成的。然后,您可以将智能对象替换为您想要的图像。 (这通常在创建模型图像时使用,例如,您有一个 PSD 模板文档,其中的占位符图像将替换为您选择的图稿或设计。)请参阅此 Adobe 智能对象指南 了解更多信息关于他们如何工作。

如果您要做大量这项工作,我想指出的是,这个过程可以在 Photoshop 中轻松实现自动化。例如,假设您正在为在线商店创建大量模型图像。您可以使用以下两种方法之一在 Photoshop 中自动执行此过程,而不是手动替换智能对象并一次导出最终图像:

方法 1) Photoshop 脚本。这基本上是您编写并在 Photoshop 内部执行的代码,以自动运行指定的命令。从头开始编写并不容易,但是有一个有用的 Adobe 脚本编写指南 可以帮助您入门。此外,您可以在 Photoshop 内部使用一个脚本侦听器工具,您基本上可以在其中执行您想要执行的操作,并且它将执行这些命令的脚本代码记录到文件中。然后,您可以将记录的代码转换为 .jsx 代码,您将使用该代码通过 Photoshop 脚本自动执行此过程。如果您需要这方面的帮助,Adobe 社区论坛 有很多帖子专注于 Photoshop 脚本故障排除并使其正常工作。

方法2)使用Photoshop插件。这是更简单的解决方案,不需要任何计算机编程经验。有一个插件可以让您自动执行此过程,称为“批量替换智能对象”。因此,如果您的输入文件夹中有大量图像,您可以自动替换智能对象+导出最终图像。如果您的工作流程中有多个步骤(也许您正在使用多个 PSD 文档来创建多个模型图像),您也可以使用此插件设置多个步骤工作流程。然后只需单击一个按钮,点击运行,它就会自动为您批量替换智能对象。

© www.soinside.com 2019 - 2024. All rights reserved.