如何使用Python将多个PNG输出为分层图像文件PSD/XCF

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

在发布这个问题之前我已经查看了多个答案,但发现这些答案很难理解。

问题是:

我目前有一个脚本,它组合了来自 7 个不同文件夹的总共 7 张 png 文件来创建单个 png 图像。 该脚本从每个文件夹中随机选择一个 png,为最终的单个 png 图像创建唯一的组合。 该脚本允许您设置所需的图像数量,并根据选择的图像数量创建图像数量,每个图像都有自己独特的组合。

我想做的是为创建的每个组合创建一个 XCF、PSD 或任何其他易于访问/开源的分层图像文件,每个图层应该是从 7 个文件夹中选择的每个 png 文件。

我无法在这里发布完整的代码,但与问题最相关的代码在这里:

创建每个组合

    com1 = Image.alpha_composite(im1, im2)
com2 = Image.alpha_composite(com1, im3)
com3 = Image.alpha_composite(com2, im4)
com4 = Image.alpha_composite(com3, im5)
com5 = Image.alpha_composite(com4, im6)
com6 = Image.alpha_composite(com5, im7)

# Convert to RGB
# rgb_im = com5.convert('RGB')
rgb_im = com6.convert('RGBA')

file_name = str(item["tokenId"]) + ".png"
rgb_im.save("./images/" + file_name)
dump_meta(all_images[count - 1]

任何帮助将不胜感激,并感谢您花时间阅读本文。

python
1个回答
0
投票

我知道太晚了,无法回答,但下次可能会帮助别人

psd = PSDImage.new(mode='RGBA', size=(width, height), color=(0, 0, 0, 0))

layer = PixelLayer.frompil(
    image,
    psd,
    layer_name="image"
)
original_layer.opacity = 255
original_layer.blend_mode = BlendMode.NORMAL
psd.append(original_layer)

#Similarly using a loop create layers and insert them into psd

print(f"PSD file generated with dimensions: {width} x {height}")


psd_bytes = io.BytesIO()
psd.save(psd_bytes)
© www.soinside.com 2019 - 2024. All rights reserved.