Package 'rsvg'

Title: Render SVG Images into PDF, PNG, (Encapsulated) PostScript, or Bitmap Arrays
Description: Renders vector-based svg images into high-quality custom-size bitmap arrays using 'librsvg2'. The resulting bitmap can be written to e.g. png, jpeg or webp format. In addition, the package can convert images directly to various formats such as pdf or postscript.
Authors: Jeroen Ooms [aut, cre] , Salim Brüggemann [ctb]
Maintainer: Jeroen Ooms <[email protected]>
License: MIT + file LICENSE
Version: 2.6.1
Built: 2024-11-20 06:55:31 UTC
Source: CRAN

Help Index


librsvg version

Description

Print the version of the librsvg library

Usage

librsvg_version()

Render SVG into Bitmap

Description

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.

Usage

rsvg(svg, width = NULL, height = NULL, css = NULL)

rsvg_raw(svg, width = NULL, height = NULL, css = NULL)

rsvg_nativeraster(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)

rsvg_eps(svg, file = NULL, width = NULL, height = NULL, css = NULL)

Arguments

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 NULL for default.

height

output height in pixels or NULL for default

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 NULL to return content as raw vector

Examples

# 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 vector or bitmap graphics format
rsvg_pdf(tmp, "out.pdf")
rsvg_png(tmp, "out.png")
rsvg_svg(tmp, "out.svg")
rsvg_ps(tmp, "out.ps")
rsvg_eps(tmp, "out.eps")

# render into raw bitmap array
bitmap <- rsvg(tmp, height = 1440)
dim(bitmap) # h*w*c

# render to native raster object
nr <- rsvg_nativeraster(tmp)
# grid::grid.raster(nr)

# read in your package of choice
magick::image_read(bitmap)
webp::write_webp(bitmap, "bitmap.webp", quality = 100)

# cleanup
unlink(c("out.*", "bitmap.webp"))