Compress an image for WhatsApp

WhatsApp compresses every photo sent as a normal image message, whether you want it to or not. Pre-compressing here, at a size and width you choose, gets you a better result than letting WhatsApp's own algorithm decide - and this tool never uploads the photo anywhere to do it.

No upload No file size limit No sign-up Free

Drop images here

or click to choose — JPG, PNG, WebP, GIF, BMP — multiple files supported

Target file size

1920px is set as the floor because WhatsApp's own compressor caps images at that width anyway — there's no quality benefit to keeping more than that.

WhatsApp compresses your photos whether you ask it to or not

Send a photo as a normal image message and WhatsApp re-encodes it before it reaches the other person — you don't get a say in the quality setting it picks. That's fine for a quick snapshot, but it means a carefully shot photo can arrive looking noticeably worse than what you sent, especially if it started out large. The fix isn't to fight WhatsApp's compression after the fact; it's to hand it a file that's already close to where you want it, so its own pass has little left to damage.

The two real options

MethodWhat happensBest for
Compress first, send as a normal photo You control the starting quality; WhatsApp still re-encodes it, but from a much better base Everyday sharing where you still want the inline preview
Send as a document instead WhatsApp doesn't touch it at all — original quality and resolution arrive intact Photos where exact quality matters (a receipt, a design proof, a print-bound image)

To send as a document: use the paperclip/attach icon and choose Document instead of Photo or Gallery. The trade-off is that it shows up in the chat as a file attachment rather than an inline image the recipient can preview immediately — a small usability cost for a guaranteed-untouched file.

Why the minimum width here is set to 1920px

WhatsApp caps the images it sends through its own compression at roughly 1920px on the long side, regardless of what you upload. A 4000px photo and a 1920px photo arrive looking essentially the same to the person receiving them — WhatsApp throws away the extra resolution either way. Feeding it anything larger than 1920px just means your own compression step (and your upload time) does more work for a difference nobody downstream will see, which is why that's set as the floor this tool won't scale below.

What size to actually target

200KB is set as the default target for a reason: it's small enough that WhatsApp's own re-compression pass doesn't have much room to do further damage, but large enough to hold real detail at a normal phone-screen viewing size. If you're sending as a document instead of a photo, the target matters far less — WhatsApp isn't re-encoding it, so you can compress lightly or not at all and still get an exact copy through.

This applies to groups and broadcasts too

The compression happens before the file ever touches WhatsApp, so it makes no difference whether you're sending to one person, a group chat, or a broadcast list — compress here, download the result, then attach it in WhatsApp as you normally would.

Nothing is uploaded to do this

The compression runs entirely inside your browser using the Canvas API. Your photo is never sent to a server before you choose to attach it in WhatsApp yourself — there's no intermediate upload, no queue, and no file size limit beyond what your device can hold in memory.

Frequently asked questions

Doesn't WhatsApp already compress photos automatically?

Yes, and that's exactly the problem. WhatsApp re-encodes every photo sent as a normal image message, and you don't get to choose the quality setting - it picks one to keep its own bandwidth costs down. If you compress the photo yourself first, to a size and quality you're happy with, WhatsApp's own pass has much less damage left to do.

Why is the minimum width set to 1920px here?

Because WhatsApp caps the images it sends at roughly that width regardless of what you upload - a 4000px photo and a 1920px photo arrive looking about the same to the recipient. Keeping more than that just makes your own compression step work harder for no visible benefit, so 1920px is set as the floor.

Is there a way to send a photo WhatsApp won't touch at all?

Send it as a document (the paperclip/attach icon has a 'Document' option) instead of as a photo. Files sent that way go through untouched, at their original quality and resolution. The trade-off is that it shows up as a file attachment in the chat rather than an inline image preview.

What size should I actually aim for?

200KB is set as the default here, and it's a good general target - enough quality headroom that WhatsApp's own compression pass doesn't make things noticeably worse, without producing a huge file. If you're sending as a document instead (see above), size matters far less since WhatsApp isn't re-encoding it.

Does this work for photos I'm sending to a WhatsApp group or broadcast?

Yes - the compression happens before you attach the file to WhatsApp at all, so it doesn't matter whether the destination is a single chat, a group, or a broadcast list. Compress it here first, then attach the downloaded result as normal.

Are my photos uploaded anywhere to do this?

No. The compression runs in your browser using the Canvas API. Open your network tab, or disconnect from the internet after the page loads - the tool keeps working, because the photo never leaves your device before you choose to send it.