81 lines
1.9 KiB
Markdown
81 lines
1.9 KiB
Markdown
# Pixlit — Image Converter
|
||
|
||
A clean GTK4/libadwaita desktop application for converting images between formats, with first-class support for HEIC/HEIF files from iPhones and modern cameras.
|
||
|
||
## Features
|
||
|
||
- **HEIC / HEIF → JPEG, PNG, WebP** (and vice-versa)
|
||
- Supports: HEIC, HEIF, JPEG, PNG, WebP, BMP, TIFF, GIF as inputs
|
||
- Output formats: **JPEG**, **PNG**, **WebP**
|
||
- Quality slider (1–100) with per-format behaviour
|
||
- Batch conversion — add as many files as you like
|
||
- Drag-and-drop file support
|
||
- Output directory picker
|
||
- Progress tracking per file
|
||
- Native GNOME look via libadwaita
|
||
|
||
## Building
|
||
|
||
### Quick local build
|
||
|
||
```bash
|
||
cd pixlit-nix
|
||
nix-build
|
||
./result/bin/pixlit
|
||
```
|
||
|
||
### Installing into your profile
|
||
|
||
```bash
|
||
nix-env -f . -i
|
||
pixlit
|
||
```
|
||
|
||
### NixOS system package (flake or configuration.nix)
|
||
|
||
```nix
|
||
# configuration.nix
|
||
environment.systemPackages = [
|
||
(pkgs.callPackage /path/to/pixlit-nix {})
|
||
];
|
||
```
|
||
|
||
## Requirements (handled automatically by Nix)
|
||
|
||
| Dependency | Purpose |
|
||
|---|---|
|
||
| Python 3 | Runtime |
|
||
| Pillow | Image decoding/encoding |
|
||
| pillow-heif (via Pillow HEIC plugin) | HEIC/HEIF support |
|
||
| PyGObject | GTK4 + GLib bindings |
|
||
| GTK 4 | Widget toolkit |
|
||
| libadwaita | GNOME HIG widgets |
|
||
| gobject-introspection | GObject type system |
|
||
|
||
## File Layout
|
||
|
||
```
|
||
pixlit-nix/
|
||
├── default.nix ← Nix derivation
|
||
├── pixlit.py ← Application source (GTK4/libadwaita)
|
||
├── pixlit.svg ← Scalable app icon
|
||
├── pixlit.png ← 512×512 icon
|
||
├── pixlit-512.png ← 512×512 icon
|
||
├── pixlit-256.png ← 256×256 icon
|
||
├── pixlit-128.png ← 128×128 icon
|
||
└── README.md ← This file
|
||
```
|
||
|
||
## Usage
|
||
|
||
1. Launch Pixlit
|
||
2. Click **Choose Files…** or drag images onto the drop zone
|
||
3. Select your desired output format (JPEG / PNG / WebP)
|
||
4. Adjust the quality slider
|
||
5. Choose where to save converted files
|
||
6. Click **Convert Images**
|
||
|
||
## License
|
||
|
||
MIT — see `default.nix` meta block.
|