FreeToolio

WebP to JPG

Drop WebP images here and get JPEG copies back in this tab. The picture is decoded by your browser, re-encoded at the quality you pick, and any transparency is painted onto a matte colour — because JPEG has no alpha channel. Nothing is uploaded.

Drop WebP images here

or choose files · up to 30 at a time · batch or single

    WebP in, JPG out · up to 30 files per batch · quality 40–100 · transparency flattened onto a matte · no upload · no account · no watermark

    WebP to JPG: What You Gain, What It Costs

    A JPEG copy of a WebP is a compatibility move, not a size move. On a 12 MP photo the file went from 463 KB to 1.06 MB at quality 85, and even the lowest quality this page offers left it larger than the WebP it came from.

    What you buy with those bytes is a file that opens in software that has never heard of WebP. What you can lose is anything transparent, because JPEG has no alpha channel to put it in. Both facts come from runs on this page, listed below with the exact numbers.

    A 12 MP photo growing from 463 KB as WebP to 1.06 MB as JPG at quality 85, beside a cut-out shape whose transparent area is painted over with the matte colour
    Re-encoding a photo as JPEG usually makes the file bigger, and every transparent pixel is replaced by the matte colour — JPEG has nowhere else to put it.

    What the conversion actually does

    The browser decodes the WebP into pixels, this page paints those pixels onto a canvas over a matte colour, and the canvas is handed to the JPEG encoder.

    Three things happen in that hand-off. The pixels are re-quantised, so a second generation of lossy compression lands on top of the first. Colour detail is subsampled, because baseline JPEG stores brightness at full resolution and colour at half. And every transparent pixel becomes the matte colour, permanently.

    Nothing is recovered. If the WebP was saved at low quality, the JPG keeps those artefacts and adds its own.

    The metadata goes too. The 12 MP sample used below carries an Exif block; the JPG this page writes starts with a JFIF header and holds no Exif block at all. Camera model, capture date and GPS coordinates stay in the original. Orientation is applied to the pixels before encoding, so an upright photo does not need the tag to stay upright.

    The file usually gets bigger, not smaller

    Across six files, every photographic WebP came out of the JPEG encoder bigger than it went in. The two that shrank were the two whose pixels had been stored without loss in the first place.

    File Pixels WebP JPG, quality 85 Change
    Photo, 12 MP 4000 × 3000 463 KB 1.06 MB +134%
    Photo 1024 × 772 173 KB 269 KB +55%
    Photo 550 × 368 29.6 KB 48.3 KB +63%
    Rendered text block 720 × 320 12.4 KB 26.0 KB +109%
    Transparent graphic 400 × 301 17.7 KB 16.3 KB −8%
    Lossless WebP graphic 400 × 301 79.9 KB 16.8 KB −79%

    The pattern is not a quirk of these files. WebP compresses photographs better than baseline JPEG does, so decoding a photo and re-encoding it as JPEG means trading a stronger codec for a weaker one. The picture is already thin; the encoder can only preserve what it was given, at a higher price.

    Quality does not rescue that. The 12 MP photo came back at 618 KB even at quality 60, still a third larger than the 463 KB WebP. At quality 40, the bottom of this page's slider, it was 468 KB: 1% over the original, and visibly damaged. Getting under the original would take a quality so low the picture stops being usable.

    The lossless row is the mirror image. A WebP that stored every pixel exactly has plenty to give up, and JPEG takes it: 79.9 KB became 16.8 KB. That is the case where this conversion saves real space.

    What the quality slider buys

    Same photo, four settings, sizes and average error:

    Quality 1024 × 772 photo 4000 × 3000 photo PSNR
    40 125 KB 468 KB 25.5 dB
    60 165 KB 618 KB 27.6 dB
    75 212 KB 807 KB 30.2 dB
    85 269 KB 1.06 MB 33.5 dB
    95 405 KB 1.95 MB 40.1 dB

    From 60 to 95 the 1024 × 772 photo grows 2.5 times for 12.5 dB less error, and the last step costs the most: 85 to 95 takes it from 269 KB to 405 KB, 51% more, for the smallest gain in the table.

    PSNR is one number for the whole frame, an average of squared error per pixel. It says nothing about where the damage sits. A frame can average 33 dB and still show ringing around a hard edge, because JPEG works in 8 × 8 blocks and a sharp boundary inside a block is the hardest thing for it to hold.

    Use the slider to reach a size budget, then look at the result at 100%, on the edges that matter.

    The alpha channel is the one real failure

    JPEG stores three colour channels. It has no fourth channel for transparency, so a transparent WebP has to become opaque somewhere, and the colour you pick is painted under every transparent pixel.

    The 400 × 301 sample used above has 62,793 fully clear pixels and another 1,827 that are partly see-through. That is more than half the frame. Converting it twice, once on white and once on black, produced two images that differ in 65,389 pixels, with a maximum channel difference of 255, the whole range.

    Pick the colour the image will sit on. On a white page, white leaves no visible edge. On a dark site, a white matte leaves a pale fringe around every cut-out shape, and the same happens in reverse. The per-file note under each result tells you what share of the image is transparent, so you know before you download whether the matte matters at all.

    If the transparency has to survive, JPEG is the wrong output. Keep the WebP, or send it through the WebP to PNG converter, which keeps the alpha channel intact.

    Animated WebP becomes one frame

    A canvas draws a single frame, so an animated WebP converts to a still image of its first frame. The 3-frame 320 × 240 sample on this page came out as one 320 × 240 JPG.

    The tool reads the file header and marks any file that carries an animation chunk, so you are told rather than left to discover it. If the motion matters, keep the original: a JPG cannot hold a frame sequence, and no quality setting changes that.

    When converting is the right call

    Keep the WebP when the next stop is a browser. Chrome, Firefox and Edge have decoded it for years, and Safari since version 14 in 2020, so a WebP on a web page is smaller and just as sharp.

    Convert when the file has to pass through software that predates it:

    • Upload forms that reject .webp and accept .jpg.
    • Older desktop editors and document tools that cannot import WebP.
    • Print workflows, where the shop asks for JPEG or TIFF.
    • Email attachments opened in clients that do not render WebP inline.
    • A partner or client who asked for JPG by name.

    That list is about compatibility, not quality. A JPEG copy is never sharper than the WebP it came from.

    What to check before you delete the original

    1. Dimensions. The JPG must report the same width and height as the WebP. A different number means something resized the image on the way through.
    2. The matte edges. Put the JPG on the background it will actually sit on and look at the cut-out shapes. A halo there is the one error that no higher quality fixes.
    3. Edges at 100%. One image pixel per screen pixel, on a hard boundary. Ringing shows first on text and on high-contrast lines.
    4. The header. A JPEG starts with the bytes FF D8 FF. A file that starts with RIFF is still a WebP, whatever its name says.

    The preview under each result is the flattened JPG, not the original, so the second check can be done before the download.

    What each control does

    JPEG quality sets how hard the encoder quantises. 85 is a good default for photographs. At 60 the 1024 × 772 sample measured 27.6 dB, and at that level the blocks show on gradients and coloured edges.

    Transparency becomes picks the matte: white, light grey, black, or a colour of your choice. It only affects pixels that were transparent, and the note under each result says whether any were.

    Download all as ZIP packs the finished JPGs in the page. Each one can also be saved on its own.

    Batch and the limits of a tab

    Up to 30 files per batch, 80 MB per file, 100 megapixels per image. Files are converted one after another rather than all at once, so memory stays flat instead of holding thirty decoded photos at the same time.

    The megapixel guard matters because a canvas needs four bytes per pixel: a 12 MP photo occupies about 48 MB before the encoder runs. Anything larger than the limit is refused with a message instead of being left to freeze the tab.

    Why the file never leaves the tab

    Decoding, painting and encoding all run in the page's own JavaScript, and the ZIP is assembled there too. Nothing is sent anywhere.

    You can confirm it yourself. Open the browser's developer tools, clear the Network panel, convert a file, and watch for a request that carries the image. There is none. Or load the page, disconnect from the internet, and convert again: it still finishes, because the work never needed a server.

    Quick answers

    Why is my JPG bigger than the WebP? Because WebP compresses photos better than baseline JPEG. The 12 MP photo on this page grew from 463 KB to 1.06 MB at quality 85. Only WebP files saved losslessly tend to shrink.

    How do I keep the transparent background? You cannot, in a JPG. JPEG has no alpha channel. The transparent area becomes the matte colour you pick; if the transparency has to stay, convert to PNG instead.

    What quality keeps it the same as the original? No setting does. The WebP was already encoded once, and any JPEG is a second lossy pass. Quality 85 is a reasonable balance; on the 1024 × 772 sample, going to 95 added 51% to the size.

    Can I convert a whole folder at once? Up to 30 files per batch. Drop them together, then download one by one or as a single ZIP.

    Does it work on a Mac, Windows, Android, or a phone? It runs in the browser, so the operating system does not matter. On a phone the file picker opens the photo library.

    Does the JPG keep the animation? No. An animated WebP comes out as a still image of its first frame, and the tool flags the file before you download.

    Does the JPG keep the camera metadata? No. The decoded canvas holds pixels only, so the JPG is written with a JFIF header and no Exif block. Camera model, date and GPS stay in the WebP.