动画包找不到带有convert =“convert”的ImageMagick。

10

我之前在Windows 7,R 3.0.1上运行过动画,直到2周前。今天我加载了R 3.0.2并需要下载动画包来运行制作动画。这样做后,当我尝试运行动画(这里是脚本),我会收到以下错误:

> saveGIF(FUN2(), interval = 0.1, outdir = "images/animate")
I cannot find ImageMagick with convert = "convert"
NULL
Warning messages:
1: running command 'convert --version' had status 4 
2: In im.convert(img.files, output = movie.name, convert = convert,  :
  ImageMagick not installed yet!

我已经安装了ImageMagick并将其添加到了路径中,如我在有关问题的视频中所演示的:http://www.youtube.com/watch?v=gvpawqLyCZY&feature=youtu.be 我可以在Windows命令行中运行convert --version,并得到以下结果:
C:\Users\trinker>convert --version
Version: ImageMagick 6.8.6-8 2013-08-04 Q16 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2013 ImageMagick Studio LLC
Features: DPC OpenMP
Delegates: bzlib djvu fftw fontconfig freetype jng jp2 jpeg lcms lzma openexr pa
ngo png ps tiff webp x xml zlib

然而,在 R 中运行 system("convert --version") 的结果是:

Invalid drive specification.
Warning message:
running command 'convert --version' had status 4 

我应该做哪些改变,或者说哪些操作可以让动画包(以及R)识别ImageMagick?以下是此问题的额外信息(在R命令行中获取):
> system("convert -version")
Invalid drive specification.
Warning message:
running command 'convert -version' had status 4 

> shell("convert --version")
Version: ImageMagick 6.8.7-9 Q16 x64 2013-11-28 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2014 ImageMagick Studio LLC
Features: DPC Modules OpenMP
Delegates: bzlib freetype jbig jng jp2 jpeg lcms lqr pangocairo png ps tiff webp xml zlib

我认为cmd.fun = shell可能会使事情正常工作。如果是这样,我仍然想知道发生了什么变化。我会回报的。 - Tyler Rinker
我认为我们已经在开发版本中解决了这个问题,使用shell作为Windows下的默认值:https://github.com/yihui/animation/blob/master/R/im.convert.R#L78 你介意在Github上测试一下开发版本吗?谢谢! - Yihui Xie
2个回答

5

我之前在使用 {rgl} 的 movie3d() 函数时也遇到了类似的问题。你可以显式地传递一个转换字符串,这样就可以“告诉”R去哪里找正确的 convert.exe

imconvertstring<-"\"c:\\Program Files\\ImageMagick-6.9.0-Q16\\convert.exe\" -delay 1x%d %s*.png %s.%s"

movie3d(spin3d(),duration=10,convert=imconvertstring)

你也可以使用 {animation} 包中的 ani.options() 来指定所需的 convert.exe 的确切位置。请参见 {animation} 包中 im.convert() 的帮助条目。


注意:ImageMagick-7.0.3-4.x86_64.rpm版本(以及可能的一些早期版本)默认不安装convert.exe;请确保在安装过程中勾选选项框。 - Davit Sargsyan

1

我不知道有多少人知道这个。

在较新版本的Windows中已经有一个名为convert的程序,它可以对文件系统进行操作。安装Imagemagick后,我将IM convert重命名,并使用它来进行系统调用。我还没有使用过动画包,所以无法确定解决这个特定问题的最佳方法。


你是指convert.exe这个工具吗?它可以将FAT文件系统转换为NTFS,或者反过来。还有一个不同的“convert”命令,它是ImageMagick的一部分(例如,请参阅bash man convert)。 - Carl Witthoft
没错。当我尝试使用IM转换器时,我遇到了默认文件系统转换器的问题。除了重命名IM转换器之外,另一个建议是提供完整的文件路径。由于这是动画包中的内容,我不确定它是否被正确使用,而该包可能会意外地使用文件系统转换器。 - cylondude

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接