Skip to content
Runs local · no upload

JPG compressor

Pick a quality, see the difference, download the smaller file — all inside your browser.

Pure browser processing. No server, no upload, no tracking — verifiable in the network tab.

Drop JPG files here

Up to 50 MB per file. No upload, no account.

JPGJPEG

We accept no liability for the completeness or accuracy of the results.

How It Works

  1. 01

    Load files

    Drag & drop or file browser. Any number of JPGs; above 50 you get a memory hint.

  2. 02

    Choose quality

    Three presets or a freeform 1–100 slider. Quality 85 is the sweet spot for social, 95 for print, 75 for web.

  3. 03

    Compare & download

    A/B slider shows original vs. compressed, click-to-zoom into artefact regions. Per-file download or ZIP.

Privacy

Pure-client compression. No server, no upload, no tracking — verifiable in the network tab of the developer tools.

Three clicks between a 4-MB photo and a 600-KB version that looks the same in a newsletter, a blog post or an online portfolio. No file leaves your computer; the quality slider shows in real time how much visible detail you trade for how much storage — and an A/B drag-comparison surfaces artefacts before you commit.

01 — How to Use

How do you use this tool?

  1. Drop one or many JPG files into the area, or pick them through the file browser.
  2. Choose quality — either via the three presets (Web · Social · Archive) or the 1–100 slider.
  3. Optionally output WebP instead of JPG (typically 25–34% smaller than JPG at the same quality).
  4. Enable per-file override when one image needs a different quality than the rest.
  5. Hit 'Compress', inspect the A/B image, and download files individually or as a ZIP.

How does JPG compression work in the browser?

JPEG is a lossy image format: an algorithm decides which image information the eye won’t notice anyway and discards it to shrink the file. The quality parameter steers how aggressively to discard — 100 keeps almost everything, 1 keeps almost nothing, the useful range lies between.

The tool ships a WebAssembly encoder that runs the MozJPEG library in the browser. MozJPEG is a Mozilla initiative that reimplements the classic JPEG algorithm with modern heuristics: at the same visual quality the output files are typically 10–20% smaller than via the native Canvas API. When the WASM path fails to initialise in your browser, the tool silently falls back to the Canvas-native encoder.

JPG (1–50 MB)

[1] decode → ImageBitmap → Canvas

[2] encode → MozJPEG-WASM (JPG) OR Canvas-toBlob (JPG/WebP)

[3] A/B slider + per-file stats

ZIP or individual files

Which quality setting do I need?

Three real-world anchor values, which we also ship as presets:

  • Quality 75 — ‘Web’: hero images, blog posts, fast load, small bandwidth. ~70% smaller than the original. Up close in smooth gradients (skies, skin) you can spot slight block structure — in normal reading it doesn’t register.
  • Quality 85 — ‘Social’: Instagram post, LinkedIn header, newsletter images. ~55% smaller. Artefacts only visible at 100% zoom, the visual impression stays photographic.
  • Quality 95 — ‘Archive’: pre-print versions, your own photo library, backup. ~20% smaller than the original; the eye finds no difference — this is the point where we call it ‘practically lossless’.

Quality below 70 only pays off when the file truly needs to be extremely small (email attachment with a hard size cap). Below 50, the file becomes ugly rather than small.

Why WebP as output format?

WebP is a more modern image format, developed by Google and released in 2010. At comparable quality WebP typically delivers 25–34% smaller files than JPG — and since 2020 every evergreen browser (Chrome, Firefox, Safari, Edge) reads WebP natively. In 2026, global browser coverage reaches 97%.

Practical note: WebP is excellent for web delivery but not for email attachments or print workflows. For print shops, legacy software or recipients with unclear setups, JPG remains the safe choice. The format toggle switches in one click — you can export the same slider value in both formats and compare output sizes.

What the A/B slider shows

The A/B view layers original and compressed version and reveals each through a vertical divider that you drag with mouse or slider. This way you find the regions where compression becomes visible — typically:

  • Skies and smooth gradients: block artefacts appear here first (8×8 pixel grid).
  • Edges and text: mosquito noise shows up as a faint shimmer around hard edges.
  • Skin and fabric textures: at low quality, fine texture becomes ‘mushy’.

Click anywhere in the image to zoom into a region — both sides zoom synchronously, so the comparison stays precise. ‘Reset zoom’ returns to the overview. Keyboard: arrow keys move the divider, Home/End jump to the edges.

How does privacy work — does anything leave the browser tab?

Many free online tools for the same problem upload your images to their server, promise 24-hour deletion, and mostly do delete. The problem is not deletion but the upload: whoever runs the server sees the images. Private photos, ID scans, manuscripts — everything passes through other hands, even briefly.

None of that happens here. Once the page is loaded, all processing runs over web standards (Canvas API, WebAssembly) inside the browser tab. You can verify in the Network panel of the developer tools: during compression no image file goes out. No telemetry either, no click analytics, no cookies.

What this tool deliberately does NOT do

We are building a JPG compressor, not an image swiss-army-knife. Deliberately excluded:

  • AVIF or JXL export: would be a different tool (jpg-to-avif already exists). This page keeps the scope at JPG → JPG and JPG → WebP.
  • PNG, GIF or SVG input: PNG gets its own png-compressor tool; mixed inputs would blur the tool.
  • ‘Smart crop’ or content-aware compression: requires an AI model we don’t want to load in the browser — simply too large for the use case.
  • Lossless mode: that would be an optimizer, not a compressor. Quality 95 is the visually lossless anchor here.
  • URL input or ‘Compress from URL’: needs a server proxy — breaks the pure-client promise.
  • Resize during compression: own tool image-resizer. If you need both, run them sequentially.

The tool does one thing well and is clear about where its limit lies.

More tools from the kittokit ecosystem that pair well with images:

  • Remove metadata — strip EXIF, GPS, author from JPG, PNG, WebP and PDF, locally in the browser.
  • Image format converter — convert PNG/JPG to WebP or AVIF with a quality slider.
  • Image upscaler — upscale images with a neural network in the browser, no server upload.

Last updated:

You might also like