Warum exportiert gm immer alle Ebenen des Eingabebildes?

1264
Der Hochstapler

Gegeben die folgende Befehlszeile:

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

Ich werde immer erhalten alle Schichten von der .psdals Ausgabe:

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

In der Dokumentation heißt es eindeutig:

Verwenden Sie eine eckige Klammer-Syntax, um den gewünschten Frame oder die gewünschten Frames anzugeben. Zum Beispiel,

gm convert "Image.gif[0]" first.gif
Extrahiert das erste Bild (Szene 0) aus einer GIF-Animation. Stellen Sie sicher, dass Sie die Dateispezifikation in Anführungszeichen setzen, damit die Shell die eckigen Klammern nicht interpretiert.

Ich habe in vielerlei Hinsicht versucht, herumzuspielen, aber am Ende habe ich immer das gleiche Ergebnis.

Versionsinformation:

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 Antwort auf die Frage

1
kobaltz

Es hört sich an, als müssten Sie die PSD auf eine einzige Ebene reduzieren. Ich würde versuchen, die -flattenFlagge in Ihre Zeile aufzunehmen. Dadurch werden möglicherweise alle Ebenen in mehrere JPG-Dateien konvertiert.

Es sieht auch so aus, als würden [0]Sie das, was Sie sagen, hinzufügen, um durch die Ebenen zu blättern, genauso wie die Reihenfolge der Bilder in einer GIF-Datei.

Während das funktionieren könnte (und ich bin dankbar, wenn es so ist), warum funktioniert mein Ansatz nicht? Es scheint, dass ich es genau wie in der Dokumentation beschrieben verwende. Der Hochstapler vor 12 Jahren 0
Durch das Hinzufügen von "[0]" sieht es aus wie ein "Befehl", um die möglichen Bilder / Ebenen in der angegebenen Datei zu durchlaufen und mehrere Dateien basierend auf diesen Informationen zu exportieren. Das mag für manche sehr nützlich sein, für andere aber kontraproduktiv. kobaltz vor 12 Jahren 0
Ich glaube, das Hauptproblem ist, dass Ihre Dokumentation darin besteht, ein animiertes GIF-Bild in mehrere Dateien aufzuteilen. Fast so, als würde man einen Film aufnehmen und aus jedem Bild des Films mehrere Bilder machen. kobaltz vor 12 Jahren 0
Was mich dazu bezweifelt, ist die Tatsache, dass ich ImageMagicks `convert` für denselben Zweck verwende. Es gibt eine einzige Datei aus, wenn [0]` verwendet wird, und mehrere Dateien, wenn [0] `nicht bereitgestellt wird. Der Hochstapler vor 12 Jahren 0