Por que o gm sempre exporta todas as camadas da imagem de entrada?

0

Dada a seguinte linha de comando:

'/usr/bin/gm' convert 'directory/filename.psd[0]' filename.jpg

Irei sempre receber todas camadas da .psd como saída:

$ ls something*
something.jpg.0  something.jpg.1  something.jpg.2
A documentação afirma claramente:

Use a square-bracket syntax to indicate which frame or frames you want. For example,

gm convert "Image.gif[0]" first.gif
Will extract the first image (scene 0) from a GIF animation. Be sure to surround the file specification with quotation marks, to prevent the shell from interpreting the square brackets.

Eu tentei brincar com isso de muitas maneiras, mas sempre acabo com o mesmo resultado.

Informação da versão:

GraphicsMagick 1.3.12 2010-03-08 Q8 http://www.GraphicsMagick.org/
Copyright (C) 2002-2010 GraphicsMagick Group.
Additional copyrights and licenses apply to this software.
See http://www.GraphicsMagick.org/www/Copyright.html for details.

Feature Support:
  Thread Safe              no
  Large Files (> 32 bit)   yes
  Large Memory (> 32 bit)  no
  BZIP                     yes
  DPS                      no
  FlashPix                 no
  FreeType                 yes
  Ghostscript (Library)    no
  JBIG                     no
  JPEG-2000                no
  JPEG                     yes
  Little CMS               yes
  Loadable Modules         yes
  OpenMP                   no
  PNG                      yes
  TIFF                     yes
  TRIO                     no
  UMEM                     no
  WMF                      yes
  X11                      no
  XML                      yes
  ZLIB                     yes

Host type: i686-pc-linux-gnu

Configured using the command:
  ./configure  '--prefix=/usr' '--build=i686-pc-linux-gnu' '--host=i686-pc-linux-gnu' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--datadir=/usr/share'                                                                  '--sysconfdir=/etc' '--localstatedir=/var/lib' '--docdir=/usr/share/doc/graphicsmagick-1.3.12' '--htmldir=/usr/share/doc/graphicsmagick-1.3.12/html' '--enable-shar                                                                 ed' '--enable-largefile' '--without-included-ltdl' '--without-frozenpaths' '--without-gslib' '--with-quantum-depth=8' '--with-fontpath=/usr/share/fonts' '--with-gs                                                                 -font-dir=/usr/share/fonts/default/ghostscript' '--with-windows-font-dir=/usr/share/fonts/corefonts' '--with-perl-options=INSTALLDIRS=vendor' '--disable-ccmalloc'                                                                  '--disable-prof' '--disable-gcov' '--disable-magick-compat' '--disable-openmp' '--with-bzlib' '--with-magick-plus-plus' '--without-fpx' '--without-jbig' '--with-jp                                                                 eg' '--without-jp2' '--with-lcms' '--with-modules' '--with-perl' '--with-png' '--with-xml' '--without-threads' '--with-tiff' '--with-ttf' '--with-wmf' '--without-x                                                                 ' '--with-zlib' 'build_alias=i686-pc-linux-gnu'

Final Build Parameters:
  CC       = i686-pc-linux-gnu-gcc -std=gnu99
  CFLAGS   = -O2 -march=i686 -fomit-frame-pointer -Wall
  CPPFLAGS = -I/usr/include/freetype2 -I/usr/include/libxml2
  CXX      = i686-pc-linux-gnu-g++
  CXXFLAGS = -O2 -march=i686 -fomit-frame-pointer
  LDFLAGS  = -Wl,-O1 -Wl,--as-needed -L/usr/lib -L/usr/lib
  LIBS     = -llcms -lfreetype -lbz2 -lz -lm
    
por Der Hochstapler 08.03.2012 / 23:48

1 resposta

1

Parece que você precisa achatar o PSD para uma única camada. Eu tentaria adicionar o sinalizador -flatten à sua linha. Isso pode converter todas as camadas em um JPG em vez de vários arquivos.

Além disso, parece que adicionando o [0] você está dizendo para fazer um loop através das camadas, como seria a seqüência de imagens em um arquivo gif.

    
por 09.03.2012 / 00:06