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

时间:2017-01-19 02:43:19

标签: r imagemagick

我在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来解决这个问题但是徒劳无功。

1 个答案:

答案 0 :(得分:3)

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

ImageMagick 的第7版有一个新的命令名,即magick,您可以使用它来代替convertidentify {{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某处&&做某事")