我需要创建一个自动化程序,将两个图像合并到一个分层文件中(与 Photoshop 图层一样分层),以便通过 Photoshop 内部的批处理进一步处理图像。我尝试过 ImageMagick、psd_tools、PIL 和其他一些东西。其中大多数创建单个分层文件(例如,即使它是 TIF)或多页文件。 Photoshop 无法识别这个多页文件,只会读取第一张图像,这使得该文件对我来说毫无用处。
我能够创建一个分层文件,就像我需要的那样,使用layeredimage.io,但它似乎支持的唯一多层格式是.ORA(开放光栅),Photoshop 不支持它。吉普可以应付。顺便说一句,
layeredimage.io
似乎能够保存分层的PSD,但返回“未实现”错误。我也无法以任何其他格式保存分层文件(例如 xcf 或 tif)。
所以,此时我有点进退两难。我有两个选择:
每个人都有自己的问题:
我似乎无法理解这个 scriptfu 是如何工作的,也无法找到有关 save-psd 命令参数的更多详细信息。我不断遇到与“image”变量相关的错误。我只需要打开文件(我可以在 python 脚本中执行此操作)并运行一个命令(导出为)
我发现这是一个常见问题,但我找不到适合我的答案。
from gimpfu import *
返回错误:ModuleNotFoundError: No module named 'gimpfu'
。
我目前正在安装了 gimp 和 Python 2.x 的 Fedora 中运行该脚本,通过快速搜索,我可以在 gimpfu.py
中找到 usr/lib64/gimp/2.0/python
文件,这意味着它存在于我的计算机中。
我也在我的 Windows 机器(将用于生产)中进行了测试,但它也不起作用。
下面是迄今为止的脚本:
import layeredimage.io as layered
from PIL import Image
# from gimpfu import *
# TODO: FIND A WAY TO MAKE VSCODE READ GIMPFU IN /USR/LIB64/GIMP/2.0/PYTHON/GIMPFU.PY
def png_to_tif(file_name):
"""
Converts a PNG file to TIF and returns the TIFF file path
"""
png = Image.open(file_name)
tif_name = file_name.replace("png", "tif")
tiff = png.save(tif_name)
return tif_name
base_file = layered.openLayerImage("/home/user/Pictures/imaginer/test1.tif")
imageDimensions = base_file.dimensions
mask_png = "/home/user/Pictures/imaginer/alpha.png"
mask_tif = png_to_tif(mask_png)
mask = Image.open(mask_tif)
img_layered = base_file.insertImageAsLayer(mask,'python',1)
ora_file = "/home/user/Pictures/imaginer/pqpBR.ora"
layered.saveLayer_ORA(ora_file, base_file)
我尝试检查是否拥有所需的所有软件包,尝试了与 gimp 交互的其他方法,但到目前为止,没有任何效果。
在Imagemagick中,要创建简单的分层PSD,您必须创建PSD展平图层。您还必须颠倒图像的顺序。所以对于
输入:
Unix IM 6 语法:
convert lena.jpg mandril3.jpg zelda1.jpg redhat.jpg \( -clone 0-3 -flatten \) -reverse layered.psd
对于 Windows,删除括号中的 \s。对于 IM 7,将转换更改为 magick