为什么 gm 总是导出输入图像的所有层?

为什么 gm 总是导出输入图像的所有层?

给出以下命令行:

'/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
将从 GIF 动画中提取第一幅图像(场景 0)。请务必用引号将文件规范括起来,以防止 shell 解释方括号。

我尝试过很多方法来解决它,但结果总是一样。

版本信息:

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

听起来你需要将 PSD 压缩为单个图层。我会尝试将标志添加-flatten到你的行中。这可能会将所有图层转换为一个 JPG,而不是多个文件。

此外,通过添加,您似乎[0]告诉它循环遍历各个图层,就像 gif 文件中的图像序列一样。

相关内容