Back to Blog
Image Compression

How to Compress Images to 20KB Without Losing Quality

July 20, 20264 min readBy Aisha L.

Reducing an image to a specific threshold like 20KB is a common requirement, but doing so without rendering the visual unrecognizable is a challenge. Many naive compression scripts will simply downscale the resolution to a tiny thumbnail or set the quality parameter to absolute zero, leading to pixelation, blurriness, and artifact blocks.

1. The Role of Smart Downscaling

When you upload an image with a high resolution (e.g. 4000x3000 pixels), trying to write those pixels into a 20KB file requires a massive reduction in pixel count or excessive data compression. To preserve visual clarity, we first resize the image dimension proportionally to a maximum width or height of around 1500 to 2000 pixels. This step sheds up to 70% of the raw data without human-noticeable degradation in web browsers.

2. Binary Search Optimization

Once resolution bounds are set, our browser compression engine utilizes a mathematical technique called binary search. Instead of choosing a random compression quality factor, the script tests a quality index (ranging from 0.01 to 1.0) and checks the byte size of the output blob. If the blob exceeds 20KB, it halves the quality interval and tries again. If it is safely under, it adjusts the target quality upwards. This loop repeats up to 20 times to find the absolute highest possible quality setting that satisfies the 20KB constraint.

3. Codec Specifics

We rely on the browser-native JPEG encoder since JPEG format handles low-quality parameters much more elegantly than formats like PNG (which are lossless and cannot easily target exact size limits without dithering colors or stripping alphachannels). JPG is globally recognized and accepted by nearly all state agencies and job boards.