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.dump('output.svg')
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.

Install

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

Documentation

.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

License

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.

Source Distribution

svgmanip-0.0.12.tar.gz (9.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

svgmanip-0.0.12-py2.py3-none-any.whl (9.3 kB view details)

Uploaded Python 2Python 3

File details

Details for the file svgmanip-0.0.12.tar.gz.

File metadata

  • Download URL: svgmanip-0.0.12.tar.gz
  • Upload date:
  • Size: 9.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for svgmanip-0.0.12.tar.gz
Algorithm Hash digest
SHA256 de18505b198debd4b031707160831b5ffd72077c1fc242a2d554fb8eabfa71ca
MD5 4632247991ebcecc126b223127b54a68
BLAKE2b-256 db53e0000a361a170b8b43ec0f14bd3e3a65e5e1bc1d1a6b1791bf314449dff1

See more details on using hashes here.

File details

Details for the file svgmanip-0.0.12-py2.py3-none-any.whl.

File metadata

  • Download URL: svgmanip-0.0.12-py2.py3-none-any.whl
  • Upload date:
  • Size: 9.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.10.5

File hashes

Hashes for svgmanip-0.0.12-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 a3aafe8abc94796661095ec3eac632cac348d03bf2c33f480d1b6377117b1c66
MD5 6ca3fc52ea9b60daabaa264cdfba3afd
BLAKE2b-256 6da7071c99116e3dd80f06062be60a566b8ff223e21298766b6d071212168d48

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page