ExactSize

Compress image to 60KB: how many pixels fit, and what that prints at

A 60 KB target is 61,440 bytes. Fed an ordinary photograph, this compressor returns 1,831 × 1,221 — 2,235,651 pixels at 40.47% quality, 61,310 bytes. That is 37.3% of the pixels it was handed and 130 bytes of headroom left on the target. It is also one picture. The same 61,440 bytes holds 7,606,564 pixels of a flat cutout and 445,434 of a scanned A4 page — a 17× spread at an identical number, which is why "60 KB" by itself never answers the question anyone is actually asking.

Three numbers worth having before you compress

  • 2,235,651 pixels, at 61,310 bytes, quality 40.47%. That is 1,831 × 1,221 from a 3000 × 2000 photograph. The decoded output differs from the source by a mean of 2.18 levels per channel out of 255, with a maximum single-channel difference of 48; 4.41% of pixels came back bit-identical. Measured twice through two independent decoders, 2.178 and 2.183.
  • The cut starts somewhere between 777,600 and 960,000 input pixels. At 720 × 1080 (777,600) the full frame survives at 46% quality. At 800 × 1200 (960,000) it comes back 799 × 1,198 — 99.7%. At 1000 × 1500 it comes back 783 × 1,174, which is 61.3%: fewer pixels than the 800 × 1200 run, from a file 56% larger. Stepping down is not monotone.
  • At 300 dpi it prints 6.10 × 4.07 inches. 1,831 ÷ 300 and 1,221 ÷ 300, in centimetres 15.50 × 10.34. At 150 dpi the same pixels cover 12.21 × 8.14 inches. The dpi you will print at is the only variable in that sentence, and it is yours, not the file's.

Ten budgets, eight starting sizes, nine content types, one browser, one session. 60 KB means 61,440 bytes throughout.

How to read these numbers: every row is this site's own compressor driven through its published interface, one run per row, each run in a fresh tab so no state carries over. Bytes were read two ways — the tool's own report and a FileReader read of the returned blob — and agreed on every row; dimensions were read two ways, createImageBitmap and an image element, and agreed on every row. Where this page says "error" it means the mean absolute difference per channel between the source and the decoded output, upscaled back to source size. What the neighbouring budgets hold is on the 50 KB page and the JPG at 100 KB page; the whole ladder from 20 KB to 1 MB on the KB ladder.

Where the cut starts, and the row that breaks the pattern

One photograph, seven starting resolutions, one 60 KB target. Each source was reduced with Lanczos from a 4000 × 6000 original and saved at JPEG quality 92 first, so every row starts from a clean file rather than a re-compressed one. The "kept" column is the share of the source's pixels that survived.

Source Source px Source bytes Output at 60 KB Output px Kept Quality
500 × 750 375,000 104,988 500 × 750 375,000 100% 82%
640 × 960 614,400 171,095 640 × 960 614,400 100% 62%
720 × 1080 777,600 216,929 720 × 1080 777,600 100% 46%
800 × 1200 960,000 267,513 799 × 1,198 957,202 99.7% 40%
1000 × 1500 1,500,000 417,234 783 × 1,174 919,242 61.3% 40%
2000 × 3000 6,000,000 1,495,938 790 × 1,185 936,150 15.6% 40%
4000 × 6000 24,000,000 3,492,678 794 × 1,191 945,654 3.9% 40%

Same photograph at seven starting resolutions, 60 KB (61,440 bytes) target, JPG output. Measured 2 November 2026, Chrome 156.0.8078.74, Windows 11. Output bytes ran 60,592 to 61,351, so every row sits under the target.

Read the bottom three rows first, because they are the ones that make the page useful. 2000 × 3000 came back at 936,150 pixels; 4000 × 6000 came back at 945,654. Four times the upload, 1.0% more output. If you were about to resize a 24 MP photo to 6 MP before compressing it, this is what that step buys: 9,504 pixels, 1.0% of the output. Do it if you want a faster upload. Do not do it expecting a better 60 KB file.

Now the row above them. 1000 × 1500 — 1.5 megapixels — came back at 783 × 1,174, which is 919,242 pixels, while 800 × 1200 — 0.96 megapixels — came back at 799 × 1,198, which is 957,202. The smaller file kept more pixels. That is not a typo and it is not noise: 957,202 − 919,242 = 37,960, about 4% of the frame, and the direction is the one nobody expects. The size search walks down in steps and stops at the first step that fits, so where it lands depends on where it started walking, not on which file was bigger. Two runs on two neighbouring sources can therefore invert.

