Format problems are rarely about pixels, they are about labels. An upload field that only accepts JPG will reject a perfectly good PNG; a print shop will not open a WebP; a theme that expects a transparent background chokes on a JPEG; and a slow page is usually a directory of full-resolution images that nobody downsized. Every one of those is a container decision, not a retouching job, which is why conversion is a good fit for a browser. The file is decoded, drawn onto a canvas at the size you want and encoded again in the target format, all through APIs that are already present on any device with a modern browser. The practical argument for doing it here rather than in an installed program is the same as with any local tool: the images in question are frequently private. A medical scan, a passport photo, a screenshot of a contract, a photo from a customer's phone. There is no upload endpoint on this page, so nothing to intercept, and no queue to wait in - the cost of the operation is the time your own CPU takes.
The three formats behave very differently
PNG is lossless with full alpha transparency, which is why screenshots, logos, diagrams and anything with text or flat colour should stay in it. The cost is size: a lossless codec stores every pixel exactly, so a photograph saved as PNG is routinely several times larger than the same photograph as JPEG, and converting an already-efficient PNG to PNG accomplishes nothing except burning CPU. JPEG is lossy, universally supported, and has no alpha channel at all - this is the single most common surprise. A transparent PNG converted to JPEG does not become slightly transparent, it becomes opaque with black where the transparency was, because the encoder composites onto an undefined background. Fix it by drawing the image onto a canvas that you have already filled with the background colour you want, white for documents, a brand colour for a card. WebP is the modern middle ground: lossy like JPEG but roughly 25 to 35 percent smaller at the same quality, with real alpha support and a quality argument that actually works.
Silent fallbacks that produce the wrong file
Two browser behaviours cause confusion often enough to be worth knowing. First, WebP encoding depends on the browser: canvas can only emit a format the current engine supports, and when the type you ask for is not available the encoder falls back to PNG without telling you. If you expected a WebP and got a larger file, check the extension that was actually produced. Second, colour profiles are dropped. Canvas works in a single colour space, normally sRGB, so a screenshot captured on a wide-gamut display or a P3 photo comes out slightly flatter than the source, and ICC profiles that used to be embedded are gone. Neither is a defect, and neither is visible for most web use - but it is the reason a colour-accurate designer should not treat a browser conversion as a production step for print.
Converting is re-encoding, so mind the generation loss
Every conversion decodes and encodes again. Going from a PNG source to JPEG or WebP is a single lossy generation and is fine. Going JPEG to WebP to JPEG is two, and going JPEG to JPEG repeatedly is how images acquire mush. Convert from your original master every time, keep the master, and treat every file this page produces as a derived copy. If your source is a JPEG that has already been through three rounds of compression, converting it will not recover anything - it will only re-encode the artefacts you already have, one generation deeper. In that situation the only real fix is to go back to the original capture.
Frequently asked questions
Is the original image uploaded anywhere?
No. The conversion happens in this tab using the canvas and Blob APIs; the file you select is read from disk by the browser and never sent anywhere. The site carries advertising, which means ad providers can see page-level data such as your IP address, but not your images.
Why did my PNG become a much bigger JPEG?
Two different reasons are possible. If you converted a photo from PNG to JPEG and it got bigger, the PNG was probably an efficient file and JPEG at a high quality setting is not a real saving. If you converted a flat-colour screenshot or a logo to JPEG and it got much bigger, that is normal too - a lossy codec spends bytes on smooth gradients that you cannot see anyway. Keep those in PNG and convert only the parts that need it.
My transparent background turned black after converting to JPEG. Why?
JPEG cannot store transparency. The browser composites the transparent pixels onto an undefined background, which is usually black. Convert from the PNG original to JPEG, and if you need a specific background colour, place a filled rectangle on the canvas before drawing the image. WebP and PNG both keep transparency if you need it.
Can I convert a large batch at once?
Yes, select several files and they are processed one by one in your browser. The practical limit is device memory: every image is fully decoded into a bitmap, so a handful of 50-megapixel photos can exhaust the memory a mobile browser is allowed to use. Work in smaller batches on a phone.