Skip to content

xianfei/Imagine-plus

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

376 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Imagine Plus

Screenshot

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

๐Ÿ–ผ๏ธ PNG/JPEG/WebP/AVIF converter & optimization & batch resize app for macOS, Windows and Linux.

Resources

License

Stars

41 stars

Watchers

2 watching

Forks

Packages

 
 
 

Contributors

Languages

  • TypeScript 63.6%
  • Rust 24.7%
  • Less 11.2%
  • Other 0.5%