我想我已经知道你想要什么了。我发现 ExtendScript 编写代码非常尴尬,并且倾向于使用更强大的日常工具在 Photoshop 之外执行自动化操作。我会选择 ImageMagick 和 bash。 ImageMagick 是免费的,可用于 Windows,将两个图像合成在另一个之上的基本命令是
convert image1.png image2.png -composite result.png
当然,您可以将任何或所有 PNG 更改为 TIF、JPG 或任何您喜欢的。
因此,对于您的问题,我制作了一个包含几个组的示例文件来展示这个概念,如下所示:
Photoshop 文件可用here。
放大Layers 调色板(上图右侧)查看我制作的两组。
然后转到文件->脚本->将图层导出到文件,然后选择如下选项:
这将为您导出以下文件:
layers_0000s_0002_Layer A.png
layers_0000s_0001_Layer B.png
layers_0000s_0000_Layer C.png
layers_0001s_0003_Layer 1 - Red.png
layers_0001s_0002_Layer 2 - Green.png
layers_0001s_0001_Layer 3 - Blue.png
layers_0001s_0000_Layer 4 - Magenta.png
注意格式是xxx<GROUP>s_xxx<LAYER>xxx.png
现在您可以使用此bash 脚本轻松创建组的所有排列。我认为 Windows BATCH 文件会非常相似 - 虽然我只在胁迫下做 Windows !!!
#!/bin/bash
i=0
# Iterate over Group 0 files
for a in *0s_*.png; do
j=0
# Iterate over Group 1 files
for b in *1s_*.png; do
convert "$a" "$b" -composite out_${i}_${j}.png
((j++))
done
((i++))
done
它为您提供这些输出文件:
out_0_0.png
out_0_1.png
out_0_2.png
out_0_3.png
out_1_0.png
out_1_1.png
out_1_2.png
out_1_3.png
out_2_0.png
out_2_1.png
out_2_2.png
out_2_3.png
只是为了好玩,我把它们放在一个蒙太奇中,你会得到这个:
请注意,如果您有 3 个组,您将需要在脚本中添加第三个内部循环,将 3 个图像合成在一起的命令将更像这样(因为-composite 选项采用了前面的两个图像):
convert image1.png image2.png -composite image3.png -composite result.png
或者,你可能会发现你可以使用
convert -background none image1.png image2.png image3.png -flatten result.png