50% off: Unlimited data and AI learning.
State of Data and AI Literacy Report 2025

animation (version 1.1-0)

saveMovie: 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, ...

Value

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

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.

References

http://www.imagemagick.org/script/convert.php http://animation.yihui.name/animation:start

See Also

saveSWF, system, png, jpeg and bmp

Examples

Run this code
## make sure ImageMagick has been installed in your system 

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)

Run the code above in your browser using DataLab