|
| 1 | +# PixieSwitch — Batch Image Converter (GUI) |
| 2 | + |
| 3 | +**PixieSwitch** is a fun, simple GUI to convert images between popular formats. Drop in files, pick an output format, tweak a few options, and go. It handles batch conversion, optional metadata preservation/stripping, basic resizing, and animations (GIF/WebP). |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- Drag & Drop multiple images |
| 8 | +- Output formats: JPG/JPEG, PNG, GIF, WebP, TIFF, BMP, JPEG2000 (JP2/J2K), and optional HEIF/HEIC/AVIF (with pillow-heif) |
| 9 | +- Animation-aware: Keep animation for GIF/WebP (when source is animated) |
| 10 | +- Metadata: preserve EXIF (JPEG) or strip all metadata |
| 11 | +- Resize: constrain longest edge (px) |
| 12 | +- Quality: set lossy compression quality for JPEG/WebP/AVIF/etc. |
| 13 | +- PNG compression level: 0 (fast/big) … 9 (slow/small) |
| 14 | +- Suffix & Output folder controls |
| 15 | +- Multithreaded conversion |
| 16 | + |
| 17 | +## Install |
| 18 | + |
| 19 | +Python 3.9+ recommended (tested on 3.13). Windows, macOS, Linux. |
| 20 | + |
| 21 | +1. Create & activate a virtual env (recommended) |
| 22 | +2. `pip install -r requirements.txt` |
| 23 | +3. `python main.py` |
| 24 | + |
| 25 | +### Optional extras |
| 26 | + |
| 27 | +- HEIF/HEIC/AVIF: install pillow-heif (included in requirements). If your platform lacks libheif, follow the package docs. |
| 28 | +- Animated WebP: we include imageio for better animated WebP handling. If issues arise, Pillow fallback is used. |
| 29 | + |
| 30 | +## Build a standalone app |
| 31 | + |
| 32 | +### Windows (EXE) |
| 33 | + |
| 34 | +``` |
| 35 | +pip install pyinstaller |
| 36 | +pyinstaller --noconfirm --windowed --name PixieSwitch --icon NONE main.py |
| 37 | +# Output in dist/PixieSwitch/ |
| 38 | +``` |
| 39 | + |
| 40 | +### macOS (App bundle/DMG) |
| 41 | + |
| 42 | +``` |
| 43 | +pip install pyinstaller |
| 44 | +pyinstaller --noconfirm --windowed --name PixieSwitch --icon NONE main.py |
| 45 | +# Optional: codesign/notarize per Apple docs |
| 46 | +``` |
| 47 | + |
| 48 | +### Linux (AppImage) |
| 49 | + |
| 50 | +Use pyinstaller for a folder build, then package with tools like appimagetool if desired. |
| 51 | + |
| 52 | +## Usage tips |
| 53 | + |
| 54 | +- Transparency → JPEG: JPEG has no alpha; we composite on white by default. |
| 55 | +- EXIF vs Strip: "Strip ALL metadata" overrides "Preserve EXIF." |
| 56 | +- Animated output: Only GIF & WebP are guaranteed here. Other targets will use the first frame. |
| 57 | +- JPEG2000: Quality handling varies by Pillow build. If unsupported, you'll see an error per file. |
| 58 | + |
| 59 | +## Roadmap |
| 60 | + |
| 61 | +- APNG output (where Pillow supports it) |
| 62 | +- Color profile controls, ICC copy |
| 63 | +- Presets & CLI runner |
| 64 | +- Bulk folder watch mode |
| 65 | + |
| 66 | +## License |
| 67 | + |
| 68 | +MIT |
0 commit comments