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

Uploaded Source

Built Distribution

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

Uploaded Python 3

File details

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

File metadata

  • Download URL: svg_path_transform-1.2.2.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-1.2.2.tar.gz
Algorithm Hash digest
SHA256 1483319f125ded8beeee6875cf78cbffe946d6c6349349585a7ddc7bfd3658b5
MD5 28eab4d0a1ec29a5fb45f469c3b20f7d
BLAKE2b-256 3429b0afb389b5ab04e5338635178cebd3c47aebdc23f6bbda434312ac9205a6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for svg_path_transform-1.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 818a5154b1f49cacad94a17814ad1f71531f5eec706ea6299f12d5afe1b085d1
MD5 03bc9595c6f598cd688694d773b4d499
BLAKE2b-256 0ec59a4c5d297bb1134553fddbbfbd82ce049309b03ef2992e597826599f8531

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