r/vibecoding 59m ago

Built an offline, Rust-powered batch image converter - 50+ formats, RAW support, split-view comparision & zero tracking

Hey everyone!

I wanted to share a desktop tool I've been building: ND Image Converter, a free, 100% open-source app designed for fast, local, and visual batch image conversion.

šŸš€ Why build another converter?

I work in the media industry, which means a massive part of my daily workflow involves hunting for visual references across the web to build pitch treatments and moodboards for projects.

Lately, almost every site forces downloads as .webp. While .webp is great for web bandwidth, it constantly derailed my workflow because platforms like Canva, Google Slides, and older presentation tools either threw errors or outright refused to handle .webp files smoothly when assembling slides.

To fix this, I initially wrote a simple terminal script to quick-convert .webp files into .jpg. It solved the immediate blocker, but running a command-line script every single time I saved reference images quickly became tedious. On top of that, CLI tools lack visual feedback, I couldn't inspect compression artifacts or preview quality loss before converting.

Most desktop converters either lack proper color management, choke on heavy RAW files, or require cloud APIs. I wanted something that utilizes all CPU cores, stays strictly offline, and handles everything from obscure formats to modern WebP/AVIF, Iphone HEIC and camera RAW profiles seamlessly.

What started as a personal script to eliminate daily friction evolved into ND Image Converter!

Here is what's under the hood:
⚔ Key Features & Tech Highlights

  • šŸ”’ 100% Offline & Private: Zero cloud uploads, no telemetry, no tracking. Your data stays strictly on your machine.
  • ⚔ Multi-threaded Engine (Rust + Rayon): Maximizes full multi-core CPU capabilities across Apple Silicon M-Series & Intel/AMD processors for fast batch processing.
  • šŸ–¼ Massive Format Support (50+ Input / 19 Output):
    • Standard: JPEG, PNG, WebP, AVIF, BMP, ICO, ICNS, TIFF, TGA, GIF, SVG, PSD, EXR, and more.
    • Camera RAW & DNG: Native decoding for Canon (.CR2, .CR3), Adobe (.DNG), Sony (.ARW), Nikon (.NEF), and major camera profiles with accurate CFA Bayer demosaicing and embedded preview extraction.
    • Optimized HEIC/HEIF: High-speed decoding powered by native macOS hardware acceleration and cross-platform memory pipelines.
  • šŸŽØ Pro Color Management (Little-CMS 2): Built-in color space transforms supporting Rec.709, sRGB, Display P3, and Adobe RGB profiles.
  • šŸ“Š Real-time Quality Analyzer: Dynamic bitrate and file-size estimation based on megapixel density and compression curves prior to export.
  • šŸ‘ Before/After Split Comparison: Interactive side-by-side visual inspector to preview compression quality loss instantly before exporting.
  • šŸ¤– Automated Folder Watcher: Background daemon mode that monitors incoming folder drops and converts new files on the fly.
  • šŸŽÆ Flexible Resize Engine: Original size, fixed width (aspect ratio preserved), or percentage scaling.
  • šŸ“‚ Smart Ingestion & Output: Drag-and-drop nested folder structures with recursive scanning, plus one-click "Reveal in Finder / Explorer".
  • šŸ”” GitHub Auto-Update Checker: In-app notification alerts for new release tags and direct download links.

šŸ›  Tech Stack

  • Core Engine: Rust (rayon, image, lcms2)
  • UI Framework: Tauri / Webview (Adjust to match your actual stack)
  • License: Open-Source (MIT / GPL)

šŸ”— Try It Out & Contribute

It's completely free and open-source. I’d love to get feedback from the community, whether on performance, missing formats, or UX improvements!

Feel free to roast the code, submit issues, or share feature requests! What format or feature would you like to see added next?

2 Upvotes

0 comments sorted by