Compress image to 100KB

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

"100 KB" allows up to 100 × 1,024 = 102,400 bytes. Small images usually fit at the Balanced quality straight away: the 512 × 512 NASA photo became a 45,813-byte JPG (SSIM 0.9785), a 256 × 256 brick texture a 14,214-byte WebP, and a 75,758-byte JPG was returned untouched because it already fitted. For larger photos 100 KB holds roughly 0.6–1.3 megapixels. If the form counts 100,000 bytes, type 97; to use more of the budget, pick High quality.

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

A ceiling, and how many pixels sit under it

The target only limits; it does not attract. Every format is first encoded at the level's quality, and only candidates above 102,400 bytes are searched down. Among those that fit, the highest score wins. So a 512-px photo at Balanced lands near 45 KB, not near 100 KB.

Choosing High quality moves the starting point to 0.92. The High candidates measured on the same photo were a 59,824-byte WebP (SSIM 0.9883) and a 73,755-byte JPG (0.9874); both fit under 102,400, so the WebP would win.

For photos larger than the test file, the budget is what matters: 819,200 bits. At the two densities measured on the fixture (0.62 and 1.40 bits per pixel) that is 1.33 or 0.59 megapixels — roughly 1330 × 998 or 883 × 662 for a 4:3 photo. A 12-megapixel phone photo needs its dimensions reduced first.

102,400 bytes
100 × 1,024; the exact ceiling the preset uses.
Level quality
The starting quality (0.60 / 0.80 / 0.92); a target never raises it.
Megapixel budget
Target bits ÷ bits per pixel; a rough guide to the dimensions that fit.

100 KB on three real files (measured)

Balanced level, Auto format, Chromium 153, 2026-09-28.

Target 100 KB = 102,400 bytes

astronaut.png     512 x 512   791,555 bytes  ->  JPG q0.80   45,813 bytes  SSIM 0.9785
bricks_Color.png  256 x 256   127,956 bytes  ->  WebP q0.80  14,214 bytes  SSIM 0.9701
astronaut.jpg     512 x 512    75,758 bytes  ->  original kept (fits already)

Budget 819,200 bits: 1.33 MP at 0.62 bits/px, 0.59 MP at 1.40 bits/px

The brick texture is ambientCG's CC0 Bricks076C, reduced to 256 × 256 in the repository; its WebP scored higher than the 15,653-byte JPG (0.9573).

Entering the right limit

The form saysTarget size to enterLargest file you get
100 KB, counted as 1,024 bytes100 (preset)102,400 bytes
100 KB, counted as 1,000 bytes9799,328 bytes
100 KB, as good as possible100 + High qualityStarts at quality 0.92
100 KB and a maximum width100 + Max widthResized first, then compressed

Check the result

  • Compare the size in the result list with the form's limit, and the exact bytes in the file properties.
  • If the result is far below 100 KB and you want more detail, run again at High quality.
  • Open at 100 % and check the parts the viewer will look at first.

Troubleshooting

SymptomLikely causeHow to checkFix
A phone photo shows "Target size not reached"Twelve megapixels do not fit in 819,200 bitsWarning under the fileAllow smaller dimensions, or set Max width to about 1,300 px
The result is much smaller than 100 KBBalanced never goes above quality 0.80Result line, e.g. 45 KBPick High quality
Rejected by a form that says 100 KBIt counts 100,000 bytesExact byte countEnter 97
The texture or pattern looks smearedWebP was chosen and smooths fine repeating detailZoom in on the patternSet Output format to PNG if the limit allows, or JPG and compare

Other ways to do it

OptionWhen it is the better choice
Compress to 200 KBThe destination allows it and the photo is larger than about a megapixel.
ResizeYou know the display width (for example a 1200-px wide blog column).
JPG to WebPYou only want a lighter web copy and there is no fixed limit.

What this page does not cover

  • The target cannot be used as a minimum; results can be far below it.
  • The megapixel figures are estimates from one photo; detailed or noisy pictures need more bytes.

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=100, on tests/fixtures/astronaut.png, its Pillow JPG (quality 92) and tests/fixtures/texture/bricks_Color.png. The High-quality figures are the level's measured candidates on the same photo.

Official documentation used

Compress image to 100KB

Several quality and format candidates are encoded until one fits 100KB; 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.