ImageMagick 中的 convert 在哪里?
Where is convert in ImageMagick?
我刚刚度过了令人气愤的一天,试图用 R 中的一系列 jpg 文件制作 gif。我将 ImageMagick 安装到 运行 以下代码:
system("convert -delay 40 *.png example_4.gif")
但我收到以下错误消息:
Warning message:
running command 'convert -delay 40 *.png example_4.gif' had status 4
这看起来像是路径错误。现在我在 Imagemagick 下载中寻找 convert 并且在任何地方都看不到它。有谁知道在哪里吗?
或者,是否有另一种更简单的方法,可以用 R 中的一系列 jpeg 制作一个长度不离谱的 gif?
谢谢
三个选项:
- 考虑使用
magick
R package 而不是 system()
。
- 将脚本从
convert ...
更改为 magick convert ...
。
Re-install imagemagick,并启用"Install legacy utilities (e.g. convert)"选项。
此更改自 7.0.1 以来一直存在(现在高达 7.0.7),并在他们的 porting guide 中进行了讨论,特别是在标题为 "Command Changes".
的部分中
从哲学上讲,我更喜欢不安装遗留实用程序,主要是因为它可能会导致与命令名称混淆。例如,windows 中的 non-ImageMagick convert.exe
尝试转换文件系统...可能不是您想要意外触发的(您获得正确参数的可能性很小)实际进行更改,但它仍然不是 0)。 PATH
中的目录顺序将决定您要呼叫的目录。
编辑:
从评论来看,"static" 和 "dll" 安装程序之间的差异似乎可能会禁用安装遗留实用程序(例如 convert.exe
)的选项。因此,您可以切换到 "dll" 以获得旧版选项,或者您只能使用选项 1(magick
R 包)和 2("magick convert ..."
)。
从进一步的评论(感谢 fmw42 和 MarkSetchell),很明显旧的 convert.exe
和当前的 magick.exe convert
遗留模式与当前的不一样推荐 magick.exe
(没有 "convert");前两个是传统模式和兼容模式,但它们不接受目前 magick
-alone 支持的所有参数。因此,在命令中的任何地方使用 "convert"
应该表示使用 v6,而不是当前的 v7。这个答案只是继续使用 v6 机制的补丁;有人可能会争辩说更好的解决方案是使用 magick.exe
的 v7 接口,完全删除 "convert" 遗留模式。
我刚刚度过了令人气愤的一天,试图用 R 中的一系列 jpg 文件制作 gif。我将 ImageMagick 安装到 运行 以下代码:
system("convert -delay 40 *.png example_4.gif")
但我收到以下错误消息:
Warning message:
running command 'convert -delay 40 *.png example_4.gif' had status 4
这看起来像是路径错误。现在我在 Imagemagick 下载中寻找 convert 并且在任何地方都看不到它。有谁知道在哪里吗?
或者,是否有另一种更简单的方法,可以用 R 中的一系列 jpeg 制作一个长度不离谱的 gif?
谢谢
三个选项:
- 考虑使用
magick
R package 而不是system()
。 - 将脚本从
convert ...
更改为magick convert ...
。 Re-install imagemagick,并启用"Install legacy utilities (e.g. convert)"选项。
此更改自 7.0.1 以来一直存在(现在高达 7.0.7),并在他们的 porting guide 中进行了讨论,特别是在标题为 "Command Changes".
的部分中从哲学上讲,我更喜欢不安装遗留实用程序,主要是因为它可能会导致与命令名称混淆。例如,windows 中的 non-ImageMagick convert.exe
尝试转换文件系统...可能不是您想要意外触发的(您获得正确参数的可能性很小)实际进行更改,但它仍然不是 0)。 PATH
中的目录顺序将决定您要呼叫的目录。
编辑:
从评论来看,"static" 和 "dll" 安装程序之间的差异似乎可能会禁用安装遗留实用程序(例如
convert.exe
)的选项。因此,您可以切换到 "dll" 以获得旧版选项,或者您只能使用选项 1(magick
R 包)和 2("magick convert ..."
)。从进一步的评论(感谢 fmw42 和 MarkSetchell),很明显旧的
convert.exe
和当前的magick.exe convert
遗留模式与当前的不一样推荐magick.exe
(没有 "convert");前两个是传统模式和兼容模式,但它们不接受目前magick
-alone 支持的所有参数。因此,在命令中的任何地方使用"convert"
应该表示使用 v6,而不是当前的 v7。这个答案只是继续使用 v6 机制的补丁;有人可能会争辩说更好的解决方案是使用magick.exe
的 v7 接口,完全删除 "convert" 遗留模式。