R库rgl虽然已安装,但找不到图像magick

时间:2016-06-14 16:18:17

标签: r windows imagemagick

R库rgl找不到图像magick,虽然它是从cmd shell中安装并执行的。

所以这不起作用:

require(rgl)
open3d()
rgl.bringtotop()
plot3d(foo$x,foo$y,foo$thing,col =heat.colors(256)[1+round(foo$z*255)],xlab = '',ylab='',zlab='',radius=3,size=3,box=T,axes=F)
play3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 2)
movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 1)

因为barfs:

riting 'movie200.png'Writing 'movie003.png'
Error in movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 20) : 
  'ImageMagick' not found
In addition: Warning message:
running command 'C:\Windows\system32\cmd.exe /c convert --version' had status 4 

这里真正的问题是convert是一个Windows命令。在Windows上,我相信 Imagemagick 使用 magick 作为命令。

所以我认为rgl需要使用windows命令。

有什么想法吗?

解决方法

movie3d(spin3d(axis = c(1, 1, 1), rpm = 10), duration = 12,movie='un1qu3',dir = getwd())
system('magick -delay 10 un1qu3*.png out.gif')
file.remove(grep('un1qu\\d+\\.png',list.files(),value = T))

1 个答案:

答案 0 :(得分:0)

这是一个有点老问题,但我刚遇到同样的问题,似乎我设法解决了这个问题。

构建Rgl包是为了使用Imagemagick的convert.exe文件。问题是当前可用于Windows的IM版本不包含此文件,而是使用magick.exe。

为我解决问题实际上非常简单:转到Program Files(或安装它的地方)的Imagemagick库,找到' magick.exe'文件,并将其重命名为' convert.exe'。 :)