Skip to content
Preset / 300 KB

Compress an image to 300 KB

Drop your photo in. The target is already set to 300 KB. Your browser searches for the highest quality that still fits under it, and nothing is uploaded anywhere.

Drop images here

click to choose · paste from the clipboard · add a whole batch

reads every image inside, no uploading
    Held
    0 B
    nothing queued
    Other servers contacted
    0
    Files processed locally
    0
    File bytes kept local
    0 B

    Nothing here is uploaded. See how the page enforces it.

    Who needs 300 KB

    Full-width banner and hero images on a website, where the image has to span a desktop screen and still not dominate the page weight.

    What an image looks like at 300 KB

    Comfortably transparent compression at 1920 px for most photographs. Gradients such as a sunset or a studio backdrop are the thing to check, since banding shows there first.

    1920 px is the standard desktop width and the right stopping point for a banner. Going to 2560 px inside the same 300 KB budget makes the file look worse, not better, because the encoder has more pixels to pay for.

    How the target is hit

    Guessing a quality percentage and checking the result is the slow way to do this. Instead your browser encodes the image, measures the actual byte count, and narrows the quality range from both ends over seven passes, each one halving the remaining uncertainty. It stops at the highest quality whose output is still under 300 KB.

    If even the lowest acceptable quality is still too heavy, it starts reducing the dimensions instead, because losing pixels is a better trade than reducing a photograph to mush. If it genuinely cannot reach 300 KB, the row says so rather than handing you a file that quietly missed the target.

    Questions

    + Is the result exactly 300 KB?

    It is at or just under 307,200 bytes, the largest file that still satisfies the limit. Landing on the number precisely would mean padding the file with junk, which no upload form wants.

    + Why is my PNG screenshot still over 300 KB?

    Because PNG does not discard anything. A full-screen PNG screenshot is routinely 1-3 MB and cannot be compressed to 300 KB while staying PNG. Convert it to WebP, which is lossless-capable and far more efficient, or to JPEG if there is no transparency.

    + Are my images uploaded?

    No. The whole thing runs in your browser through the Canvas API. Open devtools, watch the Network tab while you compress, and you will see no request carrying your file. The page keeps working with your connection switched off.

    + Can I do a whole batch at once?

    Yes, and each file gets its own quality search. A simple graphic and a detailed photograph need very different settings to land on the same byte budget. There is no cap on how many, because there is no server to pay for it.

    + Does it work on a phone?

    Yes, on iOS and Android. Photographs taken on the phone can be picked straight from the camera roll.

    A useful next step