Why a JPG, and when not to
JPEG was designed in 1992 for photographs, and it is still the best thing there is at that job. It stores continuous tone — skin, sky, foliage, anything where one colour slides into the next — and it discards the parts of that detail the eye is least likely to miss. A photograph at quality 82 is usually a fifth of the size of the same picture stored losslessly, and looks the same at any sensible viewing distance. It is also the most widely readable picture format that exists. Every upload form, every printer, every twenty-year-old machine and every piece of software that has ever touched a photograph will open one.
It is poor at almost everything else. Flat colour, hard edges, text, screenshots, diagrams, logos, pixel art: JPEG works in eight-by-eight blocks, and a hard black line on a white ground gives it nothing to average, so it produces a grey shimmer around the line instead. It has no transparency at all. It is eight bits per channel, so a 16-bit scan loses precision that a print shop may care about. And every save is another generation of loss — a JPEG opened, edited and saved four times has been through the encoder four times, and the damage accumulates.
The case where converting is a mistake: the file is already a JPEG and nothing about it needs to change. Re-encoding it here at the same quality spends a generation and buys a new modification date. The converter notices, and while the rail is still at its defaults the row offers to hand the original file back untouched instead; move the quality, the matte or a metadata switch and the offer goes, because then the conversion would genuinely change something. The other case is a screenshot of a document, a scanned form or a diagram that is going to be printed or filled in — the destination there is usually a PDF, and JPEG will make the text soft on the way.
Converting a file
- Put the files on the panel at the top of this page. Dragging works, clicking opens a file picker, pressing Enter or Space on the panel does the same, and pasting from the clipboard works anywhere on the page that is not a text field.
- Each row shows what the file actually is, read from its first bytes rather than from its name — a .jpg that is really a HEIC is common enough to plan for, and the row says so.
- Set the quality. 82 is the default. The slider prints its number, and below 60 a note appears naming the blocking artefact you are about to buy.
- If anything in the picture is transparent, choose the colour that goes behind it. White is the default; black, near-white, any colour from the picker, or a colour sampled from the picture's own edges are all one click away, and the preview shows the result before anything is written.
- Press Download JPG. Above three files the button writes a single ZIP instead, and each row keeps its own save button for when you only want one of them.
What goes in, and what changes on the way out
Reads: HEIC and HEIF from iPhones and iPads, PNG, WebP including animated, AVIF, TIFF including multi-page and CMYK, BMP, GIF, ICO, and JPEG itself. Everything except HEIC and TIFF goes through the browser’s own decoders. HEIC goes through a WebAssembly build of libheif, about 1.5 MB, fetched the first time a HEIC is opened and never on a visit where none appears. TIFF goes through a small pure-JavaScript reader on the same terms.
Writes: JPEG. That is the entire output side of this site, and the reason the format control in the rail is fixed and labelled as fixed.
What is lost on the way, named rather than glossed over:
- Transparency. There is no alpha channel in a JPEG. Transparent pixels become the matte colour, and that is a decision rather than a default nobody sees.
- Wide colour. A recent iPhone HEIC is frequently Display P3 and sometimes 10-bit with an HDR gain map. The JPG carries the sRGB conversion: colours outside sRGB clip, and the gain map is discarded.
- CMYK. A CMYK TIFF or JPEG becomes RGB without a colour-managed transform. The colours shift. The row says so before the conversion runs, not after.
- Bit depth. 16 bits per channel becomes 8.
- Movement. An animated GIF or WebP has one frame written; a Live Photo has its still frame written. The motion is not something a JPEG can hold.
Two things this converter does not do, stated plainly because finding out later is worse. It will not hit a file-size target: it picks a quality number, not a number of kilobytes, and somebody who needs a photo under fifty kilobytes for an exam portal needs a size search, which is compresspicture.com and not this. And it does not control chroma subsampling. That is the setting that decides how much colour resolution a JPEG keeps, it is the reason red text smears on a screenshot saved at 4:2:0, and on this converter the browser’s own encoder chooses it. There is a route to making it a real control — a second encoder, compiled to WebAssembly — and until that ships, calling it a control would be a label on a switch that is not wired to anything.
Format by format, what to expect on the way in
Eight input formats reach the same encoder, and each one arrives carrying a different problem. What follows is the short version of every one of them.
- HEIC and HEIF
- Roughly half the bytes of the JPG you will get back, so the file grows. The decoder is a 1.5 MB download the first time one appears. A recent iPhone file may also be Display P3 and carry a gain map; the JPG keeps the sRGB version of the colours and none of the gain map.
- PNG
- Lossless going in, which means nothing has been thrown away yet and this conversion is the first thing to throw any away. If it is transparent, the matte decides what shows through. If it is a screenshot, a chart or a logo, the honest advice is not to convert it at all — PNG is already the right container for flat colour and hard edges, and JPEG will fray both.
- WebP and AVIF
- Both are usually lossy already, so the JPG is a second generation and will be larger than the file it came from at the same apparent quality. People convert them anyway, because a fifteen-year-old photo printer has heard of JPEG and has not heard of AVIF. Animated WebP gives up one frame.
- TIFF
- The awkward one. A TIFF may hold several pages, in which case you pick; it may be 16 bits per channel, which becomes 8; and it may be CMYK, which becomes RGB without a colour-managed transform and shifts. Scanner and print output lands here more often than camera output does.
- BMP, GIF and ICO
- Nothing is lost reading any of the three, because there was not much there to lose. A GIF holds at most 256 colours and one frame is taken from an animation. An ICO holds several sizes in one file; the largest is the one converted, the row prints every size that was in there, and picking a smaller one is not a control this converter has.
- JPEG itself
- Allowed, and usually pointless. Re-encoding a JPEG at any quality spends a generation of loss and buys a fresh modification date. So long as the rail has not been moved off its defaults, the row offers the original file back instead, and taking that offer is normally the right answer unless the metadata or the matte is the thing you came to change.
Things people ask
- Is JPG the same thing as JPEG?
- Yes. One format, two spellings of the same extension, because MS-DOS allowed three letters and Unix allowed four. A file named .jpeg and a file named .jpg are byte-for-byte the same kind of thing, and every program that opens one opens the other.
- Why will my computer not open the .HEIC files from my phone?
- HEIC is the format iPhones save by default. Windows needs a codec from the Microsoft Store to open it, older versions of Windows cannot at all, and most upload forms reject it outright. Converting to JPG is the shortest way past that, and turning the phone setting to Most Compatible stops it happening again.
- Can this get a photo under 200 KB for a form?
- No. This converter picks a quality number, not a file size. A lower quality does produce a smaller file, but aiming at a specific number of kilobytes means re-encoding repeatedly and measuring, which is a different tool with a different interface; compresspicture.com is the one built for it.
- Does converting lose quality?
- Some, always. JPEG is a lossy format: it throws away detail it judges you will not notice, and the parts it throws away do not come back. At quality 82 the difference is very hard to see on a photograph. On a screenshot, on line art, or on anything with hard edges and flat colour, it is visible immediately.
- What happens to the date the photo was taken?
- It is carried across by default, along with the camera, the lens and the exposure settings, rewritten as a metadata block on the JPG. The location is carried too unless you switch it off in the rail, and that switch exists because a lot of people do not know their photos contain coordinates.
- Why does my transparent PNG come out with a white background?
- Because JPEG has no transparency. Every pixel in a JPEG has a colour, so the transparent parts have to become one, and white is the default here. The control in the rail lets you pick black, near-white, any colour you like, or a colour sampled from the picture's own edges.