【问题标题】:ImageMagick's convert: no images definedImageMagick 的转换:未定义图像
【发布时间】:2017-07-16 22:35:47
【问题描述】:

我尝试执行以下命令:

$ convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png

它给了我:

转换:没有定义图像 `1.png' @ 错误/convert.c/ConvertImageCommand/3187.

但它是存在的!我尝试在启用调试选项的情况下执行该命令:

$convert 1.png -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' -morphology Distance Euclidean -compose Plus -composite -level 43%,57% -resize 12.5% 1.png -debug all

我得到这个输出:http://pastebin.com/gsw7KszH

我的 ImageMagick 配置有什么问题?我用的是最新的 macOS。

【问题讨论】:

  • 你从哪里得到这个命令的?它想做什么?
  • 由于您的输出图像与输入图像相同,因此问题可能出在输出图像而不是输入图像 - 尝试更改输出名称以确认。在 Linux 类型系统上,您需要使用 \ 转义( & ),这在 mac 上是否相同?但正如 Mark 所说,代码看起来也有点奇怪。
  • 请检查包:Ghostscript。如果你没有这个:brew install ghostscript
  • Ghost Script install 没有在 OSX 上解决这个问题。
  • 我遇到了同样的问题,并通过使输出文件名与输入名不同来修复它。

标签: bash macos imagemagick imagemagick-convert


【解决方案1】:

您可以尝试在composite operator 之后指定文件名,如下所示:

$ convert 1.png \
   -filter 'Jinc ( +clone -negate -morphology Distance Euclidean -level 50%,-50% )' \
   -morphology Distance Euclidean \
   -compose Plus \
   -composite 1.png \
   -level 43%,57% \
   -resize 12.5% 1.png

【讨论】:

  • 我相信你的断言是错误的,-composite 需要一个文件名。它只执行前面-compose 运算符定义的任何操作,并将结果留在图像堆栈中。
猜你喜欢
  • 2019-03-22
  • 1970-01-01
  • 1970-01-01
  • 2022-10-20
  • 2021-04-07
  • 2012-09-18
  • 2015-08-08
  • 2015-11-25
  • 2016-11-22
相关资源
最近更新 更多