SVG path data transformation toolkit
Project description
SVG path data transformation toolkit
A tool and a library for SVG path data transformations. Currently it supports a translation and a scaling.
Usage
As a Python library
import svg_path_transform as S
path = S.parse_path("m 2 2 l 2 2")
path = S.translate_and_scale(path, s=(1, 3))
path = S.translate_and_scale(path, t=(3, 4))
path = S.morph(path, lambda p: [p[0] * 2, p[1] * 2])
print(S.path_to_string(path, sfig=4))
As a command line tool
svg_path_transform --dx 100 --dy 100 <<< "m 2 2 l 2 2"
Command line parameters
usage: svg_path_transform [-h] [--dx N] [--dy N] [--sx N] [--sy N] [--sfig N] [--ndig N] [--seg N] [--pretty-print] [-v]
SVG path data transformer
options:
-h, --help show this help message and exit
--dx N translate x by N
--dy N translate y by N
--sx N scale x by N
--sy N scale y by N
--sfig N round to N significant figures
--ndig N round to N decimal places
--seg N convert to straight line segments with a given max distance
--pretty-print pretty print the input path and exit
-v, --version show program's version number and exit
Hint: a bash function to transform an SVG with a single path inside
function svg_transform() {
selector='//_:path[1]/@d'
input=$(</dev/stdin)
old_path="$(xmlstarlet sel -t -v "$selector" <<< "$input")"
[[ $? -ne 0 ]] && echo "could not parse SVG" && return 1
new_path="$(svg_path_transform "$@" <<< "$old_path")"
[[ $? -ne 0 ]] && echo "could not parse path" && return 1
xmlstarlet ed -u "$selector" -v "$new_path" <<< "$input"
[[ $? -ne 0 ]] && echo "could not update SVG" && return 1
return 0
}
svg_transform --sx 2 --sy 2 < intput.svg > output.svg
Installation
pip install svg_path_transform
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
svg_path_transform-2.0.2.tar.gz
(10.1 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file svg_path_transform-2.0.2.tar.gz.
File metadata
- Download URL: svg_path_transform-2.0.2.tar.gz
- Upload date:
- Size: 10.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c2e432f9a79f0551c9069e964df0c404136851fec9119dd4ac2a08e4bb3e22d7
|
|
| MD5 |
002fca4c9cd39625879f4e016cc9a32e
|
|
| BLAKE2b-256 |
98402115ead79510ee78cd7cb86eef90b1c848ff8247e43bb1f5c436bab4ccca
|
File details
Details for the file svg_path_transform-2.0.2-py3-none-any.whl.
File metadata
- Download URL: svg_path_transform-2.0.2-py3-none-any.whl
- Upload date:
- Size: 11.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
283e7856f2731baccecf58d13e947bd8c06408c8e149f46f31980738e56a5f70
|
|
| MD5 |
217db1b9116a8fba4e457ef854c8745c
|
|
| BLAKE2b-256 |
5e5c07167c46eb10469bf5a7e6913f6ec43d079b9b766f3127429b9384bc3a54
|