Render SVG into Bitmap
Render svg image into a high quality bitmap. When both width and height
are NULL, the output resolution matches that of the input. When either width
or height is specified, the image is scaled proportionally. When both width
and height are specified, the image is stretched into the requested size.
rsvg(svg, width = NULL, height = NULL, css = NULL) rsvg_raw(svg, width = NULL, height = NULL, css = NULL) rsvg_webp(svg, file = NULL, width = NULL, height = NULL, css = NULL) rsvg_png(svg, file = NULL, width = NULL, height = NULL, css = NULL) rsvg_pdf(svg, file = NULL, width = NULL, height = NULL, css = NULL) rsvg_svg(svg, file = NULL, width = NULL, height = NULL, css = NULL) rsvg_ps(svg, file = NULL, width = NULL, height = NULL, css = NULL)
svg |
path/url to svg file or raw vector with svg data. Use charToRaw to convert an SVG string into raw data. |
width |
output width in pixels or |
height |
output height in pixels or |
css |
path/url to external css file or raw vector with css data. This requires your system has a recent version of librsvg. |
file |
path to output file or |
# create some svg
options(example.ask=FALSE)
tmp <- tempfile()
svglite::svglite(tmp, width = 10, height = 7)
ggplot2::qplot(mpg, wt, data = mtcars, colour = factor(cyl))
dev.off()
# convert directly into a bitmap format
rsvg_pdf(tmp, "out.pdf")
rsvg_png(tmp, "out.png")
rsvg_svg(tmp, "out.svg")
rsvg_ps(tmp, "out.ps")
# render into raw bitmap array
bitmap <- rsvg(tmp, height = 1440)
dim(bitmap) # h*w*c
# read in your package of choice
magick::image_read(bitmap)
webp::write_webp(bitmap, "bitmap.webp", quality = 100)
# cleanup
unlink(c("out.pdf", "out.png", "out.svg", "out.ps", "bitmap.webp"))Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.