Image Compressor

Lighten heavy hero shots & blog art

Resize, strip metadata, and export JPG, PNG, or WebP. Great for performance budgets and pre-publishing checks.

Drop an image or

Max 25 MB · 8 000 px longest edge · JPG, PNG, or WebP.

Waiting for an image.

Beta · Runs entirely in your browser

Convert, compress & clean up media — no uploads, no paid APIs.

These utilities run on your own CPU/GPU via WebAssembly. That keeps files private and the service free, but it also means heavier jobs can feel sluggish on older hardware. Please read the limits before you start.

File caps

Images & background removal: 25 MB / 8 000 px wide. Videos: 200 MB (approx. <6 minutes).

Each run times out after 8 minutes to prevent the UI from hanging forever.

Supported browsers

Last 2 releases of Chrome, Edge, and Firefox on desktop plus Safari 16.4+ on macOS/iOS.

Other browsers get the UI but may not have the codecs, WASM threads, or `SharedArrayBuffer` support needed.

Privacy & transparency

Files never leave your machine. Licensing details, FFmpeg build config, and attribution notes live in the repo for auditing.

FFmpeg config · Attributions

What to expect

  • All processing happens on-device. You get privacy, but CPU/GPU usage will spike. Laptops on battery may throttle.
  • Model + codec downloads are hefty. FFmpeg.wasm (~15 MB) and IS-Net (~40 MB) cache after first use but still need an initial download.
  • Large jobs can fail. Anything above the listed caps is blocked; even within limits, browsers can kill a tab if memory pressure gets high.
  • Timeout & failure handling. After 8 minutes the UI will stop the job and surface a retry tip. Manual Cancel is always available.
  • Honest fallbacks. If your browser lacks WASM SIMD, you’ll see guidance toward desktop apps instead of a broken spinner.

Failure & timeout playbook

“Conversion exceeded the time limit”
Cut the preset down (480p), trim the clip, or run FFmpeg locally. The UI exposes logs so you can see whether the command is still alive.
“Browser lacks required features”
Safari <16.4, Firefox ESR, and in-app browsers don’t expose the APIs we need. Use a current desktop browser instead.
Download button missing?
Some content blockers revoke blob URLs. Re-run with blockers disabled or use the “Copy blob URL” fallback provided in the log.
Security hygiene
We never execute metadata or preserve filenames. Downloads are named tool-result-YYYYMMDD-HHmm.ext, EXIF data is removed, and Blob URLs are revoked when you leave the page.

Licensing & acknowledgements

  • FFmpeg core is the LGPL single-thread build from @ffmpeg/core@0.12.6, hosted locally with full build flags documented. Source + WASM blobs are downloadable for compliance.
  • Background removal uses @imgly/background-removal (MIT) + IS-Net weights (CC-BY 4.0, original authors Qin et al.). Assets are self-hosted under /assets/tools/background-removal/.
  • Everything else relies on open web APIs (Canvas, WebCodecs) or project-local code so there are no surprise SaaS dependencies.

Need heavier workflows or automation? Reach out via the contact form and we can scope a pipeline that runs on proper servers.