Compress an image to 20 KB

Drop a photo or a scanned signature below. Format is set to JPG and File size to under 20 KB, so each file comes back as a JPG of 20,000 bytes or less, made smaller in pixels when that's what it takes, or marked Over 20 KB when even that isn't enough. Up to 16 MB a file as a guest or 32 MB with a free account. Free. No account, no watermark.

  • Set to JPG
  • Shrinks to fit, never crops
  • Says how it came out

Balance between the image quality and compression

Output format

Auto tries every format your image can be saved as and gives you the smallest one

Resize

Change the width, height or scale of every image you upload

Original Dimensions Percentage
px
px

Set one side to keep the proportions, or both for an exact size.

Percentage
%

Size limit

Fit every image under a file size, for a form or a site with an upload limit

Any size Under a size
KB

Saved as JPG, WebP or AVIF. When quality alone can't get there, the image is made smaller to fit.

How the size limit works

Responsive image set

Pro

The image at several widths, with a srcset to paste into your page, so each screen loads the size it needs

One size Responsive set
px

Up to 8 widths, each in the format and at the level of the result. A width wider than the image stops at its own width, so nothing is enlarged.

How responsive sizes work

Keep EXIF Keeps details such as the camera, the date and the location in each file. Leave it off to remove them and save space.
Write alt text with AI Describes each image for screen readers and search engines, and suggests a file name
Alt text language
No language matches
English
Spanish
French
German
Italian
Portuguese
Dutch
Polish
Swedish
Turkish
Russian
Ukrainian
Arabic
Persian
Hebrew
Hindi
Indonesian
Vietnamese
Thai
Japanese
Korean
Simplified Chinese
Traditional Chinese
Rename files Downloads take the suggested name instead of the one you uploaded

Pro
Uploading a zip comes with Pro: the browser opens it and uploads its images in the folders they sat in, and the zip of the results keeps them. On your plan, unzip it and drop the images here. How folders and zips work

Up to 16 MB per image PNG, JPG, WEBP, GIF, HEIC, TIFF, or a ZIP of them on Pro

Guests get 10 images a day, 10 left today. A free account gets 40 a day and 7 days of Pro.

Upload a folder, or a zip

Pro

Pick a folder and every image in it uploads, with the folders inside it, and Download Selected gives them back in the same folders. A zip of images dropped on the box works the same way, opened in your browser.

How folders and zips work

Auto-start
On, each image starts compressing as soon as it uploads. Off, images wait in the box so you can check the settings, then start together.
Delete this image?
The image and its optimized copy will be removed from storage. This cannot be undone.

Rename this image
Choose the name the optimized image downloads with. Its format stays the same.

Uploaded as

Rename the selected images
Each image gets this name and a number, counted in the order they were uploaded. Their formats stay the same.

Share this image
AI alt text
Alt text

Paste it into the alt attribute of the image on your page.

Choose the compression level that suits your images
Level What it promises What happens Pick it when
Lossless
Not one pixel changes in a JPEG, PNG or GIF The file is repacked, never re-encoded. JPEGs get an optimised Huffman table and progressive scan, PNGs a tighter deflate pass, GIFs a lossless gifsicle run. A lossy WebP has no repack step, so it is re-encoded at the highest quality the level allows. A sideways phone JPEG is rotated losslessly on the way through and keeps its colour profile. The one exception to the promise is a PNG or WebP tagged with a wide-gamut profile such as Display P3: its colours are converted to sRGB, so the values change but the picture doesn't. Logos, line art, anything you'll edit again, or when the file is evidence.
Smart
No visible change, targets 40 dB PSNR and a perceptual score of 70 A quality search runs per image and stops at the lowest quality that still clears the PSNR target. That answer is then scored on the SSIMULACRA 2 scale, because an average over every pixel lets a mostly flat picture through at a quality its detail doesn't deserve, and when it falls under 70 the search moves back up until it doesn't. Photos and graphics end up at different qualities because they need different ones; an image that cannot reach the targets inside the quality ceiling is encoded at the ceiling. Almost everything on a website. This is the default for a reason.
Ultra
Smallest file, targets 34 dB PSNR and a perceptual score of 50 The same two-stage search with lower targets. Fine texture softens a little; edges and text stay sharp. Thumbnails, backgrounds, email images, anything shown small or blurred anyway.
None
No compression at all Only the resize, conversion or metadata setting you chose is applied. Without a resize or a conversion every pixel comes back as it was: the file only loses its metadata, and with Keep EXIF on it comes back byte for byte. You only wanted to resize or convert, and quality is someone else's decision.

