Export screenshot
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 = TRUE)
filename |
path to file to save. |
fmt |
image export format, currently supported: png. Ignored if |
top |
whether to call |
... |
arguments to pass to |
scene |
|
width, height |
optional specifications of output size in pixels |
webshot |
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 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.
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.)
These functions are mainly called for the side effects. The filename of the saved file is returned invisibly.
When rgl.useNULL()
is TRUE
, only webshot = TRUE
will produce a snapshot. It requires the webshot2
package, which as of this writing is not available on CRAN; to
install it, use remotes::install_github("rstudio/webshot2")
rgl.snapshot
works by taking an image from the displayed
window on-screen.
On some systems, the snapshot
will include content from other windows if they cover the active RGL
window. Setting top = TRUE
(the default) will use
rgl.bringtotop
before the snapshot
to avoid this.
There are likely limits to how large width
and
height
can be set based on the display hardware; if these
are exceeded the results are undefined. A typical result
is that the snapshot will still be made but at a smaller
size.
There are slight differences between the displays with
webshot = TRUE
and webshot = FALSE
, as the
former are rendered using WebGL while the latter are rendered
using OpenGL. Often the webshot = TRUE
displays have better quality.
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()) } ## Not run: # # 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) ## End(Not run)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.