如何从命令行创建分层的PSD文件?(How to create a layered PSD file

2019-06-26 13:27发布

我需要创建与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

如何创建一个PSD文件,其中每个图像是在其自己的层和一层是直接在另一个上面?

或者说,有没有其他的命令行工具,让我做到这一点?

更新:比GIMP命令行任何其他的选择吗?

Answer 1:

如果ImageMagick的都不行,我想看看瘸子命令行 。

下面的命令在交互式控制台中创建一个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)

这将需要转换成一个脚本福脚本(.scm文件的),并且可以从这样的命令行执行:

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


Answer 2:

我使用下面的命令行。 我没有在Photoshop中打开生成的PSD遇到的任何问题,但是每一层显示为背景层,你必须把它转换成一个真正的第一层,以编辑层排序。

下面是窗口的命令行。 给定图像的列表(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" )没有任何问题。



Answer 3:

您可以使用-adjoin到的图像序列相结合。

convert -size 100x100             \
        -alpha set plasma:fractal \
        -alpha set plasma:fractal \
        -adjoin                   \
        out.psd
  • 需要用于PSD编码器的alpha通道。
  • 的图像的顺序是底层到顶层。
  • 有很多与Photoshop和GIMP根据设置的兼容性问题。

使用:

  • ImageMagick的6.5.4-6
  • Photoshop CS2的


Answer 4:

这里是给你一些有用的链接:

  • ImageMagick的并与层PSD图像
  • 一些有用的PSD的注意事项
  • PSD层- ImageMagick的论坛

第二个环节是用PHP来使用,但它执行ImageMagick的,只能使用命令,而不是所有的PHP语法,只有的EXEC代码行。

希望我帮你!



Answer 5:

我同意乔恩·加洛韦和GIMP控制台是一个更好的选择。 这里是我的脚本:

(define (pngtopsd width height png-paths psd-path)
(define (add-layers image png-paths) 
    (if (null? png-paths) 0 
        (let* 
            ((png (car png-paths))
            (new-layer (car (gimp-file-load-layer 0 image (car png)))))

            (gimp-image-insert-layer image new-layer 0 -1)
            (gimp-item-transform-2d new-layer 0 0 1 1 (cadr png) (caddr png) (cadddr png))
            (add-layers image (cdr png-paths))
        )
    ))

(let* 
    ((png (car png-paths))
    (image (car (gimp-file-load 1 (car png) (car png))))
    (drawable (car (gimp-image-get-active-layer image))))

    (gimp-image-resize image width height 0 0)
    (gimp-item-transform-2d drawable 0 0 1 1 (cadr png) (caddr png) (cadddr png))       
    (add-layers image (cdr png-paths))
    (file-psd-save 0 image drawable psd-path psd-path 1 0)
    (gimp-image-delete image)
))

你只需把这个脚本放到文件名称为“pngtopsd.scm”你瘸子“脚本”目录下(“C:\ Program Files文件\ GIMP 2 \共享\ GIMP \ 2.0 \脚本\”适用于Windows),你可以创建分层PSD从每一层的变换(平移或旋转)PNG图片的列表。 用法示例:

gimp-console-2.8.exe -i -b              ^
  "(pngtopsd (list                      ^
   (list \"c:/../1.png\" 0 500 500)     ^
   (list \"c:/.../2.png\" 0.7 200 1000) ^
   (list \"c:/.../3.jpg\" -0.5 1000 0)) ^
   \"c:/.../result.psd\")"

(list \"c:/.../2.png\" 0.7 200 1000)是指:

  • 0.7是图像的旋转角度(以弧度为单位)
  • 200 1000是一个图像上的x和y偏移


Answer 6:

您可以创建一个ImageMagick的PSD分层,但要注意的第一个图像实际上是为预览图像(即所有层的复合材料)。

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

将创建一个2分层的PSD。



文章来源: How to create a layered PSD file from command line?