2009-07-22 19 views
19

Necesito crear un archivo PSD en capas con ImageMagick o cualquier otra herramienta de línea de comandos disponible en la plataforma Linux. Como necesito hacer esto en un servidor Linux, no puedo usar scripts de Photoshop.¿Cómo crear un archivo PSD en capas desde la línea de comandos?

El comando ImageMagick a continuación crea el archivo PSD con una sola capa, donde dos imágenes (aquí: fractales de plasma) se colocan una debajo de otra. (Yo uso ImageMagick 6.5.3-10 2009-07-31 Q16, último disponible en MacPorts.)

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

¿Cómo se crea un archivo PSD, donde cada imagen está en su propia capa, y una capa está directamente por encima de otro?

O, ¿hay alguna otra herramienta de línea de comandos que me permita hacer esto?

Actualización: ¿Alguna otra opción que la línea de comando GIMP?

Respuesta

13

Si ImageMagick no funciona, me gustaría ver Gimp command line.

Los siguientes comandos crean un archivo PSD de 2 capas para mí en la consola interactiva:

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

que tendría que ser convertido en una presentación (archivo .scm) guión script-fu y podría ser ejecutado desde la línea de comandos con algo como esto:

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

No es que ImageMagick no funcione, es que no sé cómo hacerlo funcionar correctamente ... Usar Gimp es una idea interesante, gracias. Sin embargo, estoy un poco preocupado por la necesidad de instalarlo en el servidor sin el sistema X Window y Gnome ... ¿No sería demasiado pesado? –

+0

Gimp es definitivamente más pesado que ImageMagick, y por lo que he leído, tampoco funcionará tan rápido. Pero por lo que leí de ImageMagick, no estoy seguro de que pueda crear PSD en capas, simplemente edítelos o aplánelos. –

3

Aquí es algunos enlaces útiles:

El segundo enlace es para usar con PHP, pero ejecuta ImageMagick, solamente utilice los comandos, no todos los PHP sintaxis, solo la línea de código .

Espero que te ayude!

+0

¿Por qué el voto a la baja ?????????? –

+1

Disculpe, pero ¿puede indicarme dónde en esos enlaces se describe cómo ** crear ** archivos PSD con capas? –

3

Puede usar el comando -adjoin para combinar una secuencia de imágenes.

convert -size 100x100 -alpha set plasma:fractal -alpha set plasma:fractal -adjoin out.psd 
  • Los canales alfa son necesarios para el codificador PSD.
  • El orden de las imágenes es de capa inferior a capa superior.
  • Hay muchos problemas de compatibilidad con Photoshop y GIMP según la configuración.

Usando:

  • ImageMagick 6.5.4-6
  • Photoshop CS2
+0

De hecho, hay algunos problemas de compatibilidad. Tanto Photoshop CS4 como el visualizador incorporado de OS X se niegan rotundamente a abrir la imagen resultante.:-( –

+0

Actualicé el comando para trabajar con Photoshop CS2, pero no puedo probar CS4 – Jared314

+0

Aún no funciona con CS4 ni CS3 ni OS X. Photoshop dice: "Hubo un problema al leer los datos de capa. en su lugar? "y luego" No se pudo completar su solicitud porque el archivo no es compatible con esta versión de Photoshop. " –

7

utilizo las líneas de comandos de abajo. No he encontrado ningún problema al abrir el PSD generado en Photoshop, sin embargo, cada capa aparece como una capa de fondo, y primero debe convertirla en una capa verdadera para editar el orden de las capas.

Aquí está la línea de comando. Teniendo en cuenta la lista de imágenes (im1.xxx, im2.xxx etc, im1 siendo la capa inferior,) una lista de etiquetas para las capas ("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" 

Eso es decir, para cada capa, que tiene algo así como

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

la etiqueta/nombre de la capa es opcional (quitar -label si ninguno.) el [0] en im1.xxx[0] recupera la primera imagen en el archivo de imagen, en caso de que existan una miniatura en el Exif.

En Unix/OSX, usted tiene que proteger el paréntesis:

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

Si los nombres de las imágenes contienen caracteres especiales, puede protegerlos con " (por ejemplo "c:\my im1.png") sin ningún problema.

Espero que esto ayude.

0

Estoy de acuerdo con Jon Galloway, la consola de gimp es la mejor elección. No es mi guión:

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

Sólo se necesita poner este script en un archivo con el nombre "pngtopsd.scm" dentro de su directorio gimp "guión" ("c: \ Archivos de programa \ GIMP 2 \ share \ gimp \ 2.0 \ scripts \ "para windows) y puede crear psd en capas de la lista de imágenes png con transformación (traducción o rotación) de cada capa. Ejemplo de uso:

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

allí (lista \ "c: /.../ 2.png \" 0,7 200 1000) significa: - 0,7 es el ángulo de rotación de la imagen (en radianes) - 200 1000 es desplazamiento xey en una imagen

0

Puede crear un PSD en capas con ImageMagick, pero tenga en cuenta que la primera imagen se utiliza realmente como imagen de vista previa (es decir, compuesto de todas las capas).

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

Creará un PSD de 2 capas.

Cuestiones relacionadas