10

RでGIFアニメーションを作成しようとしています.GIFアニメーションに変換したい行列の配列があります。私の戦略は、次の例から着想を得ています。

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

ここで、次のコードは、R の「png」関数を使用して 11 個の PNG 画像を生成します。次に、外部の 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")

問題は、ImageMagick の一部であり、C ドライブ (C:\Program Files\ImageMagick-6.8.5-Q16) にインストールされている exe ファイル "convert" を R が見つけられないように見えることです。以前にリンクしている Web サイトへのコメントでは、Windows ユーザーが「システム」の代わりに「シェル」を使用して外部プログラムを実行することをお勧めしますが、2 つのいずれも機能しません。エラーメッセージは

Invalid parameter - 80
Warning message:
running command 'convert -delay 80 *.png example_1.gif' had status 4

この回答で提案されているように、システム プロパティで Windows PATH 環境変数を変更しようとしましたが、PATH 変数は既にシステムで正しく定義されていました。また、convert.exe ファイルの文字列全体を指定しようとしましたが、運もありませんでした...

ImageMagick を R で実行するにはどうすればよいですか?

仕様: Windows 7 Servicepack 1、R 3.0.0

前もって感謝します...

4

4 に答える 4

7

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')
于 2015-02-17T03:42:37.290 に答える
0

これらの修正とこれらの修正をすべて試みた後、成功しなかったため、別のソフトウェアを使用して変換を行いました。そのいくつかはここで説明されています。私は Windows ユーザーですが、そのサイトに含まれているVirtualDubの簡単な手順で、この作業をすばやく完了できました。

于 2015-05-08T08:21:07.087 に答える
0

他の誰かがあなたの問題の解決策をすでに見つけていることは知っていますが、system() に経路全体を含めることなく、より簡単に解決する方法があります。ani.options(convert = 'pathway/convert.exe') アニメーションパッケージを読み込んでから設定するだけです。

于 2014-12-03T09:11:03.860 に答える