Saves the screenshot to a file.
rgl.snapshot( filename, fmt = "png", top = TRUE )
snapshot3d( filename = tempfile(fileext = ".png"),
fmt = "png", top = TRUE,
..., scene, width = NULL, height = NULL,
webshot = as.logical(Sys.getenv("RGL_USE_WEBSHOT", "TRUE")) )
These functions are mainly called for the side effects. The filename of the saved file is returned invisibly.
path to file to save.
image export format, currently supported: png. Ignored if webshot = TRUE
.
whether to call rgl.bringtotop
.
Ignored if webshot = TRUE
.
arguments to pass to webshot2::webshot
an optional result of scene3d
or rglwidget
to plot
optional specifications of output size in pixels
Use the webshot2 package to take the snapshot
rgl.snapshot()
is a low-level function
that copies the current RGL window from the screen. Users
should usually use snapshot3d()
instead; it is more flexible,
and (if webshot2 is installed) can take images even if
no window is showing, and they can be larger than the physical
screen. On some systems webshot2 doesn't work reliably; if
you find snapshot3d()
failing or taking a very long time
I'd recommend using snapshot3d(..., webshot = FALSE)
. See
the note below about RGL_USE_WEBSHOT
to make this the default.
Animations can be created in a loop modifying the scene and saving
each screenshot to a file. Various graphics programs (e.g. ImageMagick)
can put these together into a single animation. (See movie3d
or
the example below.)
movie3d
, view3d
if (interactive() && !in_pkgdown_example()) {
saveopts <- options(rgl.useNULL = TRUE)
plot3d(matrix(rnorm(300), ncol = 3, dimnames = list(NULL, c("x", "y", "z"))),
col = "red")
options(saveopts)
browseURL(snapshot3d())
}
if (FALSE) {
#
# create animation
#
shade3d(oh3d(), color = "red")
rgl.bringtotop()
view3d(0, 20)
olddir <- setwd(tempdir())
for (i in 1:45) {
view3d(i, 20)
filename <- paste("pic", formatC(i, digits = 1, flag = "0"), ".png", sep = "")
snapshot3d(filename)
}
## Now run ImageMagick in tempdir(). Use 'convert' instead of 'magick'
## if you have an older version of ImageMagick:
## magick -delay 10 *.png -loop 0 pic.gif
setwd(olddir)
}
Run the code above in your browser using DataLab