What's changed in this fork:
- UI improvements
- More features (keep metadata, progressive encode, etc.)
- Comparison mode
- Support more formats (see the table below)
| from JPG | from PNG | from WebP | from AVIF | from HEIC | from BMP | |
|---|---|---|---|---|---|---|
| to JPG | โ | โ | โ | โ | โ | โ |
| to PNG | โ | โ | โ | โ | โ | โ |
| to WebP | โ | โ | โ | โ | โ | โ |
| to AVIF | โ | โ | โ | โ | โ | โ |
- Added batch image resizing function (v0.9 and above)
For Windows, macOS and Linux, download binaries from:
https://github.com/xianfei/Imagine-plus/releases
Imagine-Setup-x.y.z.exe- WindowsImagine-x.y.z.dmg- macOSImagine-0.4.1-x.y.z.AppImage- Linux
App for linux is distributed in AppImage format. Install it with command line:
chmod a+x Imagine-x.y.z-x86_64.AppImage # make executable
./Imagine-x.y.z-x86_64.AppImage # install and runThis branch is the Tauri 2 edition: the app shell
is Rust (src-tauri/) and image processing runs on a statically linked
Rust codec stack โ mozjpeg for JPEG (the same encoder sharp used),
libimagequant palette quantization for PNG, libwebp for WebP, ravif
(rav1e) for AVIF, macOS ImageIO for HEIC/AVIF decode with a webview
libheif fallback elsewhere, and fast_image_resize for SIMD Lanczos3
resizing. EXIF/ICC metadata is preserved via img-parts. Everything
compiles into a single binary: the macOS app bundle is ~9 MB (vs
~100 MB+ for the Electron build, which lives on the master branch).
Node.js is only needed as a build tool (Vite bundles the React UI); there is no Node runtime in the shipped app.
git clone https://github.com/xianfei/Imagine-plus.git
npm install
npm run dev # tauri dev (requires the Rust toolchain)
npm run build # package (bundle in src-tauri/target/release/bundle)
npm test # tsc + jest
cd src-tauri && cargo test # Rust image pipeline testsPNG quantization uses libimagequant (the pngquant engine). Note that libimagequant is GPL-3.0-or-later, so distributed builds of the Tauri edition are effectively GPL-3.0 licensed.
Known gaps vs the Electron build: interlaced PNG output is not supported (the png crate encoder cannot write Adam7).
- Tauri 2: build small cross-platform desktop apps with a Rust backend and system webviews
- mozjpeg, libimagequant, libwebp, ravif, fast_image_resize, image-rs: the Rust image codec stack
