saveMovie {animation}R Documentation

Convert Images to A Single Animated Movie

Description

This function opens a graphical device first to generate a sequence of images based on expr, then makes use of the command convert in `ImageMagick' to convert these images to a single animated movie (in formats such as GIF and MPG, etc).

Usage

saveMovie(expr, interval = 1, moviename = "movie", movietype = "gif", 
    loop = 0, dev = png, filename = "Rplot", fmt = "%03d", 
    outdir = tempdir(), convert = "convert", 
    ani.first = NULL, para = par(no.readonly = TRUE), ...)

Arguments

expr an expression to generate animations; use either the animation functions (e.g. brownian.motion()) in this package or a custom expression (e.g. for(i in 1:10) plot(runif(10), ylim = 0:1)).
interval duration between animation frames (unit in seconds)
moviename file name of the movie (base only, without extension)
movietype format of the movie ('gif', 'mpg', ...; as long as it's supported by ImageMagick)
loop iterations of the movie; set iterations to zero to repeat the animation an infinite number of times, otherwise the animation repeats itself up to loop times (N.B. for GIF only!)
dev a function for a graphical device such as png, jpeg and bmp, etc.
filename file name of the sequence of images (`pure' name; without any format or extension)
fmt a C-style string formatting command, such as %3d
outdir the directory for the movie frames and the movie itself
convert the ImageMagick command to convert images (default to be convert, but might be imconvert under some Windows platforms)
ani.first an expression to be evaluated before plotting (this will be useful to set graphical parameters in advance, e.g. ani.first = par(pch = 20)
para a list: the graphics parameters to be set before plotting; passed to par; note ani.first can override this argument
... other arguments passed to the graphical device, such as height and width, ...

Details

The convenience of this function is that it can create a single movie file, however, two drawbacks are obvious too: (1) we need a special (free) software ImageMagick; (2) the speed of the animation cannot be conveniently controlled, as we have specified a fixed interval. So just go ahead with this function to create your movies if you don't mind these two points.

Value

An integer indicating failure (-1) or success (0) of the converting (refer to system).

Note

Please make sure ImageMagick has been installed in your system (go to http://www.imagemagick.org for details), and convert is in your 'PATH' variable. If ImageMagick is not found, the function will try to install it automatically (for Windows and Mac users only; I have not tested the installer yet!).

Author(s)

Yihui Xie <http://yihui.name>

References

http://www.imagemagick.org/script/convert.php

http://animation.yihui.name/animation:start

See Also

saveSWF, system, png, jpeg and bmp

Examples

## make sure ImageMagick has been installed in your system 

## Not run: 
saveMovie(for(i in 1:10) plot(runif(10), ylim = 0:1), loop = 1)
oopt = ani.options(nmax = 100)
saveMovie(brownian.motion(pch = 21, cex = 5, col = "red", bg = "yellow"),
    width = 600, height = 600)
ani.options(oopt)
## End(Not run)

[Package animation version 1.0-10 Index]