|
1 | 1 | # Python Bindings Changelog |
2 | 2 |
|
| 3 | +## [0.5.0] - TBD |
| 4 | + |
| 5 | +### Major Features |
| 6 | + |
| 7 | +#### Scientific Computing |
| 8 | +- **Matrix Class**: Full-featured matrix operations with NumPy interoperability |
| 9 | + - Zero-copy NumPy conversion |
| 10 | + - Runtime dimension support |
| 11 | + - More matrix methods to come |
| 12 | +- **PCA (Principal Component Analysis)**: Complete PCA implementation |
| 13 | + - Fit, transform, and inverse transform |
| 14 | + - Batch operations support |
| 15 | + - Configurable components and centering |
| 16 | +- **Optimization Module**: Hungarian algorithm for assignment problems |
| 17 | + |
| 18 | +#### Advanced Image Processing |
| 19 | +- **Motion Blur**: Linear and spin blur effects |
| 20 | + - Configurable angle, distance, and strength |
| 21 | + - SIMD-optimized performance |
| 22 | +- **Convolution & Filtering**: |
| 23 | + - Gaussian blur with sigma control |
| 24 | + - Sobel edge detection |
| 25 | + - Sharpen filter |
| 26 | +- **Image Transforms**: Warp, rotate, and perspective transforms |
| 27 | + - With multiple interpolation methods |
| 28 | + |
| 29 | +#### Enhanced Image API |
| 30 | +- **Image**: Generic storage (Rgba, Rgb, Grayscale) |
| 31 | +- **Pixel-Level Access**: Direct pixel component assignment |
| 32 | + - `image[y, x].r = 255` syntax support |
| 33 | + - Color conversion on pixel proxies |
| 34 | + - Blend operations at pixel level |
| 35 | +- **NumPy Integration**: Improved strided image support |
| 36 | + - Handles non-contiguous arrays |
| 37 | + - Preserves memory layout |
| 38 | +- **Image Operations**: |
| 39 | + - `copy()`, `dupe()`, `fill()` methods |
| 40 | + - `view()`, `is_view` property |
| 41 | + - `crop()`, `extract()`, `insert()` methods |
| 42 | + - `flip_horizontal()`, `flip_vertical()`, `rotate()` |
| 43 | + - `set_border()`, `get_rectangle()` |
| 44 | + - PSNR calculation |
| 45 | + |
| 46 | +#### Drawing Enhancements |
| 47 | +- **Arc Drawing**: Circle arcs with fill support |
| 48 | + - Start/end angles in degrees |
| 49 | + - Antialiased rendering |
| 50 | +- **Advanced Blending**: 12 blend modes for compositing |
| 51 | + - Per-pixel and whole-image blending |
| 52 | + - Mode selection via Blending enum |
| 53 | + |
| 54 | +### API Improvements |
| 55 | +- **Type Annotations**: Modern Python type hints |
| 56 | + - Uses `T | None` syntax |
| 57 | + - Comprehensive stub files (.pyi) |
| 58 | + - Better IDE autocomplete |
| 59 | +- **Iteration Support**: Images are now iterable |
| 60 | + - Row-by-row iteration |
| 61 | + - Pixel iterator access |
| 62 | +- **Comparison Operators**: Color types support equality comparison |
| 63 | +- **Rectangle Enhancements**: |
| 64 | + - IoU (Intersection over Union) calculation |
| 65 | + - Overlap detection |
| 66 | + - Tuple support for intersection |
| 67 | + |
| 68 | +### Breaking Changes |
| 69 | +- **Canvas.draw_text**: Parameter order changed |
| 70 | + - Old: `draw_text(x, y, text, font, color)` |
| 71 | + - New: `draw_text(x, y, text, color, font)` |
| 72 | + |
| 73 | +### Bug Fixes |
| 74 | +- Fixed RGBA object detection in Image color initialization |
| 75 | +- Corrected alpha blending in Canvas.fill_rectangle SOFT mode |
| 76 | +- Improved error messages with file paths |
| 77 | +- Fixed None handling in Image.set_border |
| 78 | + |
| 79 | +### Performance |
| 80 | +- SIMD-optimized filtering operations |
| 81 | +- Efficient memory management for views |
| 82 | +- Zero-copy operations where possible |
| 83 | + |
3 | 84 | ## [0.4.1] - 2025-08-06 |
4 | 85 |
|
5 | 86 | ### Fixed |
|
0 commit comments