Measured, not estimated

Five photos fitted under 20 KB

The five photographs from our showcase, each fitted under 20 KB in three formats by the same pipeline your upload goes through. The line under each size is the width and height the file kept, and at 20 KB that's where the formats part ways.

Sample Original As JPG As WebP As AVIF
Fjord 1800 by 1200 832 KB JPG 19 KB 97.8% smaller 488 by 325 19 KB 97.7% smaller 526 by 350 19 KB 97.7% smaller 569 by 379
Canoe at dusk 1800 by 1200 387 KB JPG 19 KB 95% smaller 738 by 492 19 KB 95.1% smaller 979 by 652 18 KB 95.3% smaller 1501 by 1001
Raspberries 1800 by 1200 342 KB JPG 19 KB 94.5% smaller 950 by 633 19 KB 94.5% smaller 1437 by 958 19 KB 94.3% smaller 1800 by 1200
Café interior 1800 by 1200 356 KB JPG 19 KB 94.8% smaller 685 by 456 20 KB 94.5% smaller 961 by 641 18 KB 94.9% smaller 1549 by 1032
Night skyline 1800 by 1200 427 KB JPG 19 KB 95.5% smaller 807 by 538 18 KB 95.7% smaller 846 by 564 17 KB 96.1% smaller 988 by 658

Sources are 1800 by 1200 JPGs saved at quality 92, fitted at Smart with metadata stripped. Yours will keep more or fewer pixels: a face against a plain wall leaves more room than a busy street.

Why it shrinks

At 20 KB, quality alone can't get a photo there

A photo from a phone weighs a few megabytes, and 20 KB is less than one percent of that. No JPG quality setting gets a full-size photo that small, so lowering the quality is only half of the job.

Iminify does the other half. It looks for the best quality that fits at the photo's own size, and when even the lowest quality is over the limit, it scales the photo down, width and height together, and looks again. You get as many pixels as fit, at the best quality those pixels allow.

Forms that ask for 20 KB show the image small: an ID photo in the corner of an application, a signature at the foot of a printout. A photo a few hundred pixels wide is enough there, which is why such a form can ask for so little.

What survives

What a photo keeps on its way under 20 KB

  • The whole picture

    Nothing is cropped. Width and height shrink together, so the photo keeps its proportions and everything in the frame.

  • The right way up

    A sideways phone photo is turned upright before it's encoded, so the form gets it the way you took it.

  • Transparency

    JPG has no see-through pixels, so a PNG with a transparent background is placed on white. Switch Format to WebP or AVIF if the form takes them and the background has to stay clear.

  • Metadata, unless you ask

    Camera details and location are stripped by default, which leaves every byte for the picture. Keep EXIF puts them back, and they count toward the 20 KB.

When not to

When to do something else first

  • The form also asks for exact pixel dimensions. Set them under Resize as well: the file is made that size first, and the limit then decides the quality. If even the lowest quality is over 20 KB at that size, it's made smaller still and reads Fit under 20 KB, so check the dimensions it shows before you upload.
  • The photo shows more than the form needs. Crop it to the face or the signature before you upload it, because every pixel of background takes bytes the face could have had.
  • You'll use the photo anywhere else. Keep your original; this copy is made for one form.

How to

