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 onceNo upload · processed on this device
Making a game?
Nerulio is a 2D game asset studio first: draw pixel art, cut sprite sheets into animations, pack texture atlases, check autotile tilesets and export them for Godot, Unity, Phaser and other engines. It runs in your browser; files stay on your device.
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.
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.
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 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
Open the source file
Choose the processing mode and settings
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.