Converter · No upload

PNG to JPG, privately

Drop in PNGs and download compact JPGs at the quality you choose. The conversion runs entirely inside your browser — nothing is uploaded, the network meter below proves it live, and it works with your wifi off. Transparency is flattened onto white, because JPG has none.

Statusidle Files OutputJPG Network since file read

The dial applies to files you add after changing it — files already converted keep the quality they were made at (drop them in again to re-convert).

How this converter works

Your browser decodes PNG natively — no extra code is needed. When you choose a file, the File API opens it in memory, the browser turns it into raw pixels, and this page draws those pixels onto a canvas that has first been filled white, so transparent regions land on a clean background instead of JPG's default black. The canvas then re-encodes to JPG at the quality you set on the dial, and the result comes back as a download link. Every step runs in the tab; this site has no server that could receive a file.

Worth knowing precisely what that instrument does, since a measurement you cannot interrogate is only another claim. It listens to PerformanceObserver, the resource-timing feed built into your browser, and tallies entries logged from the moment your first file is opened. It therefore says nothing about the moments before then, and resource timing never surfaces WebSocket connections. This page opens none, though you should not have to take our word for that either. Which is why the decisive check is not a number on our own screen: disconnect from the internet completely and convert anyway. The tool behaves identically, having been stored locally on your first visit. Both limits and both remedies are detailed on the methodology page.

The honest limits: JPG's savings come from discarding detail, and that loss is irreversible — keep your PNG originals for anything that matters. Sharp edges, text, and flat-color graphics show JPG artifacts soonest; photographs tolerate compression best. Transparency cannot survive the trip (flattened onto white, as disclosed), and re-encoding strips metadata from the output — including PNG text chunks and any embedded location data.

Frequently asked questions

Is my image uploaded anywhere?
No. Your browser decodes the PNG itself, redraws it on a canvas inside this tab, and re-encodes it as a JPG — all in memory, on your device. The readout's network meter counts every request from the moment your file is read and stays at zero, and the methodology page shows how to verify that independently.
What happens to transparent areas?
They're flattened onto a white background, because JPG has no transparency at all — every JPG pixel must be a solid color. If you need the transparency kept, stay in PNG or use WEBP; converting to JPG inherently gives it up.
What quality setting should I use?
The default 0.92 is visually indistinguishable from the original for most images while cutting the size substantially. Go higher for images you'll edit again; as low as 0.7 is usually fine for casual sharing. Text and sharp-edged graphics show JPG artifacts first — if your PNG is a screenshot or diagram, inspect the result before deleting anything.
Will the JPG always be smaller than the PNG?
Usually, but not always, and the exception is common. JPG is a lossy format: it spends detail to save space, discarding information your eye is least likely to miss, so a photograph normally shrinks a great deal. Flat images with broad areas of a single color — screenshots, diagrams, logos, line art — are exactly what PNG was designed for, and converting one to JPG can produce a larger file as well as fuzzy text and haloed edges. Every row below prints the before and after size, so you can see which happened before you keep the result. Keep the PNG original if the image matters.
Is metadata kept in the JPG?
No. Re-encoding through a canvas strips metadata from the output — for PNGs that includes text chunks and any embedded location or creation data. For images you're about to share, that's a privacy feature.

Related tools