• 2.3.0 c34e2d663c

    2.3.0 Stable

    robert released this 2026-01-07 23:09:12 +01:00 | 0 commits to main since this release

    PNG Metadata Editor v2.3.0 - Release Notes

    Release Date: January 7, 2026

    Overview

    Version 2.3.0 represents a major update to PNG Metadata Editor with significant UI enhancements, critical bug fixes, and improved user experience. This release introduces an image browser with thumbnail previews, automatic dark mode detection, and intelligent JSON handling that preserves original formatting.

    New Features

    Image Browser with Thumbnails

    • Browse Directory functionality loads all PNG files as 150x150 thumbnails
    • Click any thumbnail to instantly load its metadata
    • Auto-scroll centers selected images in the viewport
    • Progress indicator shows loading status for large directories
    • Smooth navigation between multiple files without reopening dialogs

    Automatic Dark Mode Detection

    • Detects system theme on macOS, Windows, and Linux
    • Adaptive canvas and frame colors based on OS settings
    • Dark mode: #2b2b2b backgrounds with white text
    • Light mode: #f0f0f0 backgrounds with black text
    • Seamless integration with no user configuration needed

    Enhanced Scrolling

    • Trackpad and mousewheel scrolling support
    • Platform-specific scroll event handling (macOS, Windows, Linux)
    • Triple scroll region update ensures reliable thumbnail browsing
    • Smooth scrolling experience across all platforms

    Smart JSON Handling

    • format_value_for_display(): Pretty-prints JSON for readable editing
    • flatten_json_if_valid(): Automatically flattens JSON on save
    • Preserves original compact format in PNG metadata
    • Example: Edit multi-line JSON, save as single-line automatically
    • No user intervention required

    Critical Bug Fixes

    File Loading Issue (FIXED)

    • Problem: Couldn't load second file after first load; application would hang or error
    • Cause: PIL Image handles weren't being closed, leaving files locked
    • Solution: Added img.close() after metadata extraction
    • Impact: Now supports reliable sequential file loading

    JSON Format Preservation (FIXED)

    • Problem: Edited JSON values were saved in multi-line pretty-printed format instead of original compact format
    • Cause: Pretty-printed JSON from editor was saved as-is
    • Solution: New flatten_json_if_valid() function automatically compresses JSON before saving
    • Impact: Maintains consistent metadata format: {"key":"value"} not multi-line

    Scroll Region Update (FIXED)

    • Problem: Couldn't scroll to last thumbnails in directory
    • Cause: Scroll region wasn't updated after thumbnail loading completed
    • Solution: Triple update strategy (0ms, 100ms, 300ms) ensures proper scroll region
    • Impact: Full access to all thumbnails regardless of directory size

    Technical Improvements

    File Handle Management

    • Proper image closure after reading metadata
    • Prevents file locking on Windows
    • Enables reliable multi-file workflows

    Code Architecture

    • New helper functions for theme detection and JSON handling
    • Platform-specific implementations for cross-platform compatibility
    • Enhanced separation of concerns for maintainability

    Performance

    • Progress updates every 3 files during thumbnail loading
    • Deferred scroll region updates prevent UI freezing
    • Efficient thumbnail caching

    Documentation Updates

    README.md v2.3.0

    • Complete feature list with organized categories
    • Updated usage instructions with image browser workflow
    • Dark mode explanation for all platforms
    • Technical details on JSON handling
    • Clean, emoji-free markdown for universal compatibility

    Technical Documentation

    • Four mermaid sequence diagrams showing component interactions
    • Complete architecture overview with design patterns
    • Comprehensive function documentation
    • Troubleshooting section updated with v2.3.0 fixes
    • ASCII-only formatting for maximum compatibility

    Helper Functions Documentation

    • Seven new helper functions documented
    • Platform-specific implementation details
    • Critical workflows explained (JSON, Theme, Image Loading)
    • Best practices updated for v2.3.0

    Upgrade Notes

    For Users

    • No configuration changes required
    • Existing PNG files remain compatible
    • Dark mode automatically detected on startup
    • All features work out-of-the-box

    For Developers

    • Review helper functions documentation for new APIs
    • Note: flatten_json_if_valid() must be called before saving
    • Theme colors available via get_theme_colors()
    • Image browser scroll binding via bind_mousewheel()

    Breaking Changes

    None. This release is fully backward compatible with v1.0.0.

    Known Issues

    None reported at release time.

    Installation

    pip install pillow
    python png-meta-editor.py
    

    Or use the provided build script:

    python build.py
    

    Files Included

    • png-meta-editor.py - Main application (v2.3.0)
    • README.md - User documentation
    • TECHNICAL-DOCS.md - Technical reference with diagrams
    • HELPER-FUNCTIONS.md - Helper function documentation
    • build.py - Build script for distribution

    Commit Message

    feat: add JSON flattening and fix file loading with proper image handle cleanup (v2.3.0)
    

    Contributors

    Robert Tusa (robert@tusa.at)

    License

    MIT License

    What's Next

    Future improvements planned for v2.4.0:

    • Batch processing for multiple files
    • Metadata validation rules
    • Export/import to JSON
    • Undo/redo support
    • Reactive theme changes
    • Async thumbnail loading

    Download: Available in repository
    Support: Open an issue for bugs or feature requests

    Downloads