The 800 × 1200 row is also the last one that is not really a cut: 799 × 1,198 against 800 × 1,200 is one column and two rows, 2,798 pixels, 0.3%. The verdict line still said the original dimensions were kept, and the quality had not yet fallen below the floor. So at 60 KB the honest statement of the line is: below about 780,000 input pixels nothing is cut and quality does the work; above about 960,000 the frame is cut and quality is pinned; between the two the tool decides per file. Whether you set out to compress photo to 60kb or to compress picture to 60kb makes no difference to any row in that table — the noun changes the search, not the encoder. What the same line looks like one budget down is on the 50 KB page, where 777,600 was already the last row before the cut.

What 61,440 bytes buys in nine kinds of picture

The photograph figure is a photograph figure. Run the same target against content that compresses differently and the pixel count moves by more than an order of magnitude, with the byte budget held constant to within 2%.

Content Source Output at 60 KB Output px Bytes per px Quality
Cutout, transparent PNG 3600 × 3600 2758 × 2758 7,606,564 0.0081 40%
Flat-colour artwork 4000 × 4000 2234 × 2234 4,990,756 0.0123 40%
Product photo, studio 2000 × 2000 2000 × 2000 4,000,000 0.0150 84%
Gradient 2400 × 1600 2400 × 1600 3,840,000 0.0159 70%
Photograph, night street 3000 × 2000 1831 × 1221 2,235,651 0.0274 40%
Screenshot 1920 × 1080 1920 × 1080 2,073,600 0.0293 64%
Chart, few colours 1600 × 900 1600 × 900 1,440,000 0.0415 94%
Scanned A4 page, 300 dpi 2480 × 3508 561 × 794 445,434 0.1375 40%
Scanned page, 24 MP 4000 × 6000 541 × 812 439,292 0.1390 42%

Nine files, one 61,440-byte target, JPG output. Output bytes 59,762 to 61,356. Bytes per pixel is output bytes ÷ output pixels, which is a property of the content, not of the budget.

The spread is 17.3×: 7,606,564 ÷ 439,292. Four of the nine never lost a pixel at all — the product photo kept 4,000,000 at 84% quality, the gradient kept 3,840,000 at 70%, the screenshot kept 2,073,600 at 64%, the chart kept 1,440,000 at 94%. For those four, 60 KB is not a squeeze; it is more room than they need, and the spare bytes went into quality rather than into pixels, because there were no extra pixels to buy. That is the opposite of what happens to the photograph.

The scans are the other end. 0.139 bytes per pixel is 17× what a cutout costs per pixel, and the consequence is brutal and predictable: a 2480 × 3508 A4 page at 300 dpi came back 561 × 794. At 300 dpi that is a 1.87 × 2.65 inch picture of a page of text. Nobody reads that. If your file is a scan and your limit is 60 KB, the limit is wrong for the job — the fix is fewer pages per file, not more compression.

What 60 KB actually prints at

Pixels are the only thing a compressor hands back, and paper is measured in inches. The conversion is one division per side: output pixels ÷ the dpi you will print at. No printer was involved in the numbers below — they are arithmetic on the measured 1,831 × 1,221 output, and they are exact to two decimals.

Printed at Inches Centimetres Where that size is normal
300 dpi 6.10 × 4.07 15.50 × 10.34 Photo-lab print, close viewing
240 dpi 7.63 × 5.09 19.38 × 12.92 Home inkjet on glossy paper
200 dpi 9.16 × 6.11 23.26 × 15.51 Document print, arm's length
150 dpi 12.21 × 8.14 31.01 × 20.68 Poster seen from a metre away
96 dpi 19.07 × 12.72 48.45 × 32.31 Screen-size reference only

1,831 × 1,221 pixels, the measured 60 KB photograph output, divided by each dpi. One inch = 2.54 cm.

On a screen the same file is simpler: 1,831 pixels wide is 1,831 CSS pixels at 1×, 915 at 2× and 610 at 3×. So a 60 KB photograph fills a phone screen at 3× with room to spare, and is exactly the width of a laptop content column at 2×. It is not enough for a full-bleed 2× banner on a 1440-pixel page, which needs 2,880 pixels across — 57% more than the file holds.

The print table is where "is 60 KB enough" stops being abstract. If the answer you need is a 4 × 6 inch print, 60 KB clears it at 300 dpi — 1,831 × 1,221 against the 1,800 × 1,200 the size requires, 31 pixels spare on the long side and 21 on the short. If you need A5, 5.83 × 8.27 inches, the file fits inside it at 300 dpi with 1.76 inches to spare across and 2.17 down, so it prints A5 with white margins rather than filling it. If you need A4, 60 KB is not in the conversation at any dpi a printer will accept. What a scanned page looks like at this budget is worse: 561 × 794 prints 1.87 × 2.65 inches at 300 dpi, a business card.

Ten kilobytes up, forty down: what the neighbouring budgets actually buy

