Releases: madmattp/Bayer-Dithering
Releases · madmattp/Bayer-Dithering
Bayer Dithering v0.3.2
Changelog
[0.3.2] - 2026-05-24
➕ Added
- GitHub Actions Automation: Integrated a dedicated workflow for automated documentation compilation and deployment to GitHub Pages.
(555af32)
🔧 Changed
- Comprehensive Project Metadata: Expanded
pyproject.tomlconfiguration to include precise target audience, graphic multimedia topics, and modern Python lifecycle classifiers (3.13through3.15).
(846be10) - Explicit Project URLs: Map-linked the internal repository, documentation hub, and issue tracker ecosystem directly into the packaging distribution metadata profile.
(246f43c)
⚙️ Fixed
- Type Hint Strictness: Patched core type-hint constraints governing the internal structural definitions within the animated GIF frame-processing methods.
(7c6c9ea) - Metadata Sanitization: Removed duplicate classifier listings within the build configuration schema.
(0935ae0)
📁 Assets & Docs
- MkDocs Platform Launch: Deployed a fully functional documentation suite featuring structured guides for cross-platform installation, explicit CLI command references, and module code-block examples.
(6693184,2d4f22b)
Full Changelog: v0.3.1...v0.3.2
Bayer Dithering v0.3.1
Changelog
[0.3.1] - 2026-05-21
➕ Added
- Optional Dependencies: The
taichiGPU backend is now an optional dependency ([gpu]), making the base installation extremely lightweight and universally compatible out-of-the-box.
(9cbedae) - Smart GPU Fallback: The CLI now features graceful degradation. If a user requests hardware acceleration (
-a gpu) without the backend installed, the program safely intercepts the call, displays a friendly UI warning, and automatically reroutes processing to the CPU.
(9aef246)
🔧 Changed
- Broader Python Support: By making
taichioptional, the strict<3.14Python limitation was inherently lifted. The library can now be installed and run via the CPU pipeline on any modern Python version (>=3.13).
(9aef246)
⚙️ Fixed
- API & Import Safety: Implemented the Dummy Object pattern for
GPUProcessor. This prevents Python from crashing with aNameErrorduring the import stage of@ti.data_orienteddecorators when thetaichibackend is missing.
(9aef246) - PEP 639 Compliance: Updated the license declaration in
pyproject.tomlto use the standard SPDX identifier (license = "MIT"), resolvingsetuptoolsdeprecation warnings during the build process.
(9cbedae)
📁 Assets & Docs
- Updated
README.mdto include a new "Prerequisites" section explaining the CPU/GPU pipeline differences.
(9cbedae) - Enhanced installation instructions to reflect the new
pip install BayerDithering[gpu]command.
(23d50fb,c7cf875)
Full Changelog: v0.3...v0.3.1
Bayer Dithering v0.3
Changelog
[0.3.0] - 2026-05-20
➕ Added
- GPU Acceleration: Introduced the
--arch gpubackend powered bytaichi, allowing massive parallelization and blazing-fast render times for large images and videos. - Global CLI: You can now install the package and use the
dithercommand globally directly from your terminal. - Python API: The project is now a fully installable modular package (
pip install BayerDithering). You can importBayerDither,DitherConfig, and processors directly into your own Python scripts.
🔧 Changed
- Architectural Rewrite: Transitioned from a monolithic script to a clean, object-oriented framework utilizing the Strategy Pattern (
CPUProcessorandGPUProcessor). - Dependency Management: Replaced the legacy
requirements.txtwith a modernpyproject.toml(PEP 621 standard) for streamlined builds and metadata management. - Context Managers for Media: Video and GIF processing now enforce the
withstatement (ProcessedVideo,ProcessedGIF) to guarantee safe memory handling and eliminate leftover temporary files. - Auto-Naming: If the
--outputflag is omitted, the CLI now automatically generates an intuitive output filename (e.g.,input_dithered.mp4).
⚙️ Fixed
- Memory Leaks: Completely overhauled how temporary audio and video tracks are handled during FFmpeg/OpenCV merges, preventing blocked background processes.
- Thread Scaling Constraints: Replaced the old manual threading arguments with native backend parallelization, making CPU and GPU scaling fully automatic across different OS architectures.
📁 Assets & Docs
- 📦 Distribution Builds: Added official
.whland.tar.gzdistribution assets for direct PyPI-style installation.
Full Changelog: v0.2.2...v0.3
Bayer Dithering v0.2.2
Changelog
[0.2.2] - 2025-07-07
⚙️ Fixed
- GIF Processing: Fixed a bug where frames in GIFs overlapped and produced a "smeared" effect. This was caused by improper transparency settings, which have now been removed.
(ed129d3) - Windows Compatibility: Fixed video processing to use multithreading on Windows and multiprocessing on POSIX systems, ensuring cross-platform stability.
(c9a6552,2d07cb4)
➕ Added
- Upscale Option: Introduced --upscale flag to restore original image/video resolution after downscaling and dithering. Enabled by default.
(0291dfa)
🔧 Changed
- Default Video Output: Output videos now use .avi format and the rawvideo codec by default to ensure lossless quality and avoid compatibility issues with .mp4 playback.
(7c9b758) - Defaults Tweaked: Updated default values for contrast (1.5), sharpness (1.6), and downscale factor (2) for better visual results out-of-the-box.
(1ad0594) - Minor parser help message improvements for better clarity.
(92a05f4, 011ae7e)
📁 Assets & Docs
- 🐱 Added test images and GIFs for development and verification.
(415e463, 37a02c9) - Updated README.md to reflect upscale feature, video format requirements, and improved examples.
(47927a0, 82cde03)
Full Changelog: v0.2.1...v0.2.2
Bayer Dithering v0.2.1
- Fixed matrix normalization values.