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图像