Convert JPG to PNG — lossless from here on, no upload, no signup

You exported a chart as JPG, saved a logo, or screenshotted a UI — and now ringing artifacts haunt every text edge. PNG is lossless. Converting stops further quality loss on every future save, and unlocks alpha-channel support JPG never had. Everything runs in your browser; your files never leave the device.

Convert to PNG →

Why convert JPG to PNG?

JPG was designed for photographs — continuous-tone images where a little colour blur is invisible to the human eye. It was never meant for screenshots, diagrams, export-ready logos, or anything with sharp contrasting edges and flat areas of colour. Every time you re-save a JPG, the codec discards a fresh slice of data. Convert once to PNG and the compression is lossless from that moment on: every subsequent edit, export, or pipeline pass preserves exactly the pixels you have. That alone is worth the larger file size for assets you intend to keep editing. PNG is also the only sensible choice for design pipelines that need reproducible pixel-perfect output.

What you lose and what you gain

Honesty first: converting JPG to PNG does not recover the artifacts that were burned in by the original lossy encode. The ringing around text, the blocky gradients, the colour smearing near high-contrast edges — those are already baked into the pixel data. PNG wraps those pixels losslessly; it does not undo them. What you gain is a hard stop to further degradation. Re-saving a PNG ten times produces bit-identical output each time. You also gain alpha-channel support: JPG has no transparency layer at all, while PNG carries a full 8-bit alpha channel, which matters the moment you want to layer the image over another background or drop it into a presentation. The trade-off is file size — a typical 1920×1080 screenshot inflates from ~340 KB as JPG to ~890 KB as PNG.

How to convert JPG to PNG

The whole conversion runs locally in your browser. No upload, no server, no account required. Works fully offline once the page has loaded once:

  1. Click "Convert to PNG →" at the top of this page, or drag your JPG file directly onto the drop zone on the homepage.
  2. ConvertMyPic decodes the JPEG using the browser's native JPEG decoder via the Canvas API — the same path Chrome, Firefox, and Safari use to display JPGs on any webpage, so compatibility is perfect.
  3. The raw pixel data is then re-encoded to PNG using oxiPNG, compiled to WebAssembly. oxiPNG applies lossless optimisation passes — filter selection, Zopfli deflate compression — to produce the smallest valid PNG for those exact pixels.
  4. Click the download button. The PNG saves straight to your Downloads folder with the extension swapped — screenshot.jpg becomes screenshot.png. Filename and directory structure are unchanged.
  5. Need batch conversion or custom compression level? Open /convert directly to process files one at a time with full control over the oxiPNG optimisation level (0–6).

File size comparison: JPG source vs PNG and re-encoded JPG

Numbers from two real test images: a 1920×1080 screenshot with text and UI chrome, and a 1920×1080 photographic image. All JPG encodes use mozJPEG.

SourceFormatFile sizeNotes
1920×1080 screenshot (text + UI)JPG q90 (source)340 KBOriginal; visible ringing on text edges
1920×1080 screenshot (text + UI)PNG (lossless)890 KBLossless; no further degradation on re-save
1920×1080 screenshot (text + UI)JPG re-encoded q90330 KBSlightly smaller but adds another lossy pass
1920×1080 screenshot (text + UI)JPG re-encoded q75210 KBNoticeable new banding introduced
1920×1080 photo (landscape)JPG q90 (source)1.7 MBOriginal photo — JPG is appropriate here
1920×1080 photo (landscape)PNG (lossless)10.5 MB6× larger; rarely worth it for pure photos

When to convert, and when to stay on JPG

Convert to PNG when the image contains sharp edges, flat regions of colour, text, line art, icons, charts, diagrams, UI screenshots, exported Figma frames, or any asset that will be edited and re-saved multiple times. These are precisely the image types where JPG's DCT compression introduces visible artefacts most aggressively. Convert also when the downstream tool or pipeline requires lossless input — many ETL pipelines, GitHub README images, design hand-off packages, and print-prep workflows mandate it. PNG is also mandatory when you need a transparency layer: JPG has no alpha channel, full stop. Stay on JPG when the image is a continuous-tone photograph destined for web delivery and you are not planning further edits. A holiday photo, a product shot, a portrait — these compress dramatically better as JPG with no perceptible quality loss at q85 or above. Converting a photograph to PNG balloons the file to 6-10× its JPG size with zero visible quality improvement for photographic content. For web photos, stay on JPG (or move to AVIF or WebP for even better compression).

