1#' @include wrap.R 2NULL 3 4# Internal *_dev functions ------------------------------------------------ 5 6pdf_dev <- wrap(grDevices::pdf, NULL, grDevices::dev.cur()) 7 8postscript_dev <- wrap(grDevices::postscript, NULL, grDevices::dev.cur()) 9 10svg_wrapper <- function(filename, width = 7, height = 7, pointsize = 12, 11 onefile = FALSE, family = "sans", bg = "white", 12 antialias = c("default", "none", "gray", "subpixel"), ...) { 13 grDevices::svg(filename, width, height, pointsize, onefile, family, bg, antialias, ...) 14} 15svg_dev <- wrap(svg_wrapper, NULL, grDevices::dev.cur()) 16 17xfig_dev <- wrap(grDevices::xfig, NULL, grDevices::dev.cur()) 18 19 20# These functions arguments differ between R versions, so just use ... 21 22cairo_pdf_dev <- function(filename, ...) { 23 grDevices::cairo_pdf(filename = filename, ...) 24 grDevices::dev.cur() 25} 26 27cairo_ps_dev <- function(filename, ...) { 28 grDevices::cairo_ps(filename = filename, ...) 29 grDevices::dev.cur() 30} 31 32# These functions arguments differ between unix and windows, so just use ... 33 34bmp_dev <- function(filename, ...) { 35 grDevices::bmp(filename = filename, ...) 36 grDevices::dev.cur() 37} 38 39tiff_dev <- function(filename, ...) { 40 grDevices::tiff(filename = filename, ...) 41 grDevices::dev.cur() 42} 43 44png_dev <- function(filename, ...) { 45 grDevices::png(filename = filename, ...) 46 grDevices::dev.cur() 47} 48 49jpeg_dev <- function(filename, ...) { 50 grDevices::jpeg(filename = filename, ...) 51 grDevices::dev.cur() 52} 53 54# User-level with_* fns --------------------------------------------------- 55 56#' Graphics devices 57#' 58#' Temporarily use a graphics device. 59#' 60#' @name devices 61#' @aliases with_dev with_device 62#' @template with 63#' @param new \code{[named character]}\cr New graphics device 64#' @param ... Additional arguments passed to the graphics device. 65#' @param .local_envir `[environment]`\cr The environment to use for scoping. 66#' @seealso \code{\link[grDevices]{Devices}} 67#' @examples 68#' # dimensions are in inches 69#' with_pdf(file.path(tempdir(), "test.pdf"), width = 7, height = 5, 70#' plot(runif(5)) 71#' ) 72#' 73#' # dimensions are in pixels 74#' with_png(file.path(tempdir(), "test.png"), width = 800, height = 600, 75#' plot(runif(5)) 76#' ) 77NULL 78 79#' @describeIn devices BMP device 80#' @export 81with_bmp <- with_(bmp_dev, grDevices::dev.off) 82 83#' @rdname devices 84#' @export 85local_bmp <- local_(bmp_dev, grDevices::dev.off) 86 87#' @describeIn devices CAIRO_PDF device 88#' @inheritParams grDevices::cairo_pdf 89#' @export 90with_cairo_pdf <- with_(cairo_pdf_dev, grDevices::dev.off) 91 92#' @rdname devices 93#' @export 94local_cairo_pdf <- local_(cairo_pdf_dev, grDevices::dev.off) 95 96#' @describeIn devices CAIRO_PS device 97#' @inheritParams grDevices::cairo_ps 98#' @export 99with_cairo_ps <- with_(cairo_ps_dev, grDevices::dev.off) 100 101#' @rdname devices 102#' @export 103local_cairo_ps <- local_(cairo_ps_dev, grDevices::dev.off) 104 105#' @describeIn devices PDF device 106#' @inheritParams grDevices::pdf 107#' @export 108with_pdf <- with_(pdf_dev, grDevices::dev.off) 109 110#' @rdname devices 111#' @export 112local_pdf <- local_(pdf_dev, grDevices::dev.off) 113 114#' @describeIn devices POSTSCRIPT device 115#' @inheritParams grDevices::postscript 116#' @param command the command to be used for \sQuote{printing}. Defaults 117#' to \code{"default"}, the value of option \code{"printcmd"}. The 118#' length limit is \code{2*PATH_MAX}, typically 8096 bytes on unix systems and 119#' 520 bytes on windows. 120#' @export 121with_postscript <- with_(postscript_dev, grDevices::dev.off) 122 123#' @rdname devices 124#' @export 125local_postscript <- local_(postscript_dev, grDevices::dev.off) 126 127#' @describeIn devices SVG device 128#' @inheritParams grDevices::svg 129#' @export 130with_svg <- with_(svg_dev, grDevices::dev.off) 131 132#' @rdname devices 133#' @export 134local_svg <- local_(svg_dev, grDevices::dev.off) 135 136#' @describeIn devices TIFF device 137#' @export 138with_tiff <- with_(tiff_dev, grDevices::dev.off) 139 140 141#' @rdname devices 142#' @export 143local_tiff <- local_(tiff_dev, grDevices::dev.off) 144 145#' @describeIn devices XFIG device 146#' @inheritParams grDevices::xfig 147#' @export 148with_xfig <- with_(xfig_dev, grDevices::dev.off) 149 150#' @rdname devices 151#' @export 152local_xfig <- local_(xfig_dev, grDevices::dev.off) 153 154#' @describeIn devices PNG device 155#' @export 156with_png <- with_(png_dev, grDevices::dev.off) 157 158#' @rdname devices 159#' @export 160local_png <- local_(png_dev, grDevices::dev.off) 161 162#' @describeIn devices JPEG device 163#' @export 164with_jpeg <- with_(jpeg_dev, grDevices::dev.off) 165 166#' @rdname devices 167#' @export 168local_jpeg <- local_(jpeg_dev, grDevices::dev.off) 169