Compress image to 500KB

Shrink a photo or image to 500KB or less for upload limits on forms, shops and communities.

"500 KB" means at most 500 × 1,024 = 512,000 bytes — enough for roughly 2.9–6.6 megapixels of photo at the quality levels measured here, so moderately large photos can often keep their full size. A lossless PNG may still miss it: the 512 × 512 NASA photo re-encoded as PNG was 575,694 bytes, 63,694 over, so the tool chose a 45,813-byte JPG (SSIM 0.9785) instead. Choose High quality to start at 0.92 and use more of the budget; enter 488 if the form counts 500,000 bytes.

Drop image files hereProcess many files at once
No upload · processed on this device

A generous ceiling, used sparingly by default

The budget is 4,096,000 bits. At the densities measured on the test photo (0.62 and 1.40 bits per pixel) that holds about 6.6 or 2.9 megapixels — around 2976 × 2232 or 1976 × 1482 at 4:3. A 12.2-megapixel phone photo gets 0.34 bits per pixel, below the lowest measured density, so its quality will be searched down unless you allow smaller dimensions.

Because the target is only a ceiling, a small photo does not get "500 KB of quality": Balanced still starts at 0.80. Photos and screenshots that should stay lossless must fit as PNG; for the fixture that needed 575,694 bytes, which is why the 1 MB page keeps it lossless and this one does not.

512,000 bytes
500 × 1,024, the exact ceiling.
Lossless fit
A PNG candidate wins only if it is at or under the target.
High quality
Level that starts the search at quality 0.92 instead of 0.80.

Where lossless stops fitting (measured)

Balanced level, Auto format, Chromium 153, 2026-09-28, on the 512 × 512 NASA fixture.

Target 500 KB = 512,000 bytes

PNG re-encode    575,694 bytes   SSIM 1.0000   63,694 over -> out
JPG q0.80         45,813 bytes   SSIM 0.9785   <- chosen
WebP q0.80        32,200 bytes   SSIM 0.9749

High level candidates: WebP q0.92 59,824 (0.9883), JPG q0.92 73,755 (0.9874)
4032 x 3024 photo: 4,096,000 bits / 12,192,768 px = 0.34 bits per pixel

With High quality both 0.92 candidates fit under 512,000 bytes, so the higher-scoring WebP would be chosen — 59,824 bytes, still far below the limit.

Entering the right limit

The form saysTarget size to enterLargest file you get
500 KB, counted as 1,024 bytes500 (preset)512,000 bytes
500 KB, counted as 1,000 bytes488499,712 bytes
500 KB and best quality500 + High qualityStarts at 0.92
500 KB for a 12 MP photo500 + Reduce dimensionsUp to five smaller widths tried

Check the result

  • Check the byte count against the form, and the pixel size in the result line ("kept" or "resized to").
  • Zoom into faces, foliage and text at 100 %.
  • If you allowed shrinking, confirm the new width is still enough for where the photo is shown.

Troubleshooting

SymptomLikely causeHow to checkFix
The result is only about 50 KBBalanced starts at 0.80 and a small photo fits at onceResult lineChoose High quality
The screenshot did not stay PNGThe lossless PNG was bigger than 512,000 bytesCompare with the 1 MB resultUse 1 MB if allowed, or accept JPG/WebP
A phone photo shows visible blocks0.34 bits per pixel forced a low qualityZoom in at 100 %Allow smaller dimensions or set Max width around 2,900 px
The form rejects "500 KB"It counts 500,000 bytesExact bytes in file propertiesEnter 488

Other ways to do it

OptionWhen it is the better choice
Compress to 1 MBThe limit allows it and you want the PNG lossless or a phone photo at full size.
Compress to 200 KBThe destination is stricter.

What this page does not cover

  • The tool never raises quality above the level to use the whole 500 KB.
  • Pixel estimates rest on one measured photo; other content compresses differently.

Versions and sources

Measured on 2026-09-28 in Playwright Chromium 153 by calling src/compression.js with the options src/task/compress.js passes for ?kb=500, on tests/fixtures/astronaut.png; High-quality figures are the measured candidates of that level on the same photo.

Official documentation used

Compress image to 500KB

Several quality and format candidates are encoded until one fits 500KB; each result is decoded again and compared (SSIM) so the best-looking one wins. You see the real file size before downloading.

Resolution is kept by default. Only if the target cannot be reached, opt in to shrinking the dimensions.

Your file is never uploaded — it is processed inside this browser.

Example

Original geometric sample · 96 × 64
Original geometric sample · 96 × 64
Processed sample · 96 × 64
Processed sample · 96 × 64

Example generated with this tool. ZIP tools show their preview; inspect the downloaded archive for every file.

Compress image

Set a size limit, then check the actual result.

How it works

  1. Open the source file
  2. Choose the processing mode and settings
  3. Run, inspect the result and download

Supported formats

PNG / JPG / WebP / AVIF / HEIC → PNG / JPG / WebP — Input decoding and output encoding depend on browser support. Animated inputs are rejected; select a still frame first.

What this tool does

Auto compares actual browser codec outputs using a sampled visual metric and target-size search. Alpha-aware format selection; optional dimension reduction.

Implementation and verified quality

advanced · browser codecs / proxy SSIM candidate search. Quality qualification is in progress. Pro/Flagship quality has not been established.

Before you export

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Frequently asked questions

What determines the supported size?

Actual device memory, storage and codec support. Tested examples are evidence, not a guarantee for every file.

Are my files uploaded?

This tool processes the files you open on your device without uploading them. Images you explicitly attach to community posts are uploaded separately. Optional engines and models are downloaded from third parties; those requests expose connection information such as your IP address.

Will my work be saved automatically?

No. Images and editing state stay in this tab; media output can use local temporary storage. Changing language preserves your work; reloading, closing the tab, or following a link to another page can clear it.