Python 将图像文件作为图层加载到Photoshop
我有一个现有的PSD文件,其中包含两个图像。我的目标是将其中一个图像更改为位于同一文件夹中的另一个图像。我检查了其他问题,发现使用Python可以以不同的方式实现相同的结果,但是我找不到适合我所需实现的解决方案。(我想通过Photoshop的COM界面来实现) 实际上,我可以访问图层并设置其属性,但不能更改源图像/对象Python 将图像文件作为图层加载到Photoshop,python,python-3.x,photoshop,Python,Python 3.x,Photoshop,我有一个现有的PSD文件,其中包含两个图像。我的目标是将其中一个图像更改为位于同一文件夹中的另一个图像。我检查了其他问题,发现使用Python可以以不同的方式实现相同的结果,但是我找不到适合我所需实现的解决方案。(我想通过Photoshop的COM界面来实现) 实际上,我可以访问图层并设置其属性,但不能更改源图像/对象 import win32com.client import os # opens ps psApp = win32com.client.Dispatch("Photoshop.
import win32com.client
import os
# opens ps
psApp = win32com.client.Dispatch("Photoshop.Application")
# opens file
psApp.Open(r"F:\dev\ae\f1.psd")
# new image to add
img1 = r"F:\dev\ae\img1.png"
doc = psApp.Application.ActiveDocument
# new blank layer
doc.ArtLayers.Add()
# get layer to change
layer = doc.ArtLayers[1]
对于各种语言,我发现Python中的大多数方法和属性名称都基于
VBScript版本
,但我甚至无法找到解决方案。当我在ArtLayers
上调用Add()
方法时,它会创建一个空白层,我没有找到其他方法对图像/智能对象执行相同的操作。嘿,我在寻找同样的东西,在挖掘了您找到的文档中的示例代码后,我找到了这项工作
psApp.Load(img1)
psApp.ActiveDocument.Selection.SelectAll()
psApp.ActiveDocument.Selection.Copy()
psApp.ActiveDocument.Close()
psApp.ActiveDocument.Paste()
我的意思是这有点愚蠢,但它是有效的。如果不是最后一个文档,则可能需要在粘贴之前重新选择该文档