Учитывая следующую командную строку:

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

Я всегда получу все слои из .psd качестве вывода:

$ ls something*
something.jpg.0  something.jpg.1  something.jpg.2

В документации четко говорится:

Используйте синтаксис в квадратных скобках, чтобы указать, какой кадр или кадры вы хотите. Например,

gm convert "Image.gif[0]" first.gif
Извлечет первое изображение (сцена 0) из анимации GIF. Обязательно заключите в спецификацию файла кавычки, чтобы оболочка не интерпретировала квадратные скобки.

Я пытался возиться с этим разными способами, но всегда получал один и тот же результат.

Информация о версии:

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

1 ответ1

1

Похоже, вам нужно сплющить PSD в один слой. Я бы попробовал добавить флаг -flatten к вашей строке. Это может преобразовать все слои в один JPG вместо нескольких файлов.

Кроме того, это выглядит как добавление [0] вы говорите, чтобы циклически проходить по слоям, как если бы это была последовательность изображений в gif-файле.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .