How to create a layered PSD file from command line?

Alexander Gladysh picture Alexander Gladysh · Jul 23, 2009 · Viewed 15.4k times · Source

I need to create a layered PSD file with ImageMagick or any other command-line tool available on Linux platform. Since I need to do this on Linux server, I can't use Photoshop scripting.

The ImageMagick command below creates PSD file with a single layer, where two images (here: plasma fractals) are positioned one below another. (I use ImageMagick 6.5.3-10 2009-07-31 Q16, latest available in MacPorts.)

convert -size 100x100 plasma:fractal plasma:fractal -append out.psd

How do I create a PSD file where each image is in its own layer, and one layer is directly above another?

Or, is there any other command line tool that would allow me to do this?

Update: Any other options than GIMP command line?

Answer

Jon Galloway picture Jon Galloway · Jul 25, 2009

If ImageMagick won't work, I'd look at Gimp command line.

The following commands created a 2-layer PSD file for me in the interactive console:

> (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)

That would need to be converted into a script-fu script (.scm file) and could be executed from the command-line with something like this:

gimp -i -b '(your-script-name "test.psd" 200 200)' -b '(gimp-quit 0)'