All notable changes to image_toolkit will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.1.0 - 2026-01-17
- Fluent API design for intuitive image manipulation workflows
ImageHandlerclass for single-image operations with method chainingBatchImageHandlerclass for parallel batch processing of multiple images- Context manager support (
withstatement) for automatic resource cleanup - Automatic format detection and validation
resize()- Resize images with custom dimensionsresize_aspect()- Aspect-ratio preserving resize with intelligent croppingthumbnail()- Generate thumbnails with multiple sizing strategies (fit, cover, stretch)crop()- Extract image regions with coordinate-based croppingrotate()- Rotate images by arbitrary angles with automatic dimension adjustmentflip()- Horizontal and vertical image flippingadjust_brightness()- Brightness adjustment with clampingadjust_contrast()- Contrast enhancement/reductionadjust_saturation()- Color saturation controlgrayscale()- Color to grayscale conversionblur()- Gaussian blur with configurable radius
- Support for JPEG, PNG, WebP, TIFF, BMP formats
convert()- Format conversion with quality controloptimize()- File size optimization with configurable quality/compression- Progressive JPEG encoding support
- WebP format support for modern web applications
get_info()- Extract comprehensive image metadata (dimensions, format, mode, size)analyze_duplicates()- Perceptual hash-based duplicate detection across image sets- Statistical analysis capabilities for image properties
to_tensor()- Convert PIL Images to PyTorch tensors with normalizationfrom_tensor()- Convert PyTorch tensors back to PIL Images- Support for ImageNet normalization presets
- Custom normalization parameter support
- Automatic channel reordering (CHW ↔ HWC)
- TurboJPEG acceleration for JPEG operations (3-5x speedup over PIL)
- Parallel batch processing with configurable worker pools
- Memory-efficient streaming for large image sets
- Lazy evaluation support for transformation pipelines
- Intelligent fallback mechanisms when TurboJPEG unavailable
- Comprehensive error handling with descriptive messages
- Input validation for all transformation parameters
- Graceful degradation when optional dependencies missing
- Type hints throughout codebase for better IDE support
- JPEG Operations: 3-5x speedup using TurboJPEG vs PIL for decode/encode operations
- Batch Processing: Near-linear scaling with CPU cores for parallel image processing
- Memory Efficiency: Streaming batch processing prevents memory exhaustion on large datasets
- Perceptual Hashing: Fast duplicate detection using pHash algorithm (average hashing)
- Comprehensive README.md with quick start guide and feature overview
- Detailed README_detailed.md with extensive examples and use cases
- Architecture documentation (docs/ARCHITECTURE.md) explaining design philosophy
- API reference documentation for all public methods
- Installation instructions for core and optional dependencies
- Performance comparison benchmarks
- Machine learning integration examples
- Batch processing usage patterns
- 15+ test modules covering all major functionality:
- test_basic.py - Core functionality tests
- test_transformations.py - Image transformation operations
- test_batch.py - Batch processing and parallelization
- test_formats.py - Format conversion and compatibility
- test_ml_integration.py - PyTorch tensor operations
- test_analysis.py - Image analysis and duplicate detection
- test_error_handling.py - Error conditions and edge cases
- test_context_manager.py - Resource management
- test_turbojpeg.py - TurboJPEG acceleration
- test_optimization.py - Image optimization
- Additional specialized test suites
- High test coverage across all modules
- Integration tests for real-world workflows
- Performance benchmarks
- Python 3.8+
- Pillow (PIL) 10.0.0+ - Image processing foundation
- NumPy - Numerical operations and array handling
- PyTurboJPEG - Hardware-accelerated JPEG operations (3-5x faster)
- PyTorch - Machine learning tensor integration
- imagehash - Perceptual hashing for duplicate detection