Skip to content

lunasvg is a standalone c++ library to create, animate, manipulate and render SVG files.

License

Notifications You must be signed in to change notification settings

danielbot/lunasvg

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

117 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lunasvg

lunasvg is a standalone c++ library to create, animate, manipulate and render SVG files.

svg2png generated PNG

example

#include <lunasvg/svgdocument.h>

using namespace lunasvg;

int main()
{
    SVGDocument document;
    document.loadFromFile("tiger.svg");
    
    Bitmap bitmap = document.renderToBitmap();
    
    // do something useful with the bitmap.
    
    return 0;
}

features

  • Basic Shapes : rect, circle, ellipse, line, polyline, polygon, path.
  • Paint Servers : solidColor, linearGradient, radialGradient, pattern.
  • Clipping, Masking and Compositing : clipPath, mask, group opacity.
  • Document Structures: defs, svg, g, use, symbol.
  • Coordinate Systems, Transformations and Units.
  • Markers.
  • Texts.
  • Animations (TODO) : animate, animateColor, animateMotion, animateTransform.

build

Create a build directory.

mkdir build

Run cmake command inside build directory.

cd build
cmake ..

Run make to build lunasvg.

make -j 2

To install lunasvg library.

make install

demo

While building lunasvg example it generates a simple SVG to PNG converter which can be used to convert SVG file to PNG file.

Run Demo.

svg2png [filename] [resolution] [bgColor]

support

If you like the work lunasvg is doing please consider a small donation:

Buy Me A Coffee

About

lunasvg is a standalone c++ library to create, animate, manipulate and render SVG files.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C++ 98.7%
  • CMake 1.3%