Skip to main content

Posterize an image with stacked SVG geometry (generated by Potrace).

Project description

Posterize

Posterize an image with stacked SVG geometry (generated by Potrace).

API

The package exposes four main functions and two result types:

  • posterize(image_path, num_cols, *, savings_weight=None, vibrant_weight=None, max_dim=None) Load an image from disk and posterize it. Returns a Posterization. image_path: path to the image. num_cols: number of colors (layers) in the result; fewer may be returned if colors are exhausted. savings_weight: weight for sum savings vs average savings when choosing layer colors (default 0.25). vibrant_weight: bias toward more vibrant colors, 0–1 (default 0). max_dim: if set, resize the image so its longer side is at most this many pixels before processing.

  • posterize_mono(pixels, num_cols, *, savings_weight=None, vibrant_weight=None) Posterize a grayscale pixel array. Returns a Posterization. pixels: (r, c) uint8 array (e.g. one channel of an image). num_cols, savings_weight, vibrant_weight: same as posterize.

  • new_target_image(path, max_dim=None) Quantize an image file to at most 512 colors and return a TargetImage (palette, indices, cost matrix). Used internally by posterize; useful if you need the quantized image without building layers. path: path to an image file. max_dim: maximum width or height; image is thumbnailed if larger (default 500).

  • new_target_image_mono(pixels) Quantize a grayscale (r, c) uint8 array to at most 256 colors. Returns a TargetImage. Used internally by posterize_mono.

Result types: Posterization (from posterize / posterize_mono) has .write_svg(path, num_cols=None) and methods for layers, colors, and SVG elements. TargetImage holds the quantized palette, indices, and cost matrix for layer-building.

Example

from posterize import posterize

posterized = posterize("image.png", 4)
posterized.write_svg("output.svg")

Caching

  • .cache_posterize (in the current working directory) Memoizes posterize() and posterize_mono() by their arguments. Repeated calls with the same inputs return the cached Posterization without recomputing layers.

  • .cache_quantize (in the current working directory) Memoizes quantized image data: quantize_image() / quantize_rgba() and quantize_mono(). Used by new_target_image() and new_target_image_mono(), and indirectly by posterize() and posterize_mono().

  • Temp directory (paths.CACHE_DIR, under the system temp dir as cluster_colors_cache) Used while generating SVG paths: a temporary BMP and Potrace-generated SVG are written here during layer_to_svgd() and then removed. No long-lived cache.

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

posterize-2.11.0.tar.gz (126.5 kB view details)

Uploaded Source

Built Distribution

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

posterize-2.11.0-py3-none-any.whl (129.0 kB view details)

Uploaded Python 3

File details

Details for the file posterize-2.11.0.tar.gz.

File metadata

  • Download URL: posterize-2.11.0.tar.gz
  • Upload date:
  • Size: 126.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.4

File hashes

Hashes for posterize-2.11.0.tar.gz
Algorithm Hash digest
SHA256 bf5ed6cad2258dced4fd8d5aaa819f1f030d081da54b8a06d05e22ac2c0b6673
MD5 1fecdd03f5735bc39ef3edff3e3cd24f
BLAKE2b-256 f55b89ed7bfa9cdb2d83efce5a5634b946c89b54eab207d5a8d5de593cd05ad9

See more details on using hashes here.

File details

Details for the file posterize-2.11.0-py3-none-any.whl.

File metadata

  • Download URL: posterize-2.11.0-py3-none-any.whl
  • Upload date:
  • Size: 129.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.4

File hashes

Hashes for posterize-2.11.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0be0108ab9a39a0ffaa53bd59cae1168069d015fd2eb1e4b1cf77bd51dda68f
MD5 b2c70a06eb2004dfdb1f96bb507467e0
BLAKE2b-256 dc7a3122f15177430cc2421d8b1137071e67f529244d8ce9c8358d40a221d1e3

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