Skip to content

zignal 0.2.0

Choose a tag to compare

@arrufat arrufat released this 25 Jul 06:26
· 479 commits to master since this release

Highlights

  • 2-5x faster image operations with SIMD-optimized RGBA kernels
  • High-quality image interpolation - 6 algorithms including Lanczos and Mitchell
  • Terminal graphics - Display images with Sixel, Kitty, Braille, and ANSI
  • Python bindings - Zero-copy NumPy integration and rich display support

Core Library

New Features

  • Image interpolation methods: nearest, bilinear, bicubic, Catmull-Rom, Lanczos, Mitchell
  • Terminal display formats: Sixel, Kitty graphics protocol, Braille, ANSI blocks
  • PNG color management and optimized filter selection
  • Refactored image module into organized sub-modules

Performance

  • SIMD kernels for RGBA operations (2-5x speedup)
  • Optimized PNG encoding with adaptive filtering
  • Memory-efficient implementations

Python Bindings

Breaking Change: Image class now uses RGBA storage internally (33% more memory, much faster)

New Features

  • Feature Distribution Matching (FDM) for color transfer
  • Zero-copy NumPy conversion with to_numpy()
  • Jupyter notebook support with format
  • Type stubs for better IDE support
  • Pre-built wheels for Python 3.8-3.13

PRs

  • feat(image): enable zero-copy numpy conversion by @arrufat in #43
  • feat(python): add feature distribution matching bindings by @arrufat in #44
  • perf(fdm): speedup operations and reduce allocations by @arrufat in #45
  • refactor(python): move scripts and sources to subdirs by @arrufat in #46
  • feat(sixel): add sixel support for images by @arrufat in #47
  • feat(python): add __format__ method for display by @arrufat in #48
  • feat(kitty): add kitty graphics protocol support by @arrufat in #49
  • refactor(image): split monolithic module into sub-modules by @arrufat in #50
  • feat(image): add image interpolation methods by @arrufat in #51
  • perf(interpolation): add SIMD kernels for 4xu8 structs (Rgba) by @arrufat in #52
  • feat(python)!: migrate to Image(Rgba) for SIMD performance by @arrufat in #53

Full Changelog: 0.1.0...0.2.0