Resvg (resvg v0.5.0)
View SourceProvides functions to convert svg to png using resvg.
Common options
The supported options are:
:width- Set the width in pixels.:height- Set the height in pixels.:zoom- Zoom image by a factor, Example:2.0.:dpi- Sets the resolution, default to96.:background- Sets the background color, accept CSS3 color Example:red,#fff,#fff000.:languages- Sets a list of languages that will be used during thesystemLanguageattribute resolving, Example:["en-US", "fr-FR"], default to["en"].:shape_rendering- Selects the default shape rendering method default to:geometric_precision.:text_rendering- Selects the default text rendering method default to:optimize_legibility.:image_rendering- Selects the default image rendering method default to:optimize_quality.:resources_dir- Sets a directory that will be used during relative paths resolving. This field is mandatory for all functions exceptsvg_to_png/3because it default to thesvg_inputpath.:font_family- Sets the default font family that will be used when nofont-familyis present, default toTimes New Roman.:font_size- Sets the default font size that will be used when nofont-sizeis present, default to12.:serif_family- Sets theseriffont family, default toTime New Roman.:sans_serif_family- Sets thesans-seriffont family, default toArial.:cursive_family- Sets thecursivefont family, default toComic Sans MS.:fantasy_family- Sets thefantasyfont family, default toImpact.:monospace_family- Sets themonoscapefont family, default toCourier New.:font_files- Load specified font files into the fonts database.:font_dirs- Load all fonts from the specified directory into the fonts database.:skip_system_fonts- Disable systems fonts loading. You should add some some fonts with:font_filesor:font_dirsotherwise, text elements will not be processed.
Summary
Functions
List successfully loaded font faces. Useful for debugging.
Queries all valid SVG ids with bounding boxes
Try to convert svg_string to out_png.
Try to convert svg_string to a png buffer..
Try to convert the contents of in_svg to out_png.
Types
Functions
@spec list_fonts(options :: Resvg.Options.resvg_options()) :: {:ok, [String.t()]} | {:error, String.t()}
List successfully loaded font faces. Useful for debugging.
opts refer to options must at least set the
resources_dir key to a valid path.
The functions return {:ok, fonts_list} in case of success. Otherise, it returns
{:error, reason} if an error occurs.
Examples
Resvg.list_fonts(resources_dir: "/tmp")
{:ok, ["/usr/share/fonts/truetype/dejavu/DejaVuSansMono-BoldOblique.ttf..", ...]}
Queries all valid SVG ids with bounding boxes
opts refer to options
The functions return a list of %Rsvg.Native.Node{}s.
Examples
Resvg.query_all("rustacean.svg")
[
%Resvg.Native.Node{
id: "Layer-1",
x: -63.99300003051758,
y: 90.14399719238281,
width: 1304.344970703125,
height: 613.6170043945312
}
]
@spec svg_string_to_png( svg_string :: String.t(), out_png :: Path.t(), options :: Resvg.Options.resvg_options() ) :: :ok | {:error, String.t()}
Try to convert svg_string to out_png.
svg_string must be a valid svg file.
out_png must be a path to a non-existent file.
opts refer to options must at least set the
resources_dir key to a valid path.
The functions return :ok in case of success. Otherise, it returns
{:error, reason} if an error occurs.
Examples
svg_string = "
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<rect width="100" height="100" />
</svg>"
Resvg.svg_string_to_png(svg_string, "output.png", resources_dir: "/tmp")
:ok
@spec svg_string_to_png_buffer( svg_string :: String.t(), options :: Resvg.Options.resvg_options() ) :: {:ok, png_buffer()} | {:error, String.t()}
Try to convert svg_string to a png buffer..
svg_string must be a valid svg file.
opts refer to options must at least set the
resources_dir key to a valid path.
The functions return {:ok, buffer} in case of success. Otherise, it returns
{:error, reason} if an error occurs.
Examples
svg_string = "
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 20 20">
<rect width="100" height="100" />
</svg>"
Resvg.svg_string_to_png(svg_string, "output.png", resources_dir: "/tmp")
{:ok, buffer}
@spec svg_to_png( in_svg :: Path.t(), out_png :: Path.t(), options :: Resvg.Options.resvg_options() ) :: :ok | {:error, String.t()}
Try to convert the contents of in_svg to out_png.
in_svg must be a path to a valid svg file.
out_png must be a path to a non-existent file.
opts refer to options
The functions return :ok in case of success. Otherise, it returns
{:error, reason} if an error occurs.
Examples
Resvg.svg_to_png("input.svg", "output.png")
:ok
Resvg.svg_to_png("doesnotexist.svg", "output.png")
{:error, "Error loading svg file: No such file or directory (os error 2)"}