Compress images for an email attachment
Three steps. Compute the per-image budget, set it, and let the algorithm hit it.
Drop in every photo
Drop a single photo or an entire album onto Sukat — JPG, PNG, WebP, HEIC, AVIF, and GIF all work. iPhone HEIC photos go in directly, no separate convert step.
Set the per-image budget
Divide your recipient’s cap by the number of photos and shave 10–20% headroom for body and signature. 10 photos under 25 MB Gmail = ~2 MB each. Type that into Maximum File Size. Pick JPEG for maximum recipient compatibility.
Convert, ZIP, attach
Click Convert & Download. With multiple files, leave the Download as a single ZIP option checked — Windows, macOS, iOS, and Android all unpack ZIP natively, so the recipient never needs extra software.
When email attachment compression matters
Email attachment caps haven’t budged in a decade, but phone cameras keep getting heavier. Anywhere a single full-resolution photo would bust the message, a per-image budget keeps everything inline.
- Holiday-photo emails to family. 10 photos under a 25 MB Gmail cap = ~2.5 MB each. Parents and grandparents get the photos as real attachments inline, not a Drive link they have to navigate.
- ID scans and document submissions. Passport, driver’s licence, utility-bill scans usually want to land at 300–500 KB per scan so a five-document packet fits comfortably under any inbox cap.
- Event-photographer client deliveries. When the contract is “email proofs within 48 hours”, a per-image ZIP saves an upload-to-cloud round-trip. 30 proofs at 800 KB each = 24 MB, still inside Gmail.
- Legal and healthcare case files. Many firms and clinics require the audit trail to stay inside email, not a third-party cloud link — pre-compress so the attachment goes through as the record.
- Insurance-claim photo evidence. Adjusters open attachments; cloud links from strangers get filtered. A 1 MB-per-photo budget keeps a 15-photo damage report well under any cap.
- Press-release supporting images. Journalists pulling from email want files they can drop straight into a CMS, not links that expire.
- Hotel and metered Wi-Fi. Sending 10 × 800 KB attachments over a flaky connection is dramatically faster than uploading 10 × 4 MB originals to a cloud fallback.
Built around a per-image budget you set
Generic compressors give you a quality slider and let you guess. Email needs the inverse: state the budget, find the highest quality that fits.
Hits any KB or MB target precisely
Pick the cap (25 MB Gmail, 20 MB Outlook, 5 MB Apple Mail), divide by photo count, and Sukat binary-searches for the highest quality that lands under that per-image budget — typically in seven re-encodes. No guessing, no “close enough.”
Batch the whole album at once
Drop 30 photos, set 800 KB, and Sukat compresses every file independently to the same target. Each photo gets its own binary search — the busy ones land at slightly lower quality, the simple ones at near-original — but every output respects the ceiling.
Single ZIP keeps the email tidy
The Download as a single ZIP option packages every compressed photo into one attachment. The recipient unpacks with the built-in unzipper on Windows, macOS, iOS, or Android — no extra software, no scattered downloads cluttering the message.
HEIC-aware for iPhone senders
iPhone cameras shoot HEIC by default, and many desktop email clients render HEIC poorly for non-Apple recipients. Sukat decodes HEIC in the browser and outputs a universally readable JPG — one step, no “Why is the photo broken on my screen?” reply.
Privacy by default
Compression runs entirely in your browser via the Canvas API. The photos themselves are often the reason you’re using email instead of a cloud link — pre-compressing locally keeps them in the email channel only. Verify by switching to airplane mode after the page loads.
Preserves dimensions where possible
Sukat reduces quality before touching pixel dimensions, so the recipient doesn’t open the attachment to a postage-stamp preview. Only if quality 1 still busts the budget does Sukat downscale — and the live preview shows the actual output size before you commit.