2009-07-22 5 views
19

Ich brauche erstellen eine geschichtete PSD-Datei mit ImageMagick oder einem anderen Befehlszeilenprogramm auf Linux-Plattform. Da ich dies auf einem Linux-Server tun muss, kann ich kein Photoshop-Scripting verwenden.Wie erstellt man eine PSD-Datei mit mehreren Ebenen über die Befehlszeile?

Der folgende ImageMagick-Befehl erstellt eine PSD-Datei mit einer einzelnen Ebene, in der zwei Bilder (hier: Plasmafraktale) untereinander positioniert werden. (Ich benutze ImageMagick 6.5.3-10 2009-07-31 Q16, spätestens in MacPorts zur Verfügung.)

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

Wie kann ich eine PSD-Datei erstellen, in dem jedes Bild in einer eigenen Ebene, und eine Schicht direkt bin über einem anderen?

Oder gibt es ein anderes Befehlszeilen-Tool, mit dem ich das tun könnte?

Update: Alle anderen Optionen als GIMP-Befehlszeile?

Antwort

13

Wenn ImageMagick nicht funktioniert, würde ich Gimp command line betrachten.

Die folgenden Befehle erstellt eine 2-Schicht für mich PSD-Datei in der interaktiven Konsole:

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

, das in eine Script-Fu-Skript (.scm Datei) umgewandelt werden müßte und könnte aus ausgeführt werden die Befehlszeile mit etwas wie folgt aus:

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

Es ist nicht so, dass ImageMagick nicht funktioniert, es ist, dass ich nicht weiß, wie es richtig funktioniert ... Gimp ist eine interessante Idee, danke. Allerdings bin ich ein bisschen besorgt über die Notwendigkeit, es auf dem Server ohne X Window System und Gnome zu installieren ... Wäre es nicht ein bisschen zu schwer? –

+0

Gimp ist definitiv schwerer als ImageMagick und nach dem, was ich gelesen habe, wird es auch nicht so schnell funktionieren. Aber nach dem, was ich von ImageMagick gelesen habe, bin ich nicht sicher, ob es mehrstufige PSDs erstellen kann, sondern einfach bearbeiten oder abflachen. –

3

Hier einige nützliche Links zu Ihnen:

Die zweite Verbindung ist mit PHP zu verwenden, aber es führt ImageMagick, nur Verwenden Sie die Befehle, nicht alle PHP Syntax, nur die Zeile exec Code.

Ich hoffe, ich helfe dir!

+0

Warum die down vote ?????????? –

+1

Entschuldigung, aber können Sie mir bitte zeigen, wo in diesen Links beschrieben wird, ** PSD-Datei mit Ebenen zu erstellen? –

3

können Sie die -adjoin verwenden, um eine Bildsequenz zu kombinieren.

convert -size 100x100 -alpha set plasma:fractal -alpha set plasma:fractal -adjoin out.psd 
  • Die Alpha-Kanäle sind für die PSD-Codierer benötigt wird.
  • Die Reihenfolge der Bilder ist die unterste Ebene bis zur obersten Ebene.
  • Je nach den Einstellungen gibt es eine Menge Kompatibilitätsprobleme mit Photoshop und GIMP.

Verwendung:

  • ImageMagick 6.5.4-6
  • Photoshop CS2
+0

Tatsächlich gibt es einige Kompatibilitätsprobleme. Sowohl die integrierte Photoshop CS4- als auch die OS X-integrierte Vorschaueinrichtung lehnt das Öffnen des resultierenden Bilds ab.:-( –

+0

Aktualisiert den Befehl, um mit Photoshop CS2 zu arbeiten, aber ich kann CS4 nicht testen – Jared314

+0

Funktioniert immer noch nicht mit weder CS4 noch CS3 noch OS X Viewer. Photoshop sagt: "Es gab ein Problem beim Lesen der Layer-Daten. Lesen Sie die zusammengesetzten Daten Stattdessen? "und dann" Ihre Anfrage konnte nicht abgeschlossen werden, da die Datei nicht mit dieser Version von Photoshop kompatibel ist. –

7

Ich verwende die folgenden Befehl Linien. Ich habe kein Problem beim Öffnen der generierten PSD in Photoshop, aber jede Ebene erscheint als Hintergrundebene, und Sie müssen sie zuerst in eine echte Ebene konvertieren, um die Ebenenreihenfolge zu bearbeiten.

Hier ist die Befehlszeile. Angesichts der Liste der Bilder (im1.xxx, im2.xxx usw., wobei im1 ​​die untere Schicht,) eine Liste von Etiketten für die Schichten ("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" 

That ist, für jede Schicht haben Sie so etwas wie

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

Das Label/Name der Schicht ist optional (-label wenn keine entfernen.) die [0] in im1.xxx[0] in der Bilddatei das erste Bild abruft, da im Falle existieren ein Vorschaubild im Exif.

Auf Unix/OSX, können Sie die Klammer schützen müssen:

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

Wenn die Bildnamen Sonderzeichen enthalten, können Sie sie mit " (zB "c:\my im1.png") ohne Problem schützen.

Hoffe, das hilft.

0

Ich stimme Jon Galloway, Gimp-Konsole ist die bessere Wahl. Es ist mein Skript:

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

Sie müssen nur dieses Skript in der Datei setzen mit dem Namen "pngtopsd.scm" in Ihrem Gimp "script" Verzeichnis ("c: \ Programme \ GIMP 2 \ share \ gimp \ 2.0 \ scripts \ "für windows) und du kannst psd aus einer Liste von png Bildern mit Transformation (Translation oder Rotation) jeder Ebene erstellen. Anwendungsbeispiel:

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\")" 

dort (list \ "c: /.../ 2.png \" 0,7 200 1000) bedeutet: - 0,7 wird der Drehwinkel des Bildes (in Radiant) - 200 1000 ist x und y Verschiebung auf einem Bild

0

Sie können eine geschichtete PSD mit ImageMagick erstellen, aber beachten Sie, das erste Bild wird tatsächlich als Vorschaubild verwendet (dh zusammengesetzt aus allen Schichten).

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

Wird ein 2-Layer-PSD erstellen.

Verwandte Themen