100% on-device

Convert JPG to PNG

Drop your JPG (also written JPEG) images and get PNG back. It all runs in your browser — the pictures never leave your device — and you can convert a whole batch at once.

How to convert JPG to PNG

  1. Choose one or more JPG images — drag them in or use the file picker.
  2. Download the PNG — a single file, or a zip if you converted several at once.

The PNG runs several times the JPEG’s size, and heavier JPEG damage only makes it smaller

JPEG has been discarding detail since ITU-T T.81 in 1992: it splits the luma channel into 8×8 blocks, runs a discrete cosine transform on each, then divides the coefficients by a quantisation table and rounds. That rounding zeros most of the high-frequency coefficients and is recorded nowhere. Only the AC terms are purely per-block — each block’s average brightness is coded as a difference from the previous one — but by the time a file reaches this converter, the loss is baked into the pixels.

PNG stores those decoded pixels exactly. It runs a prediction filter along each row — Paeth predicts a byte from three neighbours, the one to the left, the one above and the one above-left — then hands the residue to DEFLATE’s LZ77 and Huffman coding. Nothing is thrown away, so every value the JPEG decoder reconstructed is written out in full. A photograph the JPEG held at around a bit per pixel returns at several bits per pixel, which is why a 4 MB JPEG comes back as a far heavier PNG.

The artefacts do not swell the file — they shrink it. Zeroing those high-frequency coefficients flattens each block, and a flatter, more repetitive image is exactly what DEFLATE codes cheaply, so lowering JPEG quality yields a smaller PNG, never a larger one. The bytes measure the photographic detail that survived, not the damage. And on phone cameras at default settings, 4:2:0 subsampling means one chroma sample covers each 2×2 luma area, so PNG writes full colour for three interpolated pixels in every four.

Converting to PNG is one-way — the detail the JPEG discarded never comes back

Out to PNG and back to JPG lays a second generation of loss over the first, and the detour recovers nothing: the coefficients rounded away at the first encode are written down nowhere, so no later pass can restore them. The PNG is a faithful copy of an already-damaged picture, not a repair of it. One conversion, made at the moment something genuinely needs PNG, is the whole of the transaction — round-tripping back to JPG only adds harm.

A common hope is that saving a JPEG as PNG improves it — PNG being the higher-quality format — and that gets the direction exactly wrong. PNG cannot be sharper or cleaner than the JPEG handed to it; it can only decline to lose anything further. A soft, blocky, over-compressed JPEG becomes a soft, blocky PNG, and a larger one at that. The conversion is one-way in this plainer sense too: it sets a ceiling at whatever quality the file walked in with, and no choice made on this page raises it.

If the JPEG is kept as the archive, the PNG is not an equivalent stand-in for it. This re-encode is drawn through a browser canvas, so the output carries none of the source’s EXIF — camera model, capture date, GPS coordinates all drop — and no embedded colour profile, while gaining an alpha channel the JPEG could never hold. The decoded pixels are not even guaranteed identical, since decoders differ on IDCT precision and chroma upsampling. The files differ in far more than byte count.

Questions

Are my JPG files uploaded to convert them?

No. Your JPG images are decoded and re-encoded to PNG entirely in your browser — nothing is sent to a server, logged or stored. Most free converters upload your photos; these never leave your device.

Does converting JPG to PNG lose quality?

No. PNG is lossless, so every pixel is preserved exactly — the image is identical, only the file format changes.

Can I convert several images at once?

Yes. Add as many as you like — they are converted together, and if there is more than one you get them back as a single zip.

Updated 2026-07-24. Runs entirely in your browser — nothing is uploaded.