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



我在32位计算机上使用Windows 7。我已经安装了ImageMagick-7.04-4-Q16-x86-dll.exe。我在环境变量的路径中添加了ImageMagick的路径。在命令提示符中使用convert--version可以正确地显示ImageMagick(但当我使用system()在R中运行它时就不会了)。现在,我尝试使用以下R代码(取自另一篇stackoverflow帖子)制作一个动画gif文件:

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来解决这个问题,但没有成功。

有一个名为CONVERT.EXE的Microsoft工具多年来一直与同名的ImageMagick工具发生冲突。

ImageMagick的第7版有一个新的命令名,即magick,您可以使用它来代替convertidentifymogrifyImageMagick套件中的其他命令。


因此,

identify image.png

成为

magick identify image.png

convert image.png -resize 10x10 result.png

成为

magick image.png -resize 10x10 result.png

  • 除此之外,您还需要确保R正在使用的PATH包括包含magick.exe的目录。

  • 您还需要确保system()shell在映像所在的目录中运行,这样您就可以检查它在哪里运行,如下所示:

    系统("pwd")

  • 如果它不在图像所在的目录中运行,您可以使用图像的绝对路径(即从驱动器顶部开始的路径,如"C:\User\Fred\FunkyImages\Image1.jpg"),也可以在进行处理之前更改system()命令中的目录:

    系统("cd某处&&做某事")

相关内容

最新更新