Under the hood: which codecs are used

JPEG decoding relies on the browser's built-in Canvas API — specifically, drawing the JPG to an off-screen canvas element and then calling getImageData() to extract the raw RGBA pixel buffer. This is the same decoding path the browser uses to render every JPG on the web, so it handles the full spectrum of JPEG sub-types: baseline, progressive, JFIF, EXIF-rotated, and CMYK with a fallback. The raw pixel buffer is then handed to oxiPNG, compiled to WebAssembly via Emscripten, running inside a Web Worker so the UI never freezes. oxiPNG applies multiple lossless optimisation strategies — trying different PNG filter heuristics and using Zopfli for deflate compression — to produce files that are typically 10-20% smaller than a naïve libpng encode of the same pixels. Source: github.com/shssoichiro/oxipng.

FAQ

Does converting JPG to PNG recover the compression artifacts?

No. The lossy JPEG encoder discarded that pixel data when the JPG was first created. PNG wraps whatever pixels remain, losslessly — it cannot reconstruct data that was never there. What it does do is ensure no additional artifacts are introduced by any future save or edit of the file.

Why is the PNG so much bigger than the JPG?

JPG achieves its small file size by permanently discarding colour detail the human eye is slow to notice. PNG stores every pixel at full precision with no data loss. For a screenshot with large areas of flat colour, a PNG compressed with oxiPNG is typically 2–3× the size of the JPG. For photographs with complex texture in every pixel, the ratio can reach 6–10×.

Will the PNG have a transparent background?

Not automatically. The conversion copies the pixels from the JPG into a PNG container. If the original JPG had a white background, the PNG will also have a white background — but it will now be in a format that supports alpha. To actually make part of the image transparent, you need an image editor (like Figma, Photoshop, or GIMP) to remove the background after conversion.

Do my files get uploaded anywhere?

No. The entire conversion — JPEG decoding, PNG encoding, oxiPNG optimisation — runs in your browser using the Canvas API and a WebAssembly module. Open your browser's Network tab during a conversion and you will see zero outbound requests beyond the initial page load. We have no server to upload to.

Is this tool free?

Yes, completely free. Because we run no servers and do no processing on our end, there is no infrastructure cost to pass on. The oxiPNG WASM module is downloaded once and cached; every conversion after that runs entirely on your CPU at no cost to us.

What is the maximum file size?

Your browser's available memory is the limit. On a desktop machine with 16 GB of RAM, Chrome handles JPGs up to 50 MB and beyond without issue. On older or memory-constrained phones, stability is typically fine up to 20–30 MP images. If a file is too large, you will see a clear error message rather than a silent crash.

Can I convert multiple JPGs at once?

The current flow converts one file at a time. Batch conversion is on the roadmap. For today, the fastest workaround for multiple files is to open /convert in several browser tabs and run them in parallel — all on-device, all simultaneously.

Does EXIF metadata carry over from JPG to PNG?

The standard JPEG-to-PNG conversion does not preserve EXIF metadata because the PNG spec uses a different metadata chunk format (iTXt/tEXt) and most encoders do not translate the EXIF block. If EXIF preservation matters — for example, you need to keep GPS coordinates or camera model data — use a dedicated tool like ExifTool to embed the metadata into the PNG after conversion.

When should I NOT convert a photo to PNG?

When you are serving a photograph on the web and file size matters. A PNG of a full-resolution photo is typically 6–10× larger than its JPG equivalent, with no perceptible quality improvement in photographic content. For photos destined for web delivery, stay on JPG (q85–q90) or move to AVIF or WebP for even better compression. PNG shines for screenshots, diagrams, icons, and assets with sharp edges — not for photographic images.

Why PNG instead of TIFF for lossless archiving?

Both PNG and TIFF are lossless, but PNG has universal web browser support, much smaller file sizes due to its deflate-based compression, and no licensing complications. TIFF is preferred in print and professional photography workflows because it supports 16-bit depth, CMYK colour spaces, and multi-page documents. For screen assets, diagrams, screenshots, and anything that lives on a computer or web page, PNG is the right call — smaller, universally supported, and natively renderable in every browser.