
WebP to JPG
Turn a WebP into a JPG. Any alpha is flattened onto a background nobody picked, and a lossy WebP is put through a second lossy encoder.
WebP to JPG has no alpha channel to write into, so the colour stored under each clear pixel is the colour you end up with, and nobody chose it. A WebP pulled off a web page has usually been through a lossy encoder once, so this is a second pass. The quality box governs that pass, not the one before.
Questions
What happens to a transparent WebP?
The alpha channel is flattened, the same as PNG to JPG, since JPEG has no transparency channel. Whatever showed through the transparent area becomes a solid block.
Am I compressing twice?
Yes, if the source WebP was already lossy. This tool decodes whatever the WebP encoder already discarded and runs a second, independent lossy encode through mozjpeg on top of it. Two lossy passes lose more than one.
Which engine handles this?
jSquash decodes the WebP and encodes the JPEG, both through WebAssembly, running in Node, on the command line, through MCP and in the browser without needing a browser tab specifically.
What size should I expect?
It depends on both the quality the source WebP was saved at and the quality option set here, default 80. A WebP saved efficiently at a low quality can land as a larger JPG at quality 80, since the two codecs do not measure quality the same way.
What is the reverse page?
JPG to WebP goes the other direction, re-encoding into lossy WebP at quality 80 by default, another lossy pass on a lossy source.