View Source Resvg (resvg v0.4.0)
Provides 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 thesystemLanguage
attribute 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/3
because it default to thesvg_input
path.:font_family
- Sets the default font family that will be used when nofont-family
is present, default toTimes New Roman
.:font_size
- Sets the default font size that will be used when nofont-size
is present, default to12
.:serif_family
- Sets theserif
font family, default toTime New Roman
.:sans_serif_family
- Sets thesans-serif
font family, default toArial
.:cursive_family
- Sets thecursive
font family, default toComic Sans MS
.:fantasy_family
- Sets thefantasy
font family, default toImpact
.:monospace_family
- Sets themonoscape
font 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_files
or:font_dirs
otherwise, 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
.
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, binary()} | {: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)"}