Ale*_*ysh 20 photoshop command-line psd imagemagick
我需要使用ImageMagick或Linux平台上提供的任何其他命令行工具创建分层PSD文件.由于我需要在Linux服务器上执行此操作,因此无法使用Photoshop脚本.
下面的ImageMagick命令创建具有单个图层的PSD文件,其中两个图像(此处:等离子体分形)一个位于另一个之下.(我使用ImageMagick 6.5.3-10 2009-07-31 Q16,最新的MacPorts版本.)
convert -size 100x100 plasma:fractal plasma:fractal -append out.psd
Run Code Online (Sandbox Code Playgroud)
如何创建一个PSD文件,其中每个图像都在其自己的图层中,而一个图层直接位于另一个图层之上?
或者,是否有任何其他命令行工具可以让我这样做?
更新:除GIMP命令行之外的任何其他选项?
Jon*_*way 14
如果ImageMagick不起作用,我会看看Gimp命令行.
以下命令在交互式控制台中为我创建了一个2层PSD文件:
> (gimp-image-new 200 200 0)
(1)
> (gimp-layer-new 1 200 200 0 "layer-1" 100 0)
(2)
> (gimp-layer-new 1 200 200 0 "layer-2" 100 0)
(3)
> (file-psd-save 0 1 0 "test.psd" "test.psd" 0 0)
> (gimp-image-add-layer 1 2 -1)
> (gimp-image-add-layer 1 3 -1)
> (file-psd-save 0 1 1 "test.psd" "test.psd" 0 0)
Run Code Online (Sandbox Code Playgroud)
这需要转换为script-fu脚本(.scm文件),并且可以从命令行执行,如下所示:
gimp -i -b '(your-script-name "test.psd" 200 200)' -b '(gimp-quit 0)'
Run Code Online (Sandbox Code Playgroud)
我使用下面的命令行.我在Photoshop中打开生成的PSD时没有遇到任何问题,但每个图层都显示为背景图层,您必须先将其转换为真正的图层才能编辑图层顺序.
这是Window的命令行.给定图像列表(im1.xxx,im2.xxx等,im1是底层),图层的标签列表("label1","label2"......):
convert ^
( ^
-page +0+0 ^
-label "label1" ^
im1.xxx[0] ^
-background none ^
-mosaic ^
-set colorspace RGB ^
) ^
( ^
-page +0+0 ^
-label "label2" ^
"im2.xxx"[0] ^
-background none ^
-mosaic ^
-set colorspace RGB ^
) ^
( ^
-clone 0--1 ^
-background none ^
-mosaic ^
) ^
-alpha Off ^
-reverse ^
"out.psd"
也就是说,对于每一层,你都有类似的东西
( ^
-page +0+0 ^
-label "optional_label" ^
im1.xxx[0] ^
-background none ^
-mosaic ^
-set colorspace RGB ^
)
该层的标签/名称是可选的(除去-label如果没有)的[0]在im1.xxx[0]检索图像文件中的第一图像,在情况下存在在Exif缩略图.
在Unix/OSX上,您必须用反斜杠保护括号,并且行继续符也会更改为\:
\( \
-page +0+0 \
-label "optional_label" \
im1.xxx[0] \
-background none \
-mosaic \
-set colorspace RGB \
\)
如果图像名称包含特殊字符,则可以使用"(例如"c:\my im1.png")保护它们而不会出现任何问题.
您可以使用 -adjoin 组合图像序列。
convert -size 100x100 \
-alpha set plasma:fractal \
-alpha set plasma:fractal \
-adjoin \
out.psd
Run Code Online (Sandbox Code Playgroud)
使用: