Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🖼️ Image Compressor · Batch

100% client-side. Zero uploads. Everything stays in your RAM.

A private, local-first batch image compressor that processes everything in your browser. No sketchy online converter websites — just drag, drop, compress, and download as ZIP.

→ Open Live Site


Features

  • Batch processing — Drop multiple images at once (or add more later). Process them all with one click.
  • Gallery grid — See all loaded images with thumbnails, sizes, and per-card status.
  • Drag & drop — Drop PNG, JPEG, WebP, AVIF, BMP, or GIF images onto the zone (or click to browse, multi-select supported)
  • Quality slider — 1% to 100% with live file size comparison per image
  • Format conversion — Convert between JPEG, PNG, WebP, AVIF, and BMP on the fly
  • Broad input support — Accepts PNG, JPEG, WebP, AVIF, BMP, and GIF (GIF decodes the first frame)
  • Resize controls — Set max width/height with aspect-ratio lock (scales down only)
  • Download all as ZIP — One click downloads all compressed images in a single ZIP file, built entirely client-side with no dependencies
  • Individual download — Download each compressed image separately from its card
  • Progress bar — Batch progress shows real-time X / Y with a visual fill bar
  • Smart filenames — Preserves original filenames with swapped extensions. ZIP handles duplicate filenames gracefully.
  • Privacy first — No uploads, no servers, no third-party APIs. Everything runs on <canvas> in your browser's memory.

How to use

  1. Open the live site or open index.html locally
  2. Drag one or more images onto the drop zone (or click to browse, select multiple)
  3. Adjust quality and output format — settings apply to all images
  4. Optionally set max width / height to downscale large images
  5. Click ⚡ Compress All — watch each card update with compressed sizes and savings
  6. Click 📦 Download All as ZIP to grab everything, or click individual ⬇ buttons

Tech

Single .html file — zero dependencies, zero build tools, zero frameworks.

  • Encoding: HTML5 Canvas API (canvas.toBlob()) for JPEG, PNG, WebP, AVIF, and BMP
  • ZIP generation: Hand-rolled from scratch — CRC32 table, CompressionStream (deflate-raw), local file headers (0x04034b50), central directory (0x02014b50), EOCD record (0x06054b50)
  • Gallery: Pure CSS grid with object-fit: contain thumbnails

Deploy

# Just serve the file — any static host works
npx serve .
# Or open directly in your browser
start index.html

About

100% client-side batch image compressor & format converter. Drag PNG/JPEG/WebP/AVIF/BMP/GIF, compress, download as ZIP — all in your browser, zero uploads.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages