Compress JPG images to an exact size — free, private, in-browser
Compress to 100 KB (1,02,400 bytes) without uploading your file anywhere.
Drop files here, or
JPG, PNG, WebP, AVIF, HEIC, GIF, BMP up to 50.00 MB · up to 30 files
Processed on this device — nothing is uploaded
Add a file to begin
How to use compress jpg
- 1Drop your image into the box above or click to browse — it is read straight from disk into the page, with no upload step to wait for.
- 2Set the target size your form demands. If the requirement is a window such as 20–50 KB, aim for the middle so the portal's own re-encoding cannot push you over the ceiling.
- 3Pick the output format. JPG is the safe answer for government and bank portals; WebP and AVIF are better sizes but are frequently rejected by upload widgets.
- 4Switch on "land on the target" if the portal also enforces a minimum size — the engine adds inert bytes rather than shipping a file that is too small.
- 5Run it, then read the result card: final size, exact pixel dimensions, the quality chosen and how many encodes it took. Download and keep the original.
Why this tool, and why browser-side
Byte limits are enforced by the form before any human sees the file, and the error message rarely says which requirement failed. Hitting the number in advance is what turns a rejected upload into a completed application.
The compressor tests encoder settings against the requested byte window. Output size is not perfectly predictable, and some windows cannot be reached; read the result card and inspect the image.
Photographs of identity documents, signatures and marksheets are exactly the files that should not be handed to a stranger's server, and they are also the files that most often need compressing. Processing them in the tab removes that trade-off entirely.
This page is pre-set to 100 KB (1,02,400 bytes), which is the figure forms most often quote. Because the engine measures the encoded size after each pass rather than trusting a quality setting, the number you get back is the number in the result card and nothing else — the arithmetic behind it is on this page rather than hidden in a server.
Photographs from phones carry more metadata than most people realise — capture timestamp, camera model, the orientation tag that decides whether the picture displays upright, and often GPS coordinates precise to a few metres. Because every operation on this site writes a fresh file, that metadata does not survive by default. For a photograph of a marksheet or a bank statement, that is a privacy gain; for an archival photograph, note the date before you process it.
On a phone, memory is the real constraint rather than any size limit. A 12-megapixel photograph is about 36 MB once decoded into pixels, so compiling a batch of twenty and holding every result in memory at once will get a mobile browser killed well before it runs out of storage. Process batches of ten to fifteen on a phone; on a laptop the same job is unremarkable.
Accepted inputs are JPEG, PNG, WebP, AVIF, HEIC, GIF and BMP images up to 50 MB each. SVG, HTML and other script-bearing formats are refused outright rather than sanitised, because a file that can execute code has no business being re-encoded — and an upload field that accepts one is a security hole rather than a feature. Output is written as JPEG, matching the format the destination expects. Several files can be queued where the workbench supports it. Batch, page and memory limits apply; check every output.
How it works under the hood
Encoding is monotonic in quality — a higher setting always produces a larger file — which makes the size search a binary search rather than a scan. The engine predicts the working resolution from the ratio of the original's encoded size to your target, because byte count scales roughly with pixel count; that prediction is what keeps a 12-megapixel phone photograph down to a couple of seconds. If the target is unreachable at any quality, the dimensions are stepped down along a geometric ladder and the path taken is reported. Where a portal enforces a floor as well as a ceiling, standards-compliant padding — a JPEG comment segment or a PNG text chunk — adds bytes that no decoder renders, leaving every pixel untouched. The encoder writes a fresh image rather than editing the original in place, which means colour profile handling is consistent and metadata is dropped deliberately. Quality is chosen by measured search over the encoded output, so the number reported is the actual byte count of the file you are about to download — not an estimate from a table of typical sizes.
Frequently asked questions
Is 100 KB the exact ceiling, or a target?
It is a ceiling: the engine returns the largest file that does not exceed 100 KB. If it can only reach, say, 98 KB without visible damage, that is reported honestly instead of being forced.
Why did my file land at 49 KB instead of exactly 50 KB?
Quality is an integer, so on a large image one step can be tens of kilobytes. The engine returns the largest encode that does not exceed your ceiling. If you need the exact figure, the padding option fills the remainder without altering image data.
Will compressing make my photo look worse?
At the quality this engine chooses, usually not visibly — it searches for the highest setting that fits. Where a target is genuinely aggressive, reducing resolution preserves readability better than squeezing quality to its floor, and the tool prefers that order.
Does compressing remove EXIF and GPS data?
Yes. Re-encoding writes a fresh file, so GPS coordinates, the camera model and the capture timestamp are all dropped. For a photograph of a document that is a privacy gain.
Why is my file under the minimum size?
Some portals reject files that are too small as well as too large. Leave the padding option on and the engine will add inert bytes to reach the floor — the image itself is not touched.
Should I send JPG or PNG?
JPG for photographs, scans and anything with continuous tones. PNG for screenshots, logos, line art and signatures, where JPEG artefacts around sharp edges are obvious. Portals that name JPEG mean JPEG; do not send a renamed PNG.
Is there a size limit on the input?
50 MB by default, and the real limit is your device's memory rather than a server quota. A 12-megapixel phone photograph is about 4 MB and takes a couple of seconds; a 50 MB TIFF will be slower but works on a laptop.
Are my images uploaded anywhere?
No. The codec runs in the tab as WebAssembly, the result is written in memory, and there is no upload endpoint in the application at all.