Skip to main content

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))
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] [-v]

SVG path data transformer

optional arguments:
  -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
  -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


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.0.tar.gz (9.1 kB view details)

Uploaded Source

Built Distribution

svg_path_transform-2.0.0-py3-none-any.whl (10.7 kB view details)

Uploaded Python 3

File details

Details for the file svg_path_transform-2.0.0.tar.gz.

File metadata

  • Download URL: svg_path_transform-2.0.0.tar.gz
  • Upload date:
  • Size: 9.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for svg_path_transform-2.0.0.tar.gz
Algorithm Hash digest
SHA256 154a9ae93a6b1f812d98d61aa923fd758a484574b7163ac1865525022d956f6a
MD5 79dc3a7efbd8756731a54882bd0e5348
BLAKE2b-256 e7a1f1e7c6055bdb7abbde84e6e6e5a87209f89ee198830ef4e4798c2674acf6

See more details on using hashes here.

File details

Details for the file svg_path_transform-2.0.0-py3-none-any.whl.

File metadata

File hashes

Hashes for svg_path_transform-2.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f6f4c15275b2e9b32537537c4400b3662f0893100feba60cfbf456c69baacf7c
MD5 f7f74ddda1450c6ef1eeaa47d92c6c99
BLAKE2b-256 11934be3c51d5a52a16ac1ed1d60dbdc785261e70b946acf38150ad0f86b0eaf

See more details on using hashes here.

Supported by

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