JPG to PNG Converter — Lossy DCT to Lossless DEFLATE
JPG and PNG sit at opposite ends of the still-image compression spectrum. JPEG (ITU-T T.81 approved 18 September 1992 / ISO/IEC 10918-1:1994, jointly published by CCITT Study Group VIII and the Joint Photographic Experts Group) uses lossy DCT-based compression with 8×8 block transform, quantisation tables, and chroma subsampling — typically 5–10× smaller than the source pixels for photographs at quality 85. PNG (W3C Recommendation 10 November 2003 / ISO/IEC 15948:2004, second edition incorporating all known errata) uses lossless DEFLATE compression (RFC 1951 Deutsch, May 1996, LZ77 + Huffman with 32 KB sliding window) over filtered scanlines, plus optional 8-bit alpha channel. Converting JPG → PNG cannot recover detail JPEG's quantisation already discarded, but does fix the format as lossless for further editing. The conversion runs locally in the browser via the WHATWG HTML Living Standard Canvas 2D Context + HTMLCanvasElement.toBlob('image/png') API — no upload, no server processing, no telemetry. Since DEFLATE is reversible, byte-identical re-decoding is guaranteed across browsers and image libraries.
How to convert JPG to PNG
- Drop a .jpg / .jpeg file onto the tool or click to browse — single file or batch.
- The browser decodes the JPEG bitstream (per ITU-T T.81) to an ImageBitmap and draws it to a Canvas at native dimensions.
- Canvas calls toBlob('image/png') which encodes the pixels via DEFLATE (RFC 1951) into a PNG (W3C 2nd Ed / ISO/IEC 15948:2004) — no quality slider needed since PNG is lossless.
- Download the PNG. EXIF metadata is stripped (privacy benefit). The original JPG file on disk is not modified.
Common use cases
- Feeding a JPG photo into a design tool (Figma, Photoshop, Sketch) that prefers PNG for non-destructive compositing and alpha-mask workflows.
- Archiving a JPG as PNG before manual edits so subsequent saves don't accumulate JPEG generation loss.
- Preparing a JPG for a platform that only accepts PNG (some print services, specific CMSes, icon-asset pipelines requiring lossless input).
- Stripping EXIF metadata (GPS coordinates, camera serial, timestamps) for privacy before sharing — the Canvas API conversion drops EXIF as a side effect.
Frequently asked questions
Why is the PNG often larger than the source JPG?
JPEG (ITU-T T.81, Sep 1992) uses lossy DCT compression — 5–10× smaller than raw pixels at quality 85. PNG (W3C 2nd Ed, 2003) uses lossless DEFLATE (RFC 1951 May 1996) that preserves every pixel including JPEG's existing artefacts. PNG can't approach JPEG's compression ratios for photos; expect 2–5× growth.
Does converting JPG to PNG improve image quality?
No. JPEG quantisation is irreversible — once high-frequency DCT coefficients are zeroed and chroma subsampled (typically 4:2:0), the original detail is lost permanently. PNG preserves the decoded JPEG pixels — including block artefacts, ringing, banding — but adds nothing back.
What happens to EXIF metadata during conversion?
EXIF (JEITA CP-3451X / CIPA DC-X008-2019, Exif 2.32, May 2019) lives in JPEG APP1 markers — camera, GPS, timestamps. PNG has no native EXIF chunk by default; browser Canvas-based conversions strip EXIF entirely. Privacy benefit: GPS coordinates don't follow into the PNG.
Will the PNG support transparency from a JPG source?
No. JPEG has no alpha channel — every pixel is fully opaque. JPG → PNG produces an opaque PNG. PNG supports both palette transparency (tRNS chunk) and 8-bit alpha (RGBA), but the source JPEG carries no transparency information to translate.
Does the conversion run locally or in the cloud?
Locally. The tool uses WHATWG Canvas 2D Context + HTMLCanvasElement.toBlob() — decode JPEG to ImageBitmap, draw to canvas, toBlob('image/png') serialises pixels via the browser's PNG encoder. No upload requests fire (verifiable in DevTools Network tab).
What you gain (and don't gain) by converting JPG to PNG
The conversion preserves dimensions, colour values per pixel, and visual fidelity exactly as the JPEG decoded — which means JPEG's existing artefacts (8×8 block edges, ringing near sharp transitions, chroma subsampling smear, banding in smooth gradients) get baked permanently into the PNG output. PNG's lossless DEFLATE encoding cannot un-quantise what JPEG quantised; it only makes the current pixel values immune to further re-compression loss. What you do gain: (1) lossless re-saves — every subsequent edit and save preserves pixels exactly, no generation loss; (2) optional alpha channel — although the source JPEG has no transparency, you can later mask or composite knowing PNG will preserve any alpha you add; (3) larger colour depth — PNG supports 8-bit indexed, 8/16-bit truecolor with optional alpha, vs JPEG's fixed 8-bit-per-channel YCbCr. What you lose: file size (PNG is typically 2–5× larger than the JPG for photographs because lossless encoding can't approach lossy compression ratios) and EXIF metadata (JEITA CP-3451X / CIPA DC-X008-2019, Exif Version 2.32 revised 17 May 2019 — camera model, GPS, timestamps stored in JPEG APP1 markers — most browser Canvas-based conversions strip EXIF entirely, which is a privacy benefit when sharing photos). The net trade is correct only when the destination genuinely needs PNG (transparency target, lossless editing pipeline, format-specific CMS).
- Lossless DEFLATE encoding per RFC 1951 (no further compression loss after conversion)
- Source JPEG decoded per ITU-T T.81 / ISO/IEC 10918-1 baseline DCT
- Output PNG per W3C 2nd Edition / ISO/IEC 15948:2004 specification
- EXIF metadata stripped during conversion (privacy-preserving for shared photos)
- Side-by-side size comparison (PNG vs source JPG) before download
- Browser-side via WHATWG Canvas toBlob('image/png') — no upload, no server
Free. No signup. No file uploads. Ads via AdSense (consent required).
Sources (5)
- ITU-T (CCITT) Study Group VIII & ISO/IEC JTC 1/SC 29/WG 10 (JPEG) (1992). Information technology — Digital compression and coding of continuous-tone still images: Requirements and guidelines. ITU-T Recommendation T.81 (18 September 1992) / ISO/IEC 10918-1:1994 — JPEG baseline DCT bitstream specification.
- W3C (PNG Working Group) (2003). Portable Network Graphics (PNG) Specification (Second Edition). W3C Recommendation 10 November 2003 / ISO/IEC 15948:2004 — lossless raster format with alpha + indexed/truecolor + DEFLATE compression.
- Deutsch, P. (1996). DEFLATE Compressed Data Format Specification version 1.3. RFC 1951, IETF (May 1996, Aladdin Enterprises — LZ77 + Huffman; 32 KB sliding window; PNG IDAT compression).
- JEITA / CIPA (2019). Exchangeable image file format for digital still cameras: Exif Version 2.32. JEITA CP-3451X / CIPA DC-X008-2019 (revised 17 May 2019 — metadata stripped during JPG→PNG since PNG lacks an Exif chunk by default).
- WHATWG (live). HTML Living Standard — Canvas 2D Context + HTMLCanvasElement.toBlob(). html.spec.whatwg.org/#2dcontext (browser conversion mechanism: decode JPG → ImageBitmap → drawImage → toBlob('image/png')).
These are the W3C, ISO/IEC, ITU-T, and IETF specifications the tool implements or builds on. Locate them on w3.org, iso.org, itu.int, or datatracker.ietf.org.