Skip to content

Commit fb42e97

Browse files
committed
Initial commit: PixieSwitch - batch image converter
0 parents  commit fb42e97

File tree

6 files changed

+519
-0
lines changed

6 files changed

+519
-0
lines changed

.gitignore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
__pycache__/
2+
*.pyc
3+
dist/
4+
build/
5+
*.spec
6+
.venv/
7+
venv/

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2025
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
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

Comments
 (0)