【问题标题】:Copy and paste Photoshop layers with Python使用 Python 复制和粘贴 Photoshop 图层
【发布时间】:2019-06-11 14:01:28
【问题描述】:

我有 40 个 Photoshop 文件,我需要复制所有文件的顶层并将这些图层粘贴到一个 Photoshop 文件中。第二个,背景层在所有文件中都是相同的,所以我只需要一次。

我试过 psd-tools 但他们的文档说他们不支持复制图层。我按照here 的建议尝试了 comtypes.client,但它只是打开了文件,我无法让它复制和粘贴任何内容。现在我正在尝试使用 PIL(枕头),但我不确定如何让它复制和粘贴图层而不是整个图像。我找到了this,并从中得到了下面的代码,但它只返回一个空列表,我不确定从那里去哪里让它复制我需要的图层。

import os
from PIL import Image, ImageSequence

image = Image.open("Baroccip1 - Drawing 1.psd")
layers = [frame.copy() for frame in ImageSequence.Iterator(image)]

从 40 个包含两个图层的文件中,我需要得到一个包含一个背景图层的文件,以及从 40 个文件中粘贴的 40 个图层。如果有人可以帮助我完成 PIL 代码以复制图层,那就太好了,但也非常感谢任何其他解决方案。

【问题讨论】:

    标签: python-3.x python-imaging-library photoshop


    【解决方案1】:

    您可以使用 Photoshop 的一种本地脚本语言来执行此操作。

    以下是使用 Javascript 的方法:

        dupeLayer();
        function dupeLayer() {
            //Make sure your destination document is the only open document before running
            //Select source folder and filter for PSD files
            var psdFolder = Folder.selectDialog("Choose source PSD folder");
            var workFiles = psdFolder.getFiles("*.psd");
            //Loop through all PSDs in psdFolder
            for (i = 0; i < workFiles.length; i++) {
                app.open(new File(workFiles[i]));
                //Duplicate topmost layer to first open document
                app.documents[1].layers[0].duplicate(app.documents[0],ElementPlacement.PLACEATBEGINNING);
                app.documents[1].close();
            }
        }
    

    【讨论】:

      【解决方案2】:

      这是一个示例代码,在 Python 中复制/粘贴对象,取自 https://github.com/lohriialo/photoshop-scripting-python/blob/master/CopyAndPaste.py

      psReplaceSelection = 1
      selection_area = ((0, 0), (x2, 0), (x2, y2), (0, y2))
      sourceDoc.Selection.Select(selection_area, psReplaceSelection, 0, False)
      sourceDoc.Selection.Copy()
      
      destinationDoc.Paste()
      

      【讨论】:

        猜你喜欢
        • 2018-06-03
        • 1970-01-01
        • 2011-04-19
        • 2015-07-08
        • 1970-01-01
        • 2015-02-19
        • 1970-01-01
        • 1970-01-01
        • 2018-01-05
        相关资源
        最近更新 更多