Highlights
- New APIs: Rectangle helpers (centers/corners/clip/covers), byte-buffer image loading (Image.loadFromBytes / load_from_bytes), color-wide invert(), and mean pixel error metrics join PSNR/SSIM for easier quality checks.
- Linear Algebra Refresh: Matrix norms break out into explicit helpers (element, Schatten, induced, nuclear, spectral, etc.), with clearer error surfaces on invalid parameters.
- Visualization & Examples: Canvas line rendering gains smoother anti-aliased endpoints, and a new contrast-enhancement WASM demo shows off histogram/auto-contrast controls.
- Performance: Integral images now use a unified planar integral layout, speeding up multi-channel box blurs and simplifying the API.
- Stability Fixes: Safer transforms (rank/solver errors bubble out), ORB matcher memory handling, thick-line alpha blending, and hardened PCF/BDF font parsers.
What's Changed
- feat(geom): add rectangle accessors and utilities by @arrufat in #215
- fix(matrix): propagate errors in binary arithmetic ops by @arrufat in #217
- refactor(python): introduce utilities for getters and projections by @arrufat in #218
- feat(matrix): add schatten, induced, and element norms by @arrufat in #219
- feat(example): add contrast enhancement demo by @arrufat in #220
- fix(pcf): correct format flag decoding and add bounds checks by @arrufat in #221
- fix(bdf): parse glyph rows wider than 32 bits by @arrufat in #222
- feat(image): allow loading images from byte buffers by @arrufat in #223
- fix(geometry): return error if transform SVD fails by @arrufat in #224
- fix(features): ensure memory safety and handle orb scale edge cases by @arrufat in #225
- feat(canvas): improve line endpoint anti-aliasing by @arrufat in #226
- feat(color): implement generic color inversion by @arrufat in #227
- refactor(io): simplify image file loading by @arrufat in #228
- feat(metrics): add mean pixel error calculation by @arrufat in #229
- perf(image): use planar integral image for unified API by @arrufat in #230
Full Changelog: 0.7.1...0.8.0