Copy Graphics Between Multiple Devices

Usage

dev.control(displaylist)
dev.copy(device, ..., which=dev.next())
dev.print(device=postscript, ...)

Arguments

device A device function (e.g., x11, postscript, ...)
... Arguments to the device function
which A device number specifying the device to copy to
displaylist A character string

Description

dev.copy copies the graphics contents of the current device to the device specified by which or to a new device which has been created by the function specified by device (it is an error to specify both which and device).

dev.print copies the graphics contents of the current device to a new device which has been created by the function specified by device and then shuts the new device. This is most useful for producing a postscript copy from an on-screen device.

dev.control allows the user to control the recording of graphics operations in a device. If displaylist is "inhibit" then recording is turned off.

Value

dev.copy returns the name and number of the device which has been copied to.

dev.print returns the name and number of the device which has been copied from.

Note

Every device has a display list which records all of the graphics operations that occur in the device. dev.copy and dev.print copy graphics contents by copying the display list from one device to another device. Also, automatic redrawing of graphics contents following the resizing of a device depends on the contents of the display list.

After the command dev.control("inhibit"), graphics operations are not recorded in the display list so that dev.copy and dev.print will not copy anything and the contents of a device will not be redrawn automatically if the device is resized.

The recording of graphics operations is relatively expensive in terms of memory so the command dev.control("inhibit") can be useful if memory usage is an issue.

See Also

dev.cur and other dev.xxx functions

Examples


x11()
plot(rnorm(10), main="Plot 1")
dev.copy(device=x11)
mtext("Copy 1", 3)
dev.print(width=6, height=6, horizontal=F)
dev.off(dev.prev())
dev.off()


[Package Contents]