One photograph, five budgets, so the only variable is the number you type into the box. The "vs 60 KB" column is output pixels against the 60 KB row.

Target Output bytes Output Output px vs 60 KB Mean error
50 KB 50,980 1653 × 1102 1,821,606 −18.5% 2.259
58 KB 59,139 1798 × 1198 2,154,004 −3.7% 2.195
60 KB 61,310 1831 × 1221 2,235,651 — 2.178
70 KB 71,453 1998 × 1332 2,661,336 +19.0% 2.111
100 KB 102,087 2482 × 1655 4,107,710 +83.7% 1.961

3000 × 2000 photograph, 689,299 bytes, one run per budget, 2 November 2026. Mean error is the average absolute per-channel difference against the source, 0–255 scale.

The interesting figure is the marginal one. Going from 50 KB to 60 KB spends 10,330 extra bytes and returns 414,045 extra pixels, which is 0.02495 bytes per added pixel. The average cost at 60 KB is 61,310 ÷ 2,235,651 = 0.02742. So the tenth kilobyte is cheaper per pixel than the average kilobyte, and the reason is the quality floor: at both budgets quality is already pinned at 40.47%, so every added byte goes straight into dimensions. From 60 KB to 70 KB the marginal cost drops again, to 0.02383. The budget is not linear, and it favours the middle of the range.

Error moves the other way, slowly. 2.259 at 50 KB, 2.178 at 60 KB, 1.961 at 100 KB: 60 KB sits 3.6% below 50 KB and 10.0% above 100 KB. If you were choosing between 50 and 60 KB for a form that accepts either, the extra 10 KB buys 22.7% more pixels and 3.6% less error. If you set out to reduce image size to 60kb because a form named that number, the table above is what you will get and the only choice left is which row you land on. If the form's limit is a hard 50 KB, nothing on this page helps and the 50 KB page is the one to read. Above 100 KB the same law continues on the 200 KB page, where the pixels start outrunning the budget and the quality floor finally lets go.

If the form means 60,000 bytes, set 58 KB

60 KB is 61,440 bytes if the limit counts kilobytes the binary way, and 60,000 bytes if it counts them the decimal way. The 60 KB run returned 61,310 bytes: 130 bytes under the first reading, 1,310 bytes over the second. That is the exact gap where uploads fail with a message that says the file is fine.

So the safe setting for a limit written as "60 KB" is 58 KB, and the run bears it out: 59,139 bytes, 861 bytes under 60,000 and 2,301 under 61,440. You give up 3.7% of the pixels to remove the whole class of rejection. The same arithmetic trap at 300 KB is worked through on the 300 KB page, where nine of fifteen outputs landed above the decimal reading.

WebP and PNG at the same 61,440 bytes

The format changes the answer more than the budget does. Same photograph, same 60 KB target: JPG returned 1,831 × 1,221 — 2,235,651 pixels — and WebP returned 2,738 × 1,826, which is 4,999,588 pixels. That is 2.24× the pixels for the same bytes, at 61,414 against 61,310. WebP stores a pixel in 0.0123 bytes here against JPG's 0.0274.

PNG moves the other way, because it has no quality dial: the only lever is fewer pixels. A 3600 × 3600 cutout kept 1,695,204 pixels as PNG (1302 × 1302, 61,131 bytes) against 7,606,564 as JPG at the same target — PNG kept 22.3% of what JPG kept on the identical file. A scanned A4 page did worse: 152 × 214, which is 32,528 pixels and 58,445 bytes, so the encoder could not even reach 60 KB and returned a thumbnail anyway. If the file has to stay PNG, the only honest route is fewer pixels up front, which is what the PNG size reducer measures; if it can change format, the 2.24× above is the argument for converting to WebP.

How to compress an image to 60 KB

Four steps, and the fourth one is the one people skip. This runs in the browser — the file is decoded, re-encoded and handed back on the same machine, and nothing is uploaded anywhere. To compress image to 60kb, the whole procedure is these four lines.

  1. Set the target first. Type 60 and pick KB, before choosing a file. The tool holds that number for the whole session, so a second file gets the same budget without retyping it.
  2. Drop the file in. JPG, PNG, WebP, GIF or BMP. A .jpeg and a .jpg with identical bytes take the same path — the picker matches the MIME type, not the extension.
  3. Read the two numbers, not the picture. The verdict line gives you the output bytes and the output dimensions, and says which of the two levers moved. "Original dimensions kept" means quality paid; "dimensions scaled" means pixels did.
  4. Check it against the real limit. If the form says 60 KB and you are not sure which kilobyte it means, re-run at 58 KB — 59,139 bytes on the same photograph, which passes both readings.

Questions this page gets

How many pixels is a 60 KB image?

