GhostImageStudio

Compress to an exact size.

Pick 20, 50, or 100 KB — the quality search runs on your device until the file fits the cap.

Compress an image to an exact file size — 20 KB, 50 KB, 100 KB, or any cap a form throws at you. Visa applications, job portals, school uploads, and government sites all demand "under X KB"; GhostImage binary-searches the quality setting on your device until the file lands just under your target. If a target is impossible at any quality, you get the smallest achievable file and an honest size label — never a silent failure. Nothing is uploaded.

How it works

  1. 1

    Drop your image

    Drag in the photo or scan. It opens in the GhostImage studio with Compress to size pre-selected.

  2. 2

    Pick the target

    Choose 20/50/100/200/500 KB or type a custom cap. The quality search runs locally until the file fits.

  3. 3

    Download the result

    The label shows the exact size achieved — under your cap and ready for the upload form.

Frequently asked questions

  • Is my image uploaded?

    No — the compression search runs entirely in your browser. Passport photos and ID scans never leave your device.

  • How does it hit the exact size?

    It binary-searches the encoder quality — encode, measure, adjust — up to eight times, settling on the highest quality that fits under your target.

  • What if the target is impossible?

    If even minimum quality can't fit (say, a huge photo into 20 KB), you get the smallest achievable file and the label tells you its real size. Resize the image smaller first, then re-run — both steps chain in the same studio.

  • What format comes out?

    JPGs stay JPG and WebP stays WebP; PNGs are converted to WebP (transparency preserved) because PNG's lossless encoding can't trade quality for size.

  • Why do forms demand sizes like 100 KB?

    Legacy storage rules, mostly — government and application portals set hard caps years ago. Whatever the reason, the cap is the cap; this hits it.

Every GhostImage tool runs entirely in your browser. Your file is never uploaded — there's no upload endpoint to send it to.