Fit a photo under 20 KB in three steps

  1. 1

    Drop the photo or signature

    JPG, PNG, an iPhone's HEIC and the other formats the box takes all work. Format is already JPG.

  2. 2

    Check the File size pill

    It reads Under 20 KB. If your form allows more, raise the number: every kilobyte you leave unused is detail the photo could have kept.

  3. 3

    Download it for the form

    The result reads Under 20 KB, or Fit under 20 KB when it had to be made smaller. Open Compare first if you want to see the difference.

How the fit works, and how to ask for the same limit from code or an AI agent, is in the docs. Read the size limit guide

Questions

20 KB questions

Next

From the blog

What we've measured so far

We run the encoders on real photos and screenshots and publish the numbers: when WebP beats AVIF, what quality 80 means in each encoder, and how many kilobytes an image on a web page should weigh.

All posts
Two cards under the title "Do AI images hurt SEO? The file can.": a Gemini 2K picture as delivered, 3.95 MB, largest paint 20.3 s; the same picture resized to 720 wide, 104 KB, 1.4 s, in Lighthouse's mobile test.

Do AI images hurt SEO? What Google's pages say, and what a 2K Gemini picture did to a page

We put Gemini pictures on a plain article page, one size at a time, and ran Lighthouse's mobile test on each. Straight from the generator, the 1K file (1.06 MB) took 6.2 seconds to become the page's largest paint (LCP), the 2K file (3.95 MB) took 20.3 seconds and the 4K file (10.51 MB) took 52.4 seconds. Google's target for that metric is 2.5 seconds. Do AI images hurt SEO? In the Google pages we read, nothing marks an image down for being AI-made. The file is another matter: the same 2K picture, resized and compressed to 104 KB, took 1.4 seconds. Iminify's compressor also drops the C2PA manifest that marks a Gemini file as AI-made, and Google's Merchant Center asks sellers to keep an IPTC tag that says the same.

8 min read
Two white cards on a blue gradient: WebP at quality 75, 35.1 KB, score 68.0, and AVIF at quality 47, 25.5 KB, score 68.8, beside the headline "A quality of 75 ships as WebP 75, or AVIF 47 if enabled".

What image quality does Next.js ship? WebP 75, AVIF 47 if you list it, and by default a 90 becomes 75

We built a Next.js 16.4.3 app with four images on one page, two of them declared with quality={90} and quality={100}. All 36 image addresses in the page's HTML said q=75. We also asked the image endpoint for q=90 directly, and it answered HTTP 400: "q" parameter (quality) of 90 is not allowed. That is Next 16's default: the list of allowed qualities is [75], and the component moves anything else to the nearest entry. This post follows the 75 to the encoder, in WebP and in AVIF if you switch it on, across 867 requests to a self-hosted /_next/image on nine source images. The default WebP puts one of our five photographs at 1080 px above 70, the "high quality" mark on SSIMULACRA 2, a perceptual score. AVIF at the same setting was 36.5 percent smaller across our 27 image and width combinations, and more than 3 points below WebP on score in 8 of them.

7 min read
Two enlarged crops of the same red text saved as JPEG at quality 80, one at 4:2:0 and one at 4:4:4, beside the title. The 4:2:0 crop has a duller, browner red.

Why is red text blurry in JPG and WebP? Chroma subsampling, measured

On a test page we made full of red text, no quality from 30 to 100 lifted a plain 4:2:0 encode (no -sharp_yuv) past 58.2 on the SSIMULACRA 2 scale, which runs to 100: JPEG (cjpegli) reached 57.9, WebP 55.2, AVIF (avifenc) 58.2. The same JPEG written at 4:4:4 scored 81.6 at quality 90. That gap is chroma subsampling: 4:2:0 keeps colour at a quarter of the detail that brightness gets, and 4:4:4 keeps all of it. It's why red text looks blurry in a JPG or a WebP. The fix is 4:4:4 for JPEG and AVIF, -sharp_yuv for lossy WebP (which narrows the gap), or lossless WebP on a flat page; What we'd use has the numbers and commands.

6 min read

Get your photo under 20 KB

Drop it in the box at the top of this page. Format and File size are already set.