21

ImageMagick または Linux プラットフォームで利用可能なその他のコマンドライン ツールを使用して、レイヤー化された PSD ファイルを作成する必要があります。Linux サーバーでこれを行う必要があるため、Photoshop スクリプトを使用できません。

以下の ImageMagick コマンドは、2 つの画像 (ここではプラズマ フラクタル) が上下に配置された単一レイヤーの PSD ファイルを作成します。(私は ImageMagick 6.5.3-10 2009-07-31 Q16 を使用しており、MacPorts で最新のものを入手できます。)

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

各画像が独自のレイヤーにあり、あるレイヤーが別のレイヤーのすぐ上にある PSD ファイルを作成するにはどうすればよいですか?

または、これを可能にする他のコマンド ライン ツールはありますか?

更新: GIMP コマンドライン以外のオプションはありますか?

4

6 に答える 6

16

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)

これは script-fu スクリプト (.scm ファイル) に変換する必要があり、コマンドラインから次のように実行できます。

gimp -i -b '(your-script-name "test.psd" 200 200)' -b '(gimp-quit 0)'
于 2009-07-25T06:10:01.613 に答える
8

以下のコマンドラインを使用します。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ない場合は削除します)。Exifにサムネイルが存在する場合、inは画像ファイルの最初の画像を取得します[0]im1.xxx[0]

Unix / OSXでは、括弧を円記号で保護する必要があり、行継続文字も次のように変更され\ます。

\( \ -page +0+0 \ -label "optional_label" \ im1.xxx[0] \ -background none \ -mosaic \ -set colorspace RGB \ \)

画像名に特殊文字が含まれている場合は、"(例"c:\my im1.png")で問題なく保護できます。

于 2012-11-22T14:14:28.887 に答える
5

-adjoin を使用して、イメージ シーケンスを組み合わせることができます。

convert -size 100x100             \
        -alpha set plasma:fractal \
        -alpha set plasma:fractal \
        -adjoin                   \
        out.psd
  • PSD コーダーにはアルファ チャネルが必要です。
  • 画像の順番は下層から上層です。
  • 設定によっては Photoshop や GIMP との互換性の問題がたくさんあります。

使用:

  • イメージマジック 6.5.4-6
  • フォトショップ CS2
于 2009-07-30T01:00:06.750 に答える
4

ここにいくつかの便利なリンクがあります:

2番目のリンクはPHPで使用することですが、ImageMagickを実行し、すべてのPHP構文ではなくコマンドのみを使用し、 execコードの行のみを使用します。

私があなたを助けてくれることを願っています!

于 2009-07-22T22:43:48.257 に答える
2

Jon Galloway に同意します。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」という名前のファイルにgimp の「スクリプト」ディレクトリ ( Windows の場合は「c:\Program Files\GIMP 2\share\gimp\2.0\scripts\」 ) 内に配置するだけで、レイヤードを作成できます。各レイヤーの変換 (平行移動または回転) を含む PNG 画像のリストからの PSD。使用例:

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 シフトです。
于 2014-06-11T14:00:59.183 に答える