zignal 0.2.0
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