我在32位计算机上使用Windows 7。我安装了ImageMagick-7.0.4-4-Q16-x86-dll.exe。我在Path of Environmetal Variables中添加了ImageMagick的路径。在命令提示符下使用convert --version可以正确显示ImageMagick(但是当我使用system()在R中运行它时)。现在,我尝试使用以下R代码制作动画gif文件(取自另一个stackoverflow帖子):
library(animation)
ani.options('C:/Program Files/ImageMagick-7.0.4-Q16/convert.exe')
dir.create("examples")
setwd("examples")
png(file="example%02d.png",width=200, height=200)
for(i in c(10:1,"GO!")){
plot.new()
text(.5,.5,i,cex=6)
}
dev.off()
尚未显示任何错误消息。但是当我写下以下一行时:
system("convert -delay 80 *.png example_1.gif")
它会抛出以下错误:
参数无效 - 80 警告信息: 运行命令'convert -delay 80 * .png example_1.gif'状态为4
在此之后,我运行了以下命令
system("convert --version")
并抛出以下错误:
无效的驱动器规格 警告信息: 运行命令'convert --version'具有状态4
我试图通过在管理员模式下运行RStudio来解决这个问题但是徒劳无功。
答案 0 :(得分:3)
多年来,有一个名为CONVERT.EXE
的Microsoft工具与同名的 ImageMagick 工具发生冲突。
ImageMagick 的第7版有一个新的命令名,即magick
,您可以使用它来代替convert
,identify
{{1} }以及 ImageMagick 套件中的其他命令。
所以,
mogrify
变为
identify image.png
和
magick identify image.png
变为
convert image.png -resize 10x10 result.png
除此之外,您需要确保 R 正在使用的路径包含包含magick image.png -resize 10x10 result.png
的目录。
您还需要确保magick.exe
shell在您的图像所在的目录中运行,以便您可以检查它的运行位置:
系统(" PWD&#34)
如果它没有在您的图像所在的目录中运行,您可以使用图像的绝对路径(即从驱动器顶部开始的路径,例如" C:\ User \ Fred \ FunkyImages \ Image1.jpg")或者您可以在进行处理之前更改system()
命令中的目录:
系统(" cd某处&&做某事")