Skip to content
 
 

Repository files navigation

Imagine Plus

Screenshot

What's changed in this fork:

  • UI improvements
  • More features (keep metadata, progressive encode, etc.)
  • Comparison mode
  • Refactor with Tauri 2 for very small app bundle (~9 MB on macOS, vs ~100 MB+ for the Electron build, v0.10 and above)
  • 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)
ScreenShot_2026-03-15_152835_450

Install

For Windows, macOS and Linux, download binaries from:

https://github.com/xianfei/Imagine-plus/releases

  • Imagine-Setup-x.y.z.exe - Windows
  • Imagine-x.y.z.dmg - macOS
  • Imagine-0.4.1-x.y.z.AppImage - Linux

Install on 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 run

Build and Contribute

This 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 tests

PNG 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).

Built on

About

A refactor of meowtec/Imagine using tauri with some new features and improvement. 🖼️ PNG/JPEG/WebP/AVIF converter & optimization & batch resize app for macOS, Windows and Linux.

Resources

Stars

66 stars

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages