从R运行ImageMagick时出错:参数无效

Duf*_*fau 9 shell animation r system imagemagick

我想在R中制作一个GIF动画.我有一个矩阵数组,我希望将其转换为GIF动画.我的策略受这个例子的启发:

http://ryouready.wordpress.com/2010/11/21/animate-gif-images-in-r-imagemagick/

下面的代码在R中生成11个带有"png"函数的PNG-Pictures.接下来它调用外部ImageMagick程序"convert"来编译GIF动画.

dir.create("examples")
setwd("examples")

# Animated countdown from 10 to "GO!".
png(file="example%02d.png", width=200, height=200)
for (i in c(10:1, "G0!")){
plot.new()
text(.5, .5, i, cex = 6)
}
dev.off()

# convert the .png files to one .gif file using ImageMagick. 
system("convert -delay 80 *.png example_1.gif")
#shell("convert -delay 80 *.png example_1.gif")
Run Code Online (Sandbox Code Playgroud)

问题是R似乎没有找到exe文件"convert",它是ImageMagick的一部分并安装在C盘驱动器上(C:\ Program Files\ImageMagick-6.8.5-Q16).在我之前链接的网站评论中,建议Windows用户使用"shell"而不是"system"来运行外部程序,但两者都不起作用.错误消息是

Invalid parameter - 80
Warning message:
running command 'convert -delay 80 *.png example_1.gif' had status 4
Run Code Online (Sandbox Code Playgroud)

我已经尝试在系统属性中更改Windows PATH环境变量,如本答案所示,但PATH变量已经在我的系统上进行了核心定义.我也试过指定convert.exe文件的整个字符串,但也没有运气...

如何让ImageMagick运行R?

规格:Windows 7 Servicepack 1,R 3.0.0

提前致谢...

Fed*_*rgi 6

在Windows上,有几个convert.exe命令,所有这些命令都在PATH中.因此,您必须指定正确的convert.exe可执行文件的路径.在我的情况下,我把它放在LyX文件夹中(但是,你也可以在ImageMagick安装中找到它).如果要粘贴,请注意引号,反斜杠和间距.例如从R内:

system('"C:\\Program Files (x86)\\LyX 2.0\\imagemagick\\convert.exe" -delay 20 -loop 0 files_*.png animation.gif')
Run Code Online (Sandbox Code Playgroud)