Convert WebP images to universally compatible JPG while keeping quality. Batch conversion runs in your browser — nothing is ever uploaded.
Something downstream will not take a .webp — a marketplace listing form, a print shop, an email client, an ATS that only accepts JPEG, an older editor, a device that has never heard of the format. JPG is the lowest common denominator of digital images and the thing that always works. This tool re-encodes your WebP files as JPEGs in your browser, with a quality slider so you decide the trade between file size and visual fidelity, and it does one thing to your image that you should know about before you press the button: it flattens transparency onto a white background.
Drop files onto the upload area or click to browse, set the quality, press Convert All, then download. Multiple files at once, up to 50 MB each.
WebP can store per-pixel transparency. JPEG cannot — not partially, not at all. The format has no way to say "this pixel is see-through", so every pixel in the output must be some opaque colour. Something has to be put behind the transparent parts, and this tool's answer is explicit and predictable: white, #ffffff. Before your image is drawn, the canvas is filled with solid white; the image is then composited on top. Wherever the WebP was transparent, the JPG is white. Wherever the WebP was half-transparent, the JPG is a 50/50 blend of your pixel and white.
For a photograph, none of this matters — photographs are fully opaque, so the white layer is entirely hidden and the output is identical to what you would get either way. For a logo, an icon, a cut-out product shot, a sticker, a signature scan, or a UI element, it matters a great deal, and it is not reversible. A white box is now baked into the pixels.
| Your image | Converting to JPG here |
|---|---|
| Photograph, screenshot, or any fully opaque image | Fine. The white fill is completely covered. |
| Logo on transparent background, going onto a white page | Fine in practice — the white matches the page and nobody can tell. |
| Logo on transparent background, going onto a dark or coloured background | A white rectangle will appear around it. Do not convert to JPG; use PNG instead, which keeps the alpha channel. |
| Cut-out product shot for compositing | The cut-out is destroyed — you get the subject on a white block. Keep it as PNG. |
| Anti-aliased icon with soft edges | Edges blend to white. Acceptable on white, visibly haloed on anything else. |
The quick test: open the WebP in a viewer that shows transparency as a checkerboard. If you see checkerboard, converting to JPG will turn that area white. If the image is solid to the corners, convert freely.
The slider runs from 10% to 100% and starts at 92%. JPEG quality is not a percentage of anything you can see — it scales the quantization tables that decide how much fine detail the encoder discards. What it means in practice is that the top of the range costs a lot of bytes for very little visible gain, and the bottom of the range saves bytes you will regret.
| Quality | Good for | What starts to show |
|---|---|---|
| 100% | Almost nothing — if you need this, you need PNG | Files that can rival the original for size with no visible benefit over 95% |
| 92% (default) | General use, printing, archiving, handing to a client | Nothing at normal viewing sizes |
| 85% | The usual web sweet spot; email attachments | Faint softening on very fine detail if you pixel-peep |
| 70–80% | Getting under a hard upload cap | Halos around high-contrast edges; blockiness in smooth gradients and skies |
| Below 60% | Thumbnails, previews, throwaway copies | Obvious 8×8 blocking, mushy skin tones, ringing around any text in the image |
Content matters more than the number. Photographs of faces, foliage, and texture hide compression well and tolerate 80% comfortably. Screenshots, charts, and anything containing text fall apart much earlier, because JPEG's discrete cosine transform is fundamentally bad at hard edges — it is the reason text in a low-quality JPEG grows a grey ghost around every letter. If your WebP is a screenshot, JPEG is the wrong destination at any quality.
One behaviour to know: files already marked complete are skipped when you press Convert All again. Moving the slider and re-converting will not re-encode a file that already converted — it only picks up files still pending. To try a different quality on the same image, remove that file (or use Clear All) and add it back in.
So the efficient workflow for a large batch is to convert one representative file first, check the reported output size and open the result at full size, and only then add the rest. Each row shows original size, converted size, and the percentage change, which tells you immediately whether your setting is achieving anything. If a photo shows a large size increase, your quality is set too high for the content — you are spending more bytes on JPEG than the WebP encoder spent, which defeats the purpose.
Both WebP (in its usual lossy mode) and JPEG are lossy. Each throws away detail it judges you will not miss, and neither can put it back. When you convert a lossy WebP to JPEG, you are applying a second, different set of approximations on top of a first — and the second encoder cannot tell the difference between real detail and the first encoder's artifacts, so it faithfully spends bits preserving the damage.
Once is usually invisible at sensible quality. The problem is repetition. Save a JPEG, open it, crop it, save again, mail it, someone re-saves it, and each round compounds. This is why images that have been round-tripped through chat apps and re-saves for years look like they have been through a washing machine.
Three rules that follow from this:
What is not a source of loss here: resizing. The conversion preserves the image's exact pixel dimensions, reading them from the decoded image and sizing the canvas to match. Nothing is scaled, cropped, or padded.
The conversion runs through the browser's canvas, which deals in pixels. Metadata a WebP might have been carrying — EXIF, ICC colour profile, XMP — is not written into the JPEG. In most cases this is unimportant or actively useful, since it strips any embedded location data before you share a file. It is worth knowing if you were depending on an embedded colour profile for print work, in which case check the output on a calibrated display before sending it to a printer.
.webp; everything else is ignored.banner.webp becomes banner.jpg.Everything happens inside the browser tab. Each file is read from disk by the page, decoded by the browser's built-in WebP decoder, drawn to an in-memory canvas, and encoded to JPEG by the browser's own encoder. No image data is sent to this site or to any third party. There is no upload, so there is no server-side copy to be retained, indexed, or deleted — and no privacy policy you have to take on faith.
You can check this directly: open developer tools, watch the Network tab while a conversion runs, and you will see no image leaving. The tool also keeps working with the network disconnected once the page has loaded, which is a reasonable proof on its own. Practically it also means no account, no queue, no per-day limit, and no watermark — and it means the encoding speed depends on your own machine rather than on someone else's server load.