Compress Image to Exact KB

Type 50 KB or 100 KB. JPEG, PNG, WebP and HEIC. The file lands under the cap. A batch becomes one ZIP. The photos stay in this tab.

Drop JPEG, PNG, WebP or HEIC

Up to 100 photos, 40 MB each. Nothing is uploaded.

Cap is 100,000 bytes. The saved file is measured after encode, not guessed.

Unit

KB is 1,000 bytes. KiB is 1,024. A form that says 100 KB usually means 100,000 bytes.

Presets

Format

Quality search runs on JPEG and WebP. PNG is lossless, so a tiny cap usually needs smaller pixels.

Drop a photo or use the sample. Settings do not store the file.

Type the cap. Measure the file.

A lot of compressors pick a quality for you and hope the file is small enough. This page takes the number the form printed. 50 KB. 100 KB. 200 KB. 1 MB. It binary-searches JPEG or WebP quality until canvas.toBlob lands under that cap, then shows the exact byte count of the file you are about to save. If the original is already under, quality stays high. Nothing is guessed from a slider.

The sample is a 1600 by 1200 still with large type, drawn in this tab. Read FORM LIMIT 100 KB on the left, hit Compress, and read the same line on the right at the same scale. Replace it with your own JPEG, PNG, WebP or iPhone HEIC. HEIC uses the same decoder as HEIC to JPG. Safari can read it natively. Chrome and Firefox load a decoder module the first time a HEIC file is in the drop. You will see that load. The module does not send the photo anywhere.

KB is not KiB

SI prefixes use 1,000. IEC prefixes use 1,024. This page won't mix them. KB and MB are 1,000 and 1,000,000. KiB and MiB are 1,024 and 1,048,576. A visa form that says 100 KB is almost always 100,000 bytes. A disk tool that says 100 KiB is 102,400. The field prints the exact cap in bytes under the number so you can match whichever checker the portal uses.

TinyPNG's free page, read 16 September 2026, lets you upload 20 images at once, each 5 MB at most, and convert 3 images. It compresses to whatever size its encoder picks. It doesn't take a 50 KB or 100 KB target. Those photos also leave your machine. This tab does the opposite job: you type the cap, the file stays here, and the byte count you see is the byte count you download.

Same scale, real bytes

Original and result sit in two columns of the same width. That is how you tell whether the letters on an ID scan are still readable. The numbers next to each file are the actual encoded size, not a before-and-after estimate. Quality only applies to JPEG and WebP. PNG stays lossless. A PNG that is already over 50 KB will not get there by turning a quality knob that does nothing.

Safari stops a canvas at 16,777,216 pixels. A huge phone photo is scaled to that cap first, then the quality search runs. The encoder is the same pica plus canvas path as Resize Image. Resize picks the pixels. This page picks the bytes. They are different jobs, which is why they are different URLs.

Ask before shrinking the picture

Some caps are smaller than a full-size JPEG at the lowest useful quality. The default is to keep your pixels and show the nearest file plus a clear miss. Tick Allow shrinking the pixels if you would rather lose resolution than miss the upload. The list under the drop names each file, its status, and whether it landed under the cap. Two or more photos become compressed-N-images.zip. Stop cancels the run. Nothing is saved until you download.

Cap, unit, format and the shrink tick sit in this browser under softery.compress-image-to-kb.settings. Copy settings link puts those knobs on the URL. The photo never goes in the URL. That is the share for a 100 KB form, not for someone's passport scan.

Common questions

Does this page upload my photos?

No. The photos stay in this tab. After the page has loaded, compress runs in JavaScript here. Mixpanel and Google Analytics load with Softery.io. They see that someone opened the tool, which setting moved, and whether a download happened. They do not get the photos.

What is the difference between KB and KiB?

KB is 1,000 bytes. KiB is 1,024 bytes. A form that prints 100 KB usually means 100,000 bytes, so that's the default. Switch to KiB if the checker is picky. The line under the field always shows the exact byte cap.

What if the photo still will not fit?

Quality has a floor. If the file is still over the cap at that floor, this page keeps the nearest result and asks before it shrinks the pixels. Tick Allow shrinking the pixels and run Compress again. PNG is lossless, so a tiny cap almost always needs that tick.

Where do the settings live?

The cap, the unit, the format and the shrink permission are stored in this browser under softery.compress-image-to-kb.settings. The photos are not stored. The settings link copies those knobs in the URL and never the file. Clear the site data, or hit Clear settings, and the knobs go back to 100 KB JPEG.

Nearby tools

Exact pixels, a percent, or centimetres at a DPI belong on Resize Image. Photos that should become pages belong on Images to PDF. An iPhone HEIC you want as a JPEG, not as a smaller HEIC, belongs on HEIC to JPG. I wrote up why 100 KB is 100,000 bytes in 100 KB Is 100,000 Bytes. All of the free tools run the useful bit here.

Looking for something else?