| .gitignore | ||
| AppIcon.icns | ||
| AppIcon.ico | ||
| LICENSE | ||
| png-meta-editor.py | ||
| README.md | ||
| requirements.txt | ||
| screenshot.png | ||
| setup.py | ||
| version.txt | ||
PNG Metadata Editor v2.3.0
A graphical tool for viewing and editing metadata in PNG files with an intuitive image browser interface.
Features
Core Features
- View all metadata fields (tEXt, zTXt, iTXt chunks) in PNG files
- Add, edit, and delete metadata fields
- Copy metadata values to clipboard
- Visual indication of unsaved changes
- Pretty-print JSON values in editor (auto-flattens on save)
Image Browser
- Browse directories with thumbnail previews
- Auto-scroll to selected images
- Trackpad and mousewheel scrolling support
- Smooth navigation between multiple files
User Interface
- Automatic dark mode detection (macOS, Windows, Linux)
- Adaptive canvas background based on system theme
- Unicode support throughout UI
- Resizable panes for optimal workflow
Technical Improvements
- Smart JSON handling: displays formatted, saves flattened
- Proper file handle management for reliable multi-file loading
- Enhanced scroll region updates for smooth browsing
Installation
Prerequisites
- Python 3.6+
- Tkinter (usually included with Python)
Dependencies
Install required packages using pip:
pip install pillow
Usage
Basic Workflow
-
Run the application:
python png-meta-editor.py -
Browse Directory: Click "Browse Directory" to load thumbnails from a folder
-
Select Image: Click any thumbnail to load its metadata
-
View Metadata: See all fields in the tree view with preview
-
Edit Fields:
- Double-click or use "Edit Field" to modify values
- JSON values display formatted but save flattened
-
Save Changes: Click "Save Changes" to write metadata back to file
Keyboard Shortcuts
- Double-click on tree item to edit
- Enter/Escape in dialogs to confirm/cancel
Dark Mode
The application automatically detects your system theme:
- macOS: Reads
AppleInterfaceStylesetting - Windows: Reads personalization registry settings
- Linux: Checks GTK theme preferences
Building for Distribution
Using build.py (Recommended)
-
First install the required build tools:
pip install pyinstaller -
Build the application for your platform:
python build.py -
The resulting executable will be in the
dist/directory
Manual PyInstaller Commands
Windows
pyinstaller --name="PNG Metadata Editor" \
--windowed \
--onefile \
--icon=AppIcon.ico \
--version-file version.txt \
png-meta-editor.py
macOS
pyinstaller --name="PNG Metadata Editor" \
--windowed \
--onefile \
--icon=AppIcon.icns \
--version-file version.txt \
png-meta-editor.py
Linux
pyinstaller --name="PNG Metadata Editor" \
--windowed \
--onefile \
png-meta-editor.py
Required Files
For building, you'll need:
version.txt(for version information)AppIcon.ico(Windows icon)AppIcon.icns(Mac icon)requirements.txt(for dependencies)
Technical Details
JSON Handling
The editor intelligently handles JSON metadata:
- Display: Pretty-printed with indentation for readability
- Storage: Automatically flattened to single line to preserve original format
- Example:
// What you see in editor: { "prompt": "a cat", "steps": 20 } // What gets saved: {"prompt":"a cat","steps":20}
File Management
- Proper file handle release after reading metadata
- Supports loading multiple files sequentially without issues
- Thumbnail caching for smooth browsing experience
License
This project is licensed under the MIT License - see LICENSE for details.
Author
Robert Tusa
robert@tusa.at
Version History
v2.3.0 (2026-01-07) - Major UI Update
- Added image browser with thumbnail previews
- Implemented dark mode detection for all platforms
- Added trackpad/mousewheel scrolling support
- Smart JSON flattening (preserves original format)
- Fixed file loading issues with proper handle management
- Enhanced scroll region updates
- Unicode support in UI elements
v1.0.0 (2026-01-05) - Initial Release
- Basic metadata viewing and editing
- Tree view with detail pane
- Add, edit, delete operations
- JSON pretty-printing
