A local-first, cross-platform batch image converter, compressor, and PDF rasterizer
Drag and drop · PDF page export · Batch processing · No file uploads by default
English · 简体中文
Download the latest release · Roadmap · Architecture · Privacy
Batch imports, per-file format overrides, compression settings, and progress in one workspace.
Note
The latest GitHub Release is v0.2.22, with signed/notarized macOS DMGs, checksum-verified unsigned Windows x64/arm64 MSI and NSIS packages, Linux amd64/arm64 direct packages, and signed Linux x86_64 updater metadata. Snap Store independently provides Linux amd64 and arm64 builds on its stable channel.
| Platform | Package | Status |
|---|---|---|
| macOS arm64 / x64 | DMG | Signed, notarized, and published |
| Windows x64 / arm64 | NSIS EXE, English/Chinese MSI | Unsigned direct packages; checksum verified |
| Linux amd64 / arm64 | GitHub packages / Snap Store | .deb, RPM, and AppImage published; Snap stable |
| Microsoft Store | MSIX | x64 in Partner Center; arm64 pending |
| Mac App Store | MAS package | Pending validation and review |
Warning
GitHub Release Windows EXE/MSI packages are intentionally not Authenticode-signed
and may trigger Microsoft Defender SmartScreen. Verify them against the release's
merged SHA256SUMS. Trusted signed Windows distribution is available only through
Microsoft Store after Store acceptance.
|
|
| Override the output format for one file without affecting the rest of the queue. | See the active HEIC provider, system capabilities, and licensing boundary. |
| Capability | Details |
|---|---|
| Conversion | SVG, static GIF, BMP, AVIF, WebP, JPEG, and PNG input; JPEG/PNG/WebP/AVIF output with true lossless AVIF support |
| PDF to images | One-way PDF input; all pages or ranges such as 1-3,5, 72–600 DPI, with JPEG/PNG/WebP/AVIF output |
| Batch workflow | Files, folders, recursive and clipboard imports; resize rules, scenario presets, progress, and cancellation |
| Performance | Rust batch conversion, controlled concurrency, memory-aware throttling, and channel-based progress reporting |
| Compression | Target-size JPEG/WebP, optional skip-if-larger / generation-loss policies, smallest-candidate selection, and automatic quality |
| Fidelity | Physical orientation correction and strip-all / color-only / preserve-all metadata profiles |
| Preview | Exact before/after comparison using the same resize, metadata, color, and encoder workflow as final output |
| Color | Display P3 ICC tests, explicit sRGB conversion, and color pipeline v2 |
| HEIC import | macOS ImageIO, Windows WIC, Linux helper / Flatpak extension; import only |
| Privacy | Images and PDFs stay on the local machine by default; no account or source-file upload required |
| Release engineering | Tauri updater, cross-platform packages, and licensing / fuzz / benchmark / CI guardrails |
- ✅ GitHub Release v0.2.22: provides Linux amd64/arm64 direct packages, signed Linux x86_64 updater metadata, and notarized macOS arm64/x64 DMGs. Snap Store stable independently serves amd64 and arm64.
- ✅ Windows direct packages: native arm64/x64 workflows build intentionally unsigned EXE/MSI packages, run install smoke, and publish checksum evidence.
- ✅ Core product: the P0–P3 UI, Rust engine, batch processing, resize and scenario workflows, target-size encoding, privacy metadata profiles, exact comparison preview, fuzzing, and cross-platform packaging entrypoints are implemented.
- 🚧 Real release validation: the MAS build, sandbox, and signing checks pass; App Store Connect setup, upload, and App Review remain. Microsoft Store submission is handled by the authorized account owner.
- 🚧 External validation: Flathub review, Microsoft Store acceptance, long-running fuzzing with a real-image corpus, and Windows benchmark data are still in progress.
See docs/ROADMAP.md for the full plan, acceptance evidence, and remaining work.
| Layer | Technology and boundary |
|---|---|
| Desktop shell | Tauri 2 |
| Frontend | Svelte 5 runes, shadcn-svelte, Tailwind CSS v4, Solar Icons (@solar-icons/svelte) |
| Image core | Rust, resvg, mozjpeg, oxipng, webp, libavif-sys, image |
| HEIC | No bundled HEIC codec; system provider or optional helper depending on platform |
| Toolchain | pnpm, Node LTS, Rust toolchain, CMake, Meson, Ninja, NASM |
The image engine combines permissively licensed in-process Rust codecs with platform HEIC providers. The main application neither distributes x265 nor exports HEIC. See docs/ENGINE.md and docs/LEGAL.md for the design and licensing boundaries.
SVG, GIF, and BMP are input-only: SVG is rasterized locally at its declared canvas size, GIF must contain exactly one frame, and all three can be converted or compressed to JPEG, PNG, WebP, or AVIF.
Install Rust, Node LTS, pnpm, and the Tauri system dependencies for your platform. Native image dependencies also require CMake, Meson, Ninja, and NASM.
pnpm install
pnpm run tauri devCommon checks and build commands:
pnpm run check
pnpm run build
pnpm run tauri build
pnpm run docs:web:dev
pnpm run release:readiness
pnpm run release:readiness:github:ready
pnpm run release:readiness:all
pnpm run release:platform:checkTip
If Linux reports a missing dbus-1.pc, install libdbus-1-dev / dbus-devel
and pkg-config. See docs/ENGINE.md for the complete platform
toolchain requirements.
- ROADMAP: roadmap, version status, priorities, and release readiness reports
- ENGINE: image core, system HEIC integration, toolchain, packaging, and signing
- RELEASE_QA: required cross-platform, installer, updater, and store acceptance record
- LEGAL: Apache-2.0, dependency licensing rules, HEVC patents, and distribution boundaries
- REFERENCES: reference-project research and reusable design decisions
- PRIVACY / 简体中文: privacy policies in English and Chinese
- CONTRIBUTING: contribution workflow, DCO, and development conventions
ImgConvert is released under Apache-2.0, allowing commercial use and app store distribution. See docs/LEGAL.md for dependency licensing rules, the third-party component inventory, and HEVC risk notes.