在哪里转换ImageMagick?

unk*_*own 4 r image image-processing gif imagemagick-convert

我只是花了一个真气,试图用R中的一系列jpg文件制作一个gif.我安装了ImageMagick来运行以下代码:

system("convert -delay 40 *.png example_4.gif")
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误消息:

Warning message:
running command 'convert -delay 40 *.png example_4.gif' had status 4
Run Code Online (Sandbox Code Playgroud)

这看起来像路径错误.现在我在Imagemagick下载中寻找转换,无法在任何地方看到它.有谁知道它在哪里?

或者,是否有另一种更简单的方法可以从R中的一系列jpeg制作一个gif并不长得多的gif?

谢谢

r2e*_*ans 7

三种选择:

  1. 考虑使用magickR包而不是使用system().
  2. 将脚本更改convert ...magick convert ....
  3. 重新安装imagemagick,并启用"安装旧版实用程序(例如转换)"选项.

    在此输入图像描述

此更改自7.0.1(现在高达7.0.7)以来一直存在,并在其移植指南中进行了讨论,特别是在"命令更改"一节中.

从哲学上讲,我更喜欢安装遗留实用程序,主要是因为它可能会导致与命令名称混淆.例如,convert.exeWindows中的非ImageMagick 尝试转换文件系统...可能不是你想要意外触发的东西(你可以获得正确的参数实际做出改变的可能性很小,但它仍然不是0 ).您的PATH遗嘱中的目录顺序决定了您正在呼叫的内容.

编辑:

  1. 从评论来看,似乎"静态"和"dll"安装程序之间的区别可能会禁用安装旧版实用程序的选项convert.exe.因此,您可以切换到"dll"以获取旧版选项,或者仅限于选项1(magickR包)和2("magick convert ...").

  2. 从进一步的评论(感谢fmw42和MarkSetchell),很明显旧的convert.exe和当前的传统模式magick.exe convert与当前推荐的模式不同magick.exe(没有"转换"); 前两个是遗留和兼容模式,但它们不接受magick-alone 当前支持的所有参数.因此"convert",在命令中的任何位置使用应指示使用v6,而不是当前的v7.这个答案仅仅是继续使用v6机制的补丁; 可以说更好的解决方案是使用magick.exev7接口,完全删除"转换"传统模式.

  • Magick,magick转换和转换都是不同的.IM 7中的正确命令是魔法.其他人指向传统的IM 6方法.你应该找到magick的路径并在路径前面加上路径,或者将路径放入Environment PATH变量中,这样你才能正确使用IM 7(除非你想使用传统的IM 6代码). (2认同)