Logo

Image-effects

A browser-based image processing tool built with Rust and compiled to WebAssembly. Users can upload images and apply real-time filters like brightness, contrast, grayscale, and inversion directly in the browser.

Screenshot 1

Key Features

  • Real-time image manipulation using WebAssembly
  • Custom filter pipeline built in Rust
  • Client-side processing without server interaction

Tech Stack

Rust

WebAssembly

JavaScript

Challenge

Bridging communication between Rust logic and frontend JavaScript

Solution

Used `wasm-bindgen` and `wasm-pack` to expose Rust functions to JavaScript, enabling seamless interop for applying image filters in real time

Challenge

Optimizing performance for large image files processed entirely in the browser

Solution

Minimized memory copying between Rust and JS and used efficient image buffer manipulation in Rust for faster processing

Challenge

Creating an intuitive UI for applying and previewing effects

Solution

Designed a lightweight frontend using vanilla JavaScript and CSS with immediate visual feedback when toggling filters, making it user-friendly despite its low-level backend

Role: Solo Developer