Converter · No upload
PNG to JPG, privately
Convert PNG images to JPG at the quality you choose. Transparent areas are filled white because JPG has no alpha channel. Files are processed in your browser without upload; after the page has loaded, you can test a conversion offline.
Undecodable PNGs fail, with browser reasons where available; images beyond canvas capacity fail rather than shrink. One JPG per file, default 0.92; quality changes affect pending encodes. Animated PNG becomes one still; the row does not flag animation loss. Transparency is flattened onto white; 16-bit input becomes 8-bit; source text chunks, location data and colour profile are not copied. Takes .png.
The sample is a 240×120 PNG drawn in this tab, with a translucent stripe. JPG has no transparency, so that stripe lands on white, and the re-encode is lossy at the quality you set.
The quality setting is read for files not yet encoded. Changing it does not alter completed downloads; add those files again if you want another conversion.
How this converter works
The File API reads the selected PNG into memory, and the browser decodes it without an extra converter library. The page fills a canvas white, then draws the image over it so transparent areas receive a white background. It encodes the canvas as JPG at the selected quality and offers a download link. File processing takes place in the tab.
The network meter uses PerformanceObserver, your browser’s resource-timing feed, to count entries logged from the first file opened. It does not include earlier page requests or WebSocket connections; this page opens no WebSockets. Use the browser’s Network panel as a separate check, or disconnect after the page has loaded and try a conversion. Success offline shows that the conversion can run without a server, not that every privacy property has been tested. The methodology page explains the meter’s limits and the other checks.
JPG encoding is lossy and cannot restore discarded detail; retain the PNG original for later editing. Text, sharp edges and flat-colour graphics can show compression artefacts. Transparent areas are filled white. Animated PNGs produce one still JPG, not the animation. There is no frame selector or animation-loss warning in the result row; keep the PNG if you need the motion. Canvas re-encoding does not copy the PNG’s original text chunks or embedded location data. Output is 8-bit sRGB: a 16-bit PNG is reduced to 8 bits, and the embedded colour profile is not carried. Changing the quality dial affects files not yet encoded. PNGs the browser cannot decode are marked failed, with its reason where available. Images beyond the browser’s canvas capacity fail rather than being resized without notice.