JPG to PNG
Drop JPG photos here and get PNG copies back in this tab. The browser decodes the JPEG, draws the decoded pixels onto a canvas at their own size and writes them out as a PNG — no second compression, no resize, nothing sent anywhere. PNG has no quality setting, so there is nothing to tune: each card tells you what the JPEG header held (baseline or progressive, chroma subsampling, EXIF or ICC profile) and how much bigger the PNG came out.
Drop JPG images here
or choose files · up to 30 at a time · batch or single
JPG in, PNG out · up to 30 files per batch · no re-compression · no upload · no account · no watermark
JPG to PNG: What the Conversion Keeps, and What It Cannot Bring Back
A JPG to PNG conversion is a container swap. The PNG holds exactly the pixels the JPEG decoder produced — across seven test files, not one channel value moved. The largest of them, a 4032 × 3024 photo, came out identical in all 12,192,768 pixels.
Nothing is sharpened and nothing is restored. What changes is the size (that photo went from 960 KB to 11.52 MB) and what the file can survive next: a PNG can be opened, edited and saved again without another pass through JPEG quantisation.
What the swap changes, and what it does not
The tool decodes the JPEG, draws the decoded pixels onto a canvas at their original width and height, and encodes that canvas as a PNG. No resampling, no cropping, no rotation setting, no quality dial — a PNG has nothing to tune, so the panel shows what the file is rather than a slider that would do nothing.
Two things change for real. The output is 8-bit RGBA, so it carries an alpha channel it did not have before, and the file is written without the JPEG's block structure. Everything else is inherited: the colours, the block edges, the ringing around hard lines, the exact values the decoder handed over.
The alpha channel is worth being blunt about. All seven outputs had 0 non-opaque pixels. A JPEG has nowhere to store transparency, so there is none to carry over, and the new channel comes out fully opaque.
If you searched for "jpg to png transparent background", the format change alone will not give it to you. That is a segmentation job, and this page does not pretend otherwise.
How to convert a JPG to PNG here
- Add the files. Drop them on the box above, choose files, or paste. Up to 30 at a time, 80 MB and 100 megapixels per file.
- Read the card. There is no setting to choose. Each card reports the source header — baseline or progressive, 4:2:0 or 4:4:4, greyscale or CMYK, EXIF or ICC present — and the size change against the JPG.
- Download. Each card has its own link; the button under the panel packs the batch into one ZIP built inside the tab.
Files that are not JPEG are refused with the reason (a PNG says "already a PNG"), and only the bytes decide: a .jpg extension on a WebP file gets the WebP answer.
What the PNG cannot bring back
The useful test is a chart that is nothing but one-pixel vertical stripes, alternating red and cyan, saved twice at quality 85: once with full colour resolution (4:4:4), once with chroma subsampling (4:2:0).
| How the JPG was encoded | File size | Mean |R−G| | Distinct colours | Strongly coloured pixels |
|---|---|---|---|---|
| 4:4:4, quality 85 | 131 KB | 253.6 | 7 | 100% |
| 4:2:0, quality 85 | 44.6 KB | 2.0 | 3 | 0% |
A value of 253.6 means red stays red and cyan stays cyan. A value of 2.0 means the stripes are grey: the hue was averaged away in 2 × 2 blocks before any PNG existed.
Convert both files here and each PNG reproduces its own row exactly — 0 of 262,144 pixels differ from what the JPEG decoded to, in both cases. The converter is faithful. The loss happened upstream.
That is why "does converting JPG to PNG improve quality" has a flat answer: no. Ringing around text, blocking in flat areas and smeared colour edges are stored as pixel values by the time this page sees the file. Re-wrapping them in a lossless container preserves them with great precision.
Why this page doesn't upload your JPG
Decoding, drawing and encoding are three things every browser already does. A server would add an upload, a queue and a download, and the PNG would be no better for it. Here the file is read in the tab, drawn on a canvas and encoded by the same browser you are looking at.
You can verify that without trusting this page. Open DevTools (F12), switch to Network, then convert a file: no request carries the image. Stronger still, load the page, disconnect from the internet and convert anyway. The conversion path never touches the network.
What the swap costs in bytes
| File | As JPG | As PNG from this tool | Change |
|---|---|---|---|
| Photo, 4032 × 3024, progressive | 960 KB | 11.52 MB | +1128% |
| Same photo re-saved at quality 20 | 400 KB | 6.39 MB | +1535% |
| Screenshot, 2560 × 1800 | 359 KB | 1.69 MB | +383% |
| Greyscale photo, 4032 × 3024 | 1.16 MB | 9.18 MB | +692% |
| Photo with EXIF, 1200 × 900 | 91.4 KB | 822 KB | +799% |
| Stripe chart, 4:2:0 | 44.6 KB | 7.0 KB | −84% |
| Stripe chart, 4:4:4 | 131 KB | 7.0 KB | −95% |
Photographs are where the cost lands hardest. A 12-megapixel JPEG that already fits in under a megabyte becomes 11.5 MB of PNG, and the reason is arithmetic rather than a setting: PNG stores every pixel's four channels and then compresses the result, while JPEG spent its bytes throwing detail away.
A photo is made of gradual change rather than repetition, so a deflate stream finds little to squeeze.
The last two rows run the other way, and they are the interesting ones. Both stripe charts collapse to about 7 KB — the 4:4:4 chart because only 7 distinct colours are left to store, the 4:2:0 chart because the colour was gone and the file is nearly a flat pattern of two greys.
A JPEG is expensive when an image is made of detail it cannot smooth away; a PNG is cheap when an image is made of repetition. Those are opposite diets.
The greyscale row carries a second cost: a one-channel JPEG is decoded into four channels before the PNG encoder starts, so a 12.2-megapixel greyscale file becomes an RGBA image with four values per pixel before compression.
What the PNG does buy you: a file that stops drifting
Take a 1600 × 1200 PNG, save it as JPEG at quality 85, run the result through this tool, then save that PNG as JPEG again. Five times.
The first JPEG save moved 677,069 of 1,920,000 pixels against the original and landed at 51.38 dB peak signal-to-noise ratio. The fifth save measured 51.36 dB and 679,424 pixels: the damage arrived on the first pass and then stopped moving, because re-encoding an already quantised image at the same setting converges instead of piling up.
A PNG round trip in the same test changed 0 pixels. That is the honest case for converting: a PNG you keep and re-save does not drift, so every later save is free of charge.
It will not undo the first JPEG pass, and it cannot make a soft photo sharp. It just stops the next edit from adding to the problem.
Where EXIF, profiles and rotation go
The output carries no metadata. Parsing the seven PNGs found IHDR, one or more IDAT chunks and IEND, in every case — no eXIf chunk, no iCCP chunk, no text.
That has three visible consequences. Camera and GPS fields in the source are gone with the rest of EXIF, which is a privacy gain if you are publishing the file. A colour profile in the source is not carried over; the canvas works in sRGB, so a wide-gamut JPEG can come out with slightly different colour in a colour-managed app.
Rotation is baked in as well. The test file was stored as 1200 × 900 with an orientation tag of 6, and the PNG came out 900 × 1200, because the browser applies the rotation to the pixels and then has no tag left to write.
When converting a JPG to PNG is worth it
- You will keep editing and re-saving. A PNG intermediate does not add a generation of loss each time you hit save.
- You need an alpha channel for later work. The channel is there, fully opaque, ready for a mask you add in an editor.
- You want a stable master copy of an image that arrived as JPEG. It is bigger and no better, but it will not change again.
- You are handing the file to a pipeline that requires PNG. Formats are a compatibility question more often than a quality one.
Skip it when you want a smaller file, a sharper picture, a transparent background or a repaired photo. None of those come out of a container swap, and the size column above shows the bill for pretending otherwise.
Quick answers
Why did a 960 KB photo become an 11.52 MB PNG? Because the PNG stores four channels for every one of 12,192,768 pixels and then compresses them, while the JPEG had already discarded most of the detail. The measured ratio here was 12.3× for a camera photo and 4.8× for a screenshot.
Does converting JPG to PNG improve quality? No. All seven outputs matched their JPEG's decoded pixels exactly, which means every artefact came along. Improvement would require information the JPEG no longer contains.
Can this give me a transparent background? No. The alpha channel is written, but 0 pixels in the test outputs were anything other than fully opaque. Removing a background means deciding which pixels are background, and that is a different job.
Does the PNG keep the EXIF data? It does not. The PNGs contained only image data chunks, so camera model, GPS and the orientation tag were all dropped. Convert before you publish if the location data matters.
Is PNG bigger than JPG for everything? No. Two 512 × 512 stripe charts came out 84% and 95% smaller as PNG, because they hold few distinct values. Photographs and screenshots of photographs are where PNG loses badly.