2,235,651 for an ordinary photograph — 1,831 × 1,221 at 61,310 bytes and 40.47% quality. For a flat cutout, 7,606,564. For a scanned A4 page, 445,434. The number is a property of the picture, not of 60 KB, and the spread across those three is 17.3×.

Can a 4000 × 6000 photo be compressed to 60 KB?

Yes: 794 × 1,191, 945,654 pixels, 61,226 bytes, 40.47% quality. Pre-shrinking it to 6 MP first gave 790 × 1,185 — 936,150 pixels — so the preparation step changed the result by 1.0%, in the wrong direction. Upload the big file.

Is 60 KB the same as 60,000 bytes?

No. 60 KB is 61,440 bytes; 60,000 bytes is 58.6 KB. The 60 KB run returned 61,310 bytes, which passes one reading and fails the other by 1,310. Setting 58 KB returned 59,139 bytes, which passes both.

What does a 60 KB image print at?

6.10 × 4.07 inches at 300 dpi, 9.16 × 6.11 at 200 dpi, 12.21 × 8.14 at 150 dpi. That is 1,831 × 1,221 divided by the dpi, not a print test. A scan at the same budget prints 1.87 × 2.65 inches at 300 dpi.

Is there an image compressor to 60kb that does not upload my file?

This one. Decoding and re-encoding happen in the tab; there is no network request carrying the picture. Every number on this page came out of that same local path, which is also why the timings are per-file and worth one line: 60 KB on the 6-megapixel photograph took 3,095 ms, the same target on a 24-megapixel scan 3,620 ms, and the same photograph as WebP 18,039 ms — 5.8× the wait for the 2.24× pixels above.

Can I compress PNG to 60kb?

Yes, but PNG trades pixels for bytes with no quality setting. A 3600 × 3600 cutout kept 1,695,204 pixels as PNG against 7,606,564 as JPG. A 2480 × 3508 scan kept as PNG came back 152 × 214 — 32,528 pixels at 58,445 bytes, a thumbnail that never reached the target.

Does "compress jpeg to 60kb" behave differently from "compress jpg to 60kb"?

Not in this tool, and this one is measured rather than assumed. The same 689,299-byte photograph was run three times at a 60 KB target — as .jpg, as .jpeg, and as .jpg again — and all three returned 61,310 bytes, 1,831 × 1,221, 2,235,651 pixels. Identical, byte for byte. The encoder decodes the file and re-encodes the pixels, so the extension never reaches it; the picker matches the MIME type image/jpeg, which both spellings carry. What does change the result is what is inside the file: that night photograph at 3000 × 2000 gave 2,235,651 pixels, while a 2000 × 2000 studio product shot at the same target kept all 4,000,000 pixels at 84% quality — the content table above.

I asked to resize image to 60kb — is that the same thing?

No, and the words get used interchangeably. Resizing sets dimensions; compressing sets bytes, and this tool reaches a byte target by cutting dimensions or quality. At 60 KB on a photograph it did both: 3000 × 2000 became 1,831 × 1,221 and quality fell to 40.47%. If you need a specific width, set the width and accept whatever bytes come out; if you need 60 KB, accept whatever dimensions come out. You cannot fix both ends with one number.

Where the numbers come from. All figures measured on 2 November 2026 with Chrome 156.0.8078.74 on Windows 11, using this site's compressor through its published interface, one run per row, each in a fresh tab. Sources: a 3000 × 2000 night photograph (689,299 bytes); a 4000 × 6000 landscape photograph reduced to seven starting sizes and saved at JPEG quality 92; a 3600 × 3600 transparent cutout; a 4000 × 4000 flat-colour graphic; a 2000 × 2000 studio product shot; a 2400 × 1600 gradient; a 1920 × 1080 screenshot; a 1600 × 900 chart; a 2480 × 3508 300-dpi scan of a page of text; and the same scan at 4000 × 6000. One image per content type — these are sample points, not a distribution, and a different photograph will sit either side of 0.0274 bytes per pixel. Output bytes were confirmed by a second, independent read of the returned blob on every run; dimensions by a second decoder; the per-pixel error by two decoding paths that agreed to within 0.03 levels.

The neighbouring budgets, measured the same way: 50 KB holds 1,821,606 pixels of this photograph and is the last budget where 777,600 input pixels survive whole; 100 KB holds 4,107,710; 200 KB is where the quality floor stops biting and the pixels start outrunning the budget; 20 KB is the same question four steps down, and the KB ladder puts six of these budgets side by side in one tool.

The one thing this page does not measure is your file. Nine content types is a wide sample and a narrow distribution: the honest prediction for a photograph you have not run is "between 440,000 and 2,240,000 pixels", which is not a useful sentence until you run it. That takes about a second and it happens on your machine.