About this converter
This site takes a PNG and writes a JPG. It writes nothing else, and it is built around the one decision that pair forces.
Why one format pair gets its own domain
Because that pair asks a question no general converter answers out loud. JPEG has no alpha channel, so a decision has to be made about every transparent pixel, and almost every tool makes it silently. People find out when they open the file and see a black square, or a grey rim around a logo that did not have one before.
A converter that is about every format has to treat that decision as one case among many. A converter that is about this one pair can spend everything it has on it: the colour picked explicitly, previewed on the actual picture, with the fringe explained and repaired, and with an honest answer when the right move is not to convert at all.
What it will not grow into
- A converter for every format. A WebP, GIF, BMP or AVIF that arrives is converted the same way and labelled; a renamed JPEG is handed back untouched; HEIC, TIFF, SVG and PDF are refused with a note saying what the file is. No page here targets those formats.
- A compression studio. There is a kilobyte range here, ceiling and floor, because upload forms ask for one, and a six-rung quality ladder for choosing by eye; it searches the quality, and the pixel size only when you ask.
- Background replacement. A matte is a flat fill under the whole frame, not a photograph behind a subject.
- A photo editor. The size controls exist for forms and folders: a long edge, a percentage, an exact box (fitted with the remainder filled by the matte, filled and cropped, or stretched), or a print size at a DPI. There is no drawing, retouching or filter.
How it is built
A static export with no server behind it. The PNG is decoded by the browser and the composite runs on a canvas. The JPEG is written either by the browser's own canvas encoder or by this site's precision encoder — a baseline JPEG writer in plain JavaScript that ships inside the conversion worker. There is no model, no WebAssembly and no upload. A build audit fails the release if any module that can reach image data also references a network or storage API.
The browser's own encoder cannot be asked for a chroma subsampling: it takes a type and a quality and no third argument. The precision encoder takes 4:4:4, 4:2:0 or one-channel greyscale as real settings. Either way, the tool reads the sampling factors back out of the file that was written and prints those, not what was asked for.
Who keeps it
ConvertPngToJpg is a small independent site, built and kept by the team that runs it. It has no accounts, sells nothing and carries no advertising. If something here is wrong — a figure, a form rule that has changed, a file that converts badly — the contact page reaches the people who fix it.


