Lossless re-encode (preserves quality)
Image formats trade off compression, transparency, animation, and browser support. Convert JPG → PNG converts your input to PNG, which is the right choice when you need lossless compression with transparency support (icons, screenshots, logos). JPEG → PNG can't recover lost detail — JPEG is lossy and the discarded high-frequency information is gone. PNG conversion is the right call when you need to add transparency or annotate the image without compounding compression artefacts on subsequent saves. The preset outputs PNG (lossless) entirely in your browser — the file is never uploaded to a conversion server, which matters when the source contains personal information like ID scans, screenshots of private documents, or proprietary design files.
| Output format | PNG |
|---|---|
| Processing | 100% in your browser — no upload |
| Cost | Free, unlimited |
This preset is a deterministic recipe — every step has fixed parameters so the result is byte-identical across runs of the same input.
The format conversion runs through canvas APIs and a WebAssembly image-encoder. Decode and re-encode happen in your browser; the source file is never uploaded.
For input formats not natively decoded by the browser (HEIC, AVIF on older browsers, TIFF), Mochi falls back to a WebAssembly decoder shipped alongside the page.
PNG preserves hard edges and transparency that JPEG would smear. Icons, logos, and screenshots compress better as PNG when the image isn't photographic.
The PNG side is lossless — every pixel from the JPG input is preserved exactly. Note that if the source was already lossy (JPG encoded with prior compression), the PNG only locks in what was already there; it cannot recover detail that was previously discarded.
PNG runs 3-8× larger than JPEG for photographic content because it's lossless. The actual ratio depends on image content — photographs follow the average closely, while screenshots and line art compress differently.
No. This preset runs entirely in your browser using WebAssembly + canvas APIs — no server round-trip. You can verify this in your browser's network panel: only static asset requests, no image upload. The file never leaves your device.