CompressToSize

Compress image for upload

Every platform enforces a different ceiling. Pick yours and the compressor opens with the right target already filled in.

Private by design. Your images are compressed inside this browser tab. Nothing is uploaded to any server.
Drop images here or click to choose · you can also paste with Ctrl+V JPG, PNG and WebP · as many as you like

Ad

Limits that actually get enforced

These are the numbers each platform rejects uploads over, not the numbers in their marketing. They also change: Discord raised its free tier from 8MB to 10MB, and several services quietly apply a lower ceiling on mobile than on desktop. Where a limit is applied to the whole message rather than the individual file — email being the obvious case — the per-image number you should aim for is considerably lower than the headline.

PlatformLimitPractical target
Discord10MB4MB
Email25MB10MB
WhatsApp5MB2MB
Instagram8MB3MB
A website200KB160KB
A YouTube thumbnail2MB1MB
A passport or visa photo200KB160KB
Reddit20MB8MB

The practical target column is deliberately below the hard limit. Encoding overhead, metadata and the occasional stricter check on the receiving end all eat into the headroom, and an upload that fails at 99 percent is far more annoying than an image that is slightly smaller than it strictly needed to be. Aim at that column when you compress image for upload and the first attempt goes through.

Each row links to a page that opens this compressor with the matching target already filled in, so you can compress image for upload without looking the number up twice. The limits themselves are checked against what the platforms actually reject rather than what their help pages claim, because the two disagree more often than you would expect — several services quietly enforce a lower ceiling on mobile than on desktop.

Compress once, not repeatedly

The most common mistake when you need to compress image for upload is doing it in stages: shrink a bit, try the upload, get rejected, shrink again. Each lossy pass compounds the damage from the last, and three rounds of moderate compression look distinctly worse than one round of heavier compression that lands at the same file size.

Start from the original every time. If a target turns out to be too aggressive, change the number and run it again from the source rather than re-compressing the output. This tool always works from the file you dropped in, so simply adjusting the target and pressing the button again does the right thing.

Dimensions matter as much as bytes

A byte ceiling is only half of what platforms enforce. Instagram resamples anything wider than 1080 pixels, Discord previews cap out around 800 pixels before you have to click through, and most email clients render inline images at a few hundred pixels regardless of what you attached. Sending a 4000 pixel photograph to any of them means the far end throws away most of what you uploaded, after you spent the bandwidth sending it.

So the sensible order is to decide the dimensions the destination will actually display, resize to that, and only then compress image for upload. Doing it that way gives the encoder far fewer pixels to spread its budget across, which means a higher quality setting survives — the same file size buys visibly better results. This tool reports the final dimensions whenever it has had to resize on your behalf, so you can see when a target was tight enough to force that trade.

The one case to be careful with is documents. Scans of passports, certificates and forms are often checked for a minimum resolution as well as a maximum file size, and shrinking dimensions to hit a byte limit can fail the resolution check instead. When both constraints apply, keep the pixels and let quality absorb the difference.

Local processing

Nothing you drop onto this page leaves your device. The image is decoded, re-encoded and handed back entirely inside the browser tab. There is no upload, no queue, and no temporary copy sitting on someone else's disk waiting for a retention policy to delete it.

That matters more than it sounds. The files people most often need to shrink are the ones they should be most careful with: passport scans, signatures, identity documents, medical forms. Handing those to an unknown server in exchange for a smaller file is a poor trade. Because the work is local, you can compress image for upload with the network disconnected and get the same result.

It also means there is no queue to wait in and no daily allowance to run out of. Server-side compressors have to ration free use because every file costs them CPU time; here the CPU is yours, so you can compress image for upload as many times as you like, on as many files as you like, without an account.

Frequently asked questions

Why does my upload fail even though the file is under the limit?
Usually because the limit applies to the encoded request rather than the file on disk, or because the platform also enforces a pixel dimension or aspect ratio you have not met. Aim ten to twenty percent under the stated ceiling and check the dimension requirement separately.
Does compressing help upload speed?
Directly and substantially. Upload bandwidth is typically a fraction of download bandwidth on home and mobile connections, so a file that is five times smaller genuinely uploads roughly five times faster.
Is anything sent to a server?
No. All compression happens in your browser and no image is transmitted anywhere.
Ad

All platforms