Skip to content

t1732/rimgcvt

Repository files navigation

rimgcvt

A modern, fast, and lightweight image converter application built with Tauri, React, and Rust.

App Screenshot

Features

  • High-Performance Conversion: Powered by Rust for blazing fast image processing.
  • Drag & Drop Interface: Intuitive drag-and-drop area for easy file selection.
  • Format Support:
    • Input: JPG, PNG, WEBP, HEIC
    • Output: JPG, PNG, WEBP
  • Customizable Settings:
    • Set default output directory.
    • File naming customization (prefix, conflict resolution).
    • Theme switching (Light / Dark / System).
  • Modern UI: Built with Tailwind CSS and Shadcn/ui for a clean and responsive user experience.

Tech Stack

Getting Started

Prerequisites

Ensure you have the following installed on your machine:

Installation

  1. Clone the repository:

    git clone https://github.com/t1732/rimgcvt.git
    cd rimgcvt
  2. Install dependencies:

    Using Bun (recommended):

    bun install

    Or using npm:

    npm install
  3. Run the development server:

    bun tauri dev
    # or
    npm run tauri dev

This will start the Vite dev server and launch the Tauri application window.

Usage

  1. Select Images: Drag and drop images onto the window or click to select files.
  2. Choose Format: Select the desired output format (JPG, PNG, WEBP).
  3. Convert: Click the "Convert" button to process the images.
  4. Settings: Use the settings menu to configure output paths, filename prefixes, and themes.

Building for Production

To build the application for distribution:

bun tauri build
# or
npm run tauri build

The build artifacts will be available in src-tauri/target/release/bundle.

Cross-building from macOS to Windows (x86_64-pc-windows-msvc)

If you build for Windows from macOS (using cargo-xwin / cargo-xwin runner), some C sources (e.g. libwebp-sys) require SIMD features (SSSE3 / SSE4.1 / AVX / AVX2). When those target features are not passed to the compiler you may see errors like "requires target feature 'ssse3'".

A working approach is to set TARGET_CFLAGS to enable the CPU features before running the build. Example (zsh/bash):

export TARGET_CFLAGS="-mssse3 -msse4.1 -mavx -mavx2"
tauri build --runner cargo-xwin --target "x86_64-pc-windows-msvc"

If clang-cl rejects those flags, try using clang as the cross-compiler wrapper:

export CC_x86_64_pc_windows_msvc=clang
export TARGET_CFLAGS="-mssse3 -msse4.1 -mavx -mavx2"
tauri build --runner cargo-xwin --target "x86_64-pc-windows-msvc"

These commands were verified on macOS for this repository to address "always_inline ... requires target feature" compile errors when cross-compiling to x86_64-pc-windows-msvc.

Recommended IDE Setup

About

A modern, high-performance image converter built with Tauri, React, and Rust. / Tauri, React, Rust で構築された、モダンで高速な画像変換アプリケーション。

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors