Почему gm всегда экспортирует все слои входного изображения?

1162
Der Hochstapler

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

'/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 
0

1 ответ на вопрос

1
kobaltz

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

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

Хотя это может сработать (и я буду благодарен, если это произойдет), почему мой подход не работает? Кажется, я использую его точно так, как описано в документации. Der Hochstapler 12 лет назад 0
Потому что, добавляя `[0]`, это выглядит как «команда» для циклического перебора возможных изображений / слоев в указанном файле для экспорта нескольких файлов на основе этой информации. Это может быть очень полезно для некоторых, но контрпродуктивно для других. kobaltz 12 лет назад 0
Я считаю, что основная проблема заключается в том, что ваша документация состоит в том, чтобы разделить анимированное GIF-изображение на несколько файлов. Почти как снимать фильм и делать несколько снимков из каждого кадра фильма. kobaltz 12 лет назад 0
Что заставляет меня сомневаться в этом, так это тот факт, что если я использую ImageMagicks `convert` для той же цели, он выводит один файл при использовании` [0] `и несколько файлов, когда не предоставляет` [0] `. Der Hochstapler 12 лет назад 0

Похожие вопросы