Skip to main content

`svgmanip` helps import and composite together existing SVG drawings. More information is available at the GitHub README.

Project description

Say Thanks!

svgmanip is a library that helps import and composite together existing SVG files. It supports a superset of the features supported by svgutils. For example, you can easily rotate and scale SVGs on the fly. In Warfrogs, this code:

from svgmanip import Element
output = Element(384, 356)  # size of the output file.

fate = Element('assets/fate.svg').rotate(-15)
skip = Element('assets/skip.svg').rotate(-5)
attack = Element('assets/attack.svg').rotate(5)
output.placeat(fate, 0.73, 23.55)
output.placeat(skip, 107.81, 8.76)
output.placeat(attack, 170.9, 0.08)

output.save_as_png('output.png', 1024)

Generates this image:

(The cropped edges are because of the output dimensions, which are customizable.)

Unlike svgutils (which this module is based on), .rotate() rotates about the center of the graphic, instead of the top left corner. This produces results the user would expect.

Did you notice that you didn’t need to specify the dimensions of an imported image? That’s because svgmanip detects it automatically behind the scenes!

.dumps() grabs the full, real SVG code, not just the root element like .tostr() in svgutils.


npm install -g svgexport  # if you want to be able to export to PNG
pip install svgmanip


.rotate() additionally supports passing optional x and y coordinates.

Since the Element class inherits from the Figure class in svgutils, it also supports these svgutils methods:

  • .scale(factor) - scale the SVG by a particular factor
  • .find_id(element_id) - find the inner SVG element with the given id. This method is guranteed to return an Element object fromsvgmanip.
  • .find_ids(element_ids) - find the inner SVG elements with the given ids. This returns a Panel object from svgutils.

svgmanip also supports these methods in addition to the ones listed in the example:

  • .dumps - dump to a string
  • .loads - load from a string
  • .load - load from a file (note: using the default constructor is reccomended in this context)
  • .to_png - returns the generated PNG as a string


Apache 2.0. Example image of the Warfrogs cards is licensed under the CC BY-NC-ND 4.0.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for svgmanip, version 0.0.10
Filename, size File type Python version Upload date Hashes
Filename, size svgmanip-0.0.10.tar.gz (5.4 kB) File type Source Python version None Upload date Hashes View
Filename, size svgmanip-0.0.10-py2.py3-none-any.whl (9.3 kB) File type Wheel Python version py2.py3 Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Huawei Huawei PSF Sponsor Microsoft Microsoft PSF Sponsor NVIDIA NVIDIA PSF Sponsor Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page