ImageMagick 的转换:未定义图像

Posted

技术标签:

【中文标题】ImageMagick 的转换:未定义图像【英文标题】:ImageMagick's convert: no images defined 【发布时间】: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 上解决这个问题。 我遇到了同样的问题,并通过使输出文件名与输入名不同来修复它。 【参考方案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 运算符定义的任何操作,并将结果留在图像堆栈中。

以上是关于ImageMagick 的转换:未定义图像的主要内容,如果未能解决你的问题,请参考以下文章

ImageMagick:无法将24位bmp图像转换为8位bmp图像

ImageMagick:转换以保持转换后图像的相同名称

Imagemagick在将pdf转换为图像时删除上部内容

ImageMagick:如何确定jpeg文件的方向?

ImageMagick相当于PhotoShop Curves

ImageMagick 无法在 WSL 上将 PDF 转换为图像