Skip to main content

Convert an image or SVG into a padded polygon hull for CSS shape-outside / text-wrap.

Project description

ipolypad

Convert an image or SVG into a padded polygon hull suitable for CSS shape-outside and HTML/canvas text-wrap engines. Reference implementation.

See the project root README.md and SPEC.md for the full design. This package is the Python side — smart, batteries-included, multi-format output.

Install

uvx ipolypad trace dragon.svg --pad 6 --max-points 32 --out dragon.json
# or
uv pip install ipolypad

CLI

ipolypad trace <src> [--size 200] [--pad 6] [--max-points 32] \
                     [--hull / --no-hull] [--format json,css,svg,png,html] \
                     [--enhance / --no-enhance] [--bg-tolerance 12] \
                     [--selector .figure] [--out path]

ipolypad batch '*.svg' --out-dir dist/ [trace options...]

src may be a local path, an http(s):// URL, or a data: URL.

Library

from ipolypad import trace

result = trace("dragon.svg", size=200, pad=6, max_points=32, format="json")
print(result["points"])

Output

Default JSON:

{
  "src": "dragon.svg",
  "raster": { "width": 200, "height": 200, "pad": 6 },
  "max_points": 32,
  "n_points": 18,
  "points": [[0.500000, 0.020000], ...]
}

points are normalized 0..1 against the rasterization box, six decimals, no trailing closing vertex (polygon is implicitly closed).

License

Apache-2.0. See LICENSE.

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

ipolypad-1.0.4.tar.gz (12.9 kB view details)

Uploaded Source

Built Distribution

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

ipolypad-1.0.4-py3-none-any.whl (16.2 kB view details)

Uploaded Python 3

File details

Details for the file ipolypad-1.0.4.tar.gz.

File metadata

  • Download URL: ipolypad-1.0.4.tar.gz
  • Upload date:
  • Size: 12.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ipolypad-1.0.4.tar.gz
Algorithm Hash digest
SHA256 9817431fb99bb2cca0ffa036319be35090e7978246a09ac739a827c22d0af34a
MD5 a7548d749bf22f46fc31cadd901c2372
BLAKE2b-256 915bdda47e4cf594f25889ec00ba5e2f5a4b54b80784ebb2f64f7251ddf42540

See more details on using hashes here.

File details

Details for the file ipolypad-1.0.4-py3-none-any.whl.

File metadata

  • Download URL: ipolypad-1.0.4-py3-none-any.whl
  • Upload date:
  • Size: 16.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.2 {"installer":{"name":"uv","version":"0.11.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for ipolypad-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 0659c31d1b7f13fed0bfaa2cb6cad3bcbaa625b9c196628ffe28bdcef1d5f880
MD5 a0e8c6d5b5ff7ca8f60c501b3095a833
BLAKE2b-256 b70586806edf9a933510e396b7a035f632969072736465fa347fd2a2103e4958

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