linux - 为什么以下转换命令会导致段错误?

标签 linux segmentation-fault imagemagick

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

/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)

这张图片确实存在,我已经将它复制到我的本地计算机并打开它没有问题。

如果您需要其他信息以及如何获取这些信息,请告诉我。

最佳答案

正确的命令试试吧。 ! 首先需要反斜杠转义,否则它会被你的 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 对我来说太古老了。

关于linux - 为什么以下转换命令会导致段错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30757610/

相关文章:

基于 UNIX 套接字的客户端程序中的 C++ connect() 不建立与服务器的连接

c++ - 分配动态数组 C++ 期间的段错误

c - 该程序通过了我大学的评分器(所有测试用例),但我的电脑出现段错误

tomcat - War 安装失败,因为未设置 Image Magic Home 环境变量(尽管我另有声明)

linux - 在ath9k_htc模块中处理接收到的ACK帧

c++ - 无法编译C++程序

regex - 正则表达式 :buffer same characters

java - 如何知道 JVM 因 Segfault 崩溃的原因?

ios - 如何使用imagemagick获得圆角、渐变抛光的iOS图标图像效果?

C++ Boost 和 ImageMagick++ API 问题