为什么以下转换命令导致分段错误?

时间:2015-06-10 13:20:47

标签: linux segmentation-fault imagemagick

这是我正在运行的命令(直接从命令行以root身份登录):

/usr/bin/convert '/var/storage/files/drupal/273f09ab5f8671d3c457719c7955063f.jpg' -resize 127x127! -quality '75' '/var/storage/files/drupal/imagecache/artwork_moreart/273f09ab5f8671d3c457719c7955063f.jpg'

命令的结果只是:Segmentation fault

ImageMagic版本:ImageMagick 6.4.3 2009-02-25

Linux版:SUSE Linux Enterprise Server 11(x86_64)

此图片确实存在,我已将其复制到本地计算机并将其打开,没有任何问题。

如果您需要其他信息以及如何获取此信息,请与我们联系。

1 个答案:

答案 0 :(得分:1)

使用正确的命令尝试。 !首先需要反斜杠转义,否则它将由shell解释,而不是由convert解释:

/usr/bin/convert \
 '/var/storage/files/drupal/273f09ab5f8671d3c457719c7955063f.jpg' \
 -resize 127x127\! -quality '75' \
 '/var/storage/files/drupal/imagecache/artwork_moreart/273f09ab5f8671d3c457719c7955063f.jpg'

如果这不起作用,请尝试用单引号括起参数(就像你对其他参数所做的那样:

127x127\!   =>   '127x127\!'

您的问题的原因也可能位于convert二进制文件之外,并且位于您想要处理的特定输入JPEG中。您可以尝试通过处理一组不同的输入文件来排除这种情况。从内置IM测试文件logo:wizard:netscape:开始:

convert wizard:       \
  -resize "127x127\!" \
   127wiz.jpg

convert logo:         \
  -resize "127x127\!" \
   127log.jpg

convert netscape:     \
  -resize "127x127\!" \
   127net.jpg

抱歉,我无法直接在此处重现您的问题。带有IM 6.4.3的SLES 11对我来说太古老了。