Compress JPEG
Shrink JPG and JPEG photos with a quality slider or an exact target size in kilobytes.
Compress JPEGEvery pixel value in the output is identical to the input. Nothing is discarded, and nothing is guessed.
PNG and WebP files are accepted. JPEG cannot be compressed losslessly here — see the explanation below. Paste from clipboard with Ctrl+V (Cmd+V on a Mac).
Keep the original format, or convert on the way out to compare which one is smallest.
Removes text chunks, timestamps and embedded comments. This is where much of a lossless saving actually comes from.
Required for the result to be genuinely lossless.
Ready. Add a file to begin.
Lossless mode · PNG output · 0 files
No files yet. Results will appear in this table as soon as you add one.
Your files are processed by your own browser. Nothing is uploaded to a server, so nothing can be stored, read or shared.
More tools
Each one runs in the browser the same way, with no upload and no account.
Shrink JPG and JPEG photos with a quality slider or an exact target size in kilobytes.
Compress JPEGReduce PNG screenshots and graphics while keeping transparency and hard edges intact.
Compress PNGRe-encode WebP images at a lower quality, or convert JPEG and PNG into WebP.
Compress WebPChange pixel dimensions by width, height or percentage, with the aspect ratio locked.
Resize an imageCombine several photos into one PDF, reorder the pages and choose paper size and margin.
Build a PDFWrite a formatted document in the browser and export it to PDF, DOCX or HTML.
Open the editorSpecification
Every capability written out as text, including the ones where the answer is no. A specification that only listed the wins would not be worth reading.
| Attribute | This tool |
|---|---|
| Supported input formats | JPG and JPEG |
| Output formats | JPEG, PNG, WebP |
| Compression type | LossyJPEG discards detail permanently by design. PNG output is lossless but far larger for photographs. |
| Quality control | Adjustable, 10 to 100Maps directly to the encoder's quality setting. Moving it genuinely changes the output. |
| Exact output file size | Yes — target in KBThe encoder searches for the highest quality that fits under your limit, then reports the size it actually reached. |
| Resize / image dimensions | Yes — max width and heightAspect ratio preserved. The resizer page adds exact pixel and percentage modes. |
| Batch / bulk processing | UnlimitedFiles are encoded in parallel across a Web Worker pool and can be downloaded as one ZIP. |
| Maximum file size | No limit set by this siteBounded in practice by your device's memory, since each image is held uncompressed while it is processed. |
| EXIF and metadata | Stripped by defaultCamera model, timestamps and GPS coordinates are removed. You can switch it off. |
| Transparency / alpha channel | Not applicable to JPEGJPEG has no alpha channel. Choose PNG or WebP output if you need transparency. |
| Chroma subsampling control | Not availableThe browser's encoder chooses it and exposes no setting. We will not add a control that cannot affect the output. |
| Progressive JPEG control | Not availablecanvas.toBlob gives no control over progressive encoding. Use MozJPEG or ImageMagick if you need it. |
| Colour profile handling | Converted to sRGBA browser canvas works in sRGB, so wide-gamut images are converted. Correct for the web, wrong for print masters. |
| Bit depth | 8 bits per channelThe maximum a browser canvas provides. HDR and 10-bit output need AVIF, which browsers cannot write. |
| Animation support | Not supportedA canvas decodes only the first frame of an animated file, so animation is out of scope rather than half-supported. |
| Where processing happens | In your browserNo upload endpoint exists in the compression path. Disconnect from the network after the page loads and it still works. |
| File retention | None — nothing is receivedThere is no copy to retain or delete, because no file is ever transmitted. |
| Watermark | NeverThe output contains your image and nothing else. |
| Account, quota or cost | NoneNo sign-up, no daily cap, no paid tier withholding a feature. |
| Browser support | Chrome, Edge, Firefox, SafariDesktop and mobile. Requires Canvas and Web Workers, which every current browser provides. |
How it works
Drag them in, click to browse, or paste from the clipboard. Batches are fine.
There is no quality control here, because no quality decision is being made. Metadata stripping is on by default.
The table shows the saving honestly, including the cases where a well-optimised original cannot be improved on.
Features
Queue as many image files as you like. A Web Worker pool handles them in parallel so a large batch does not freeze the page.
The quality slider maps directly to the encoder setting. Move it and the output genuinely changes — there are no cosmetic controls here.
Ask for 200 KB and the encoder searches for the highest quality that fits under your limit, then reports what it actually achieved.
Camera model, lens, timestamps and GPS coordinates can be removed on the way out. Useful before publishing a photo taken on a phone.
Write the result as JPEG, PNG or WebP regardless of what you put in, so you can test which format is smallest for a given image.
The whole pipeline runs in your browser through the Canvas API. Turn off your network connection after the page loads and it still works.
The output is your image and nothing else. There is no account, no daily quota and no paid tier holding back a feature.
The layout, the drop zone and the results table are all usable on a phone, and mobile browsers run the same encoder as the desktop ones.
In depth
Lossless compression rewrites a file so it occupies less space while every pixel value survives exactly. Decode the result and you get the original back, byte for byte in the pixel data. Nothing is approximated, and no artefact is introduced at any zoom level.
That guarantee is the whole point, and it is also the whole limitation: an algorithm forbidden from discarding anything can only find savings in redundancy that is genuinely there. Where a lossy encoder can throw away detail you would never notice and shrink a photograph by 90%, a lossless one can only rearrange.
JPEG is a lossy format by construction. Its compression step quantises frequency coefficients and throws information away — that is not a setting, it is the design. There is no quality value at which a JPEG encoder becomes lossless.
Tools that advertise "lossless JPEG compression" are usually doing one of two different things: stripping metadata without touching the image, or losslessly rearranging the existing JPEG data with a tool such as jpegtran. Both are legitimate; neither is what most people picture, and both save far less than the headline suggests. We would rather not offer a JPEG option here than let the word "lossless" do work it cannot support.
If you need genuinely lossless output from a photograph, the answer is PNG or lossless WebP — and a much larger file.
Three places, in rough order of size. First, metadata: colour profile comments, text chunks, editing history and timestamps can be a surprising fraction of a small file. Second, a more efficient encode than the original tool produced — browsers pick reasonable filters, and some software does not. Third, converting to lossless WebP, which is typically 25% smaller than PNG for the same image with the same alpha channel.
What you will not see is the 70–80% figure that lossy tools quote. If a lossless compressor claims that, it is quantising the palette — reducing the image to 256 colours — which is a lossy operation whatever it is called. This tool does not do that, which is why its numbers are more modest and genuinely reversible.
Lossless compression rewrites the file so it takes up less space while every pixel value survives exactly. Decode the result and you get the original back, byte for byte. PNG, GIF and lossless WebP work this way, and so does a ZIP archive.
Lossy compression throws information away on purpose. JPEG converts the image to a frequency representation, then discards the high-frequency detail your eye is least likely to miss. The result cannot be reversed: the discarded detail is gone. That is also why lossy formats reach file sizes lossless ones cannot approach — a photo saved as PNG is routinely five to ten times larger than the same photo saved as JPEG at a sensible quality.
Neither one is better. Photographs, with their smooth gradients and noise, suit lossy encoding. Screenshots, logos, line art, charts and anything with large flat areas and hard edges suit lossless encoding, because lossy encoders produce visible haloes around sharp boundaries.
Questions
Every answer below is present in the page source, expanded, so it can be read without opening anything.
Yes, in lossless mode with the dimensions unchanged. The image is decoded to raw pixels and re-encoded with an algorithm that discards nothing, so every pixel value and every alpha value in the output matches the input exactly. Change the dimensions and it is no longer lossless — the tool relabels it rather than keeping the word.
Because it has to be. A lossless algorithm can only exploit redundancy that genuinely exists in the file. Screenshots and graphics with large flat areas often drop 20–60%; a photograph saved as PNG barely moves, because virtually every pixel differs from its neighbour and there is nothing repetitive to collapse.
Because a browser's canvas cannot do it. Decoding a JPEG and re-encoding it always runs the lossy quantisation step again, which would degrade the image while we called it lossless. Rather than mislabel that, JPEG is simply not accepted on this page.
For anything going on the web, usually yes. Lossless WebP is typically 25% smaller than PNG for the same image, with the alpha channel intact and no visual difference whatsoever. Keep PNG when the file has to be opened by older desktop software.
No. There is no palette quantisation and no dithering, so you will not see the banding that 8-bit conversion introduces. That is why the savings here are smaller than tools which quantise and still call the result lossless.
Because the original was already encoded by a very well-optimised tool, and a browser's encoder does not always beat it. The tool reports the increase rather than hiding it, and the right response is simply to keep your original.
No. Everything happens in this browser tab on your own device. Nothing is transmitted at any point.
Related topics
Related concepts, formats and guides across the site. Every link goes to a page that covers the term properly.
From the blog
Longer explanations from the blog.
PNG stored the same photograph in 1274.1 KB where JPEG needed 67.5 KB — nineteen times larger. On a flat graphic PNG won. On a smooth gradient PNG lost to JPEG by a factor of two, which surprises most people.
9 min read
WebP produced a 27.0 KB file against MozJPEG's 41.1 KB on the same photograph at slightly higher measured fidelity — 34% smaller. It also produced a larger file than JPEG on random noise. The advantage is real and content-dependent.
9 min read
Quality 80 is not 80% of anything. It is an index into a quantisation table. Measured on one photograph: dropping from 100 to 90 removes 77% of the file and 4.2 dB of fidelity; dropping from 40 to 30 removes 17% and costs almost as much.
8 min read