Skip to main content

WebP to BMP converter

Convert WEBP images to BMP format

No watermarkFree & unlimited
All processing happens in your browser. No data is sent to any server.

This is the widest gap in the image set: a codec from 2010 read by software that often predates it, written out in a layout from the early Windows era. The conversion works because the browser can decode WebP and the page can write bitmap bytes by hand. What suffers is anything modern about the source. Transparency has nowhere to go and is not blended onto white, so alpha regions end up black. Compression is discarded entirely, so a file measured in kilobytes becomes one measured in megabytes.

Key facts about WebP to BMP converter

Key facts about WebP to BMP converter
Bitmap producedUncompressed 24-bit BI_RGB with the classic 14-byte file header and 40-byte information header - no colour table, no RLE.
Alpha handlingDiscarded rather than composited. Only the red, green and blue channels are copied, so transparent WebP pixels land as black in the bitmap.
Scanline orderRows are written from the bottom of the image upward, each pixel stored blue first, and each row padded to a multiple of four bytes.
Size explosionA 120 KB WebP at 1920x1080 becomes a 6,220,854-byte bitmap - roughly fifty times larger, and identical for any image of those dimensions.
Animated sourcesA single frame only. The canvas holds one still image, and the bitmap format has no concept of a sequence.
QualityNo further loss occurs, but nothing is repaired either: whatever softening the WebP encoder applied is stored exactly as decoded.
Physical dimensionsThe header claims 2835 pixels per metre on both axes, the equivalent of 72 dpi.
MetadataNone survives - the bitmap headers have no fields for EXIF, XMP or an ICC profile.
Read byWindows Paint and Photos, Explorer previews, macOS Preview, GIMP, Photoshop, OpenCV and most industrial imaging libraries.

What happens to your file

Two mechanisms meet on this page, both local. The WebP is decoded by the codec built into your browser, and the bitmap is then assembled in JavaScript: getImageData returns the canvas pixels, a DataView writes the headers, and a loop copies rows in reverse with channels reordered before the buffer becomes a Blob. Nothing is transmitted, no library is downloaded for the encoding, and the finished file exists only in this tab until you save it.

About this tool

  1. 1

    Add the WebP files

    Up to twenty per run. If a file has transparency, flatten it in an editor first unless black is an acceptable background.

  2. 2

    Set the dimensions deliberately

    Output length depends solely on width and height, so use a preset if the receiving software has a resolution or memory limit.

  3. 3

    Convert

    The bitmap is built pixel by pixel in the page; large images take a noticeable moment and very large ones several seconds.

  4. 4

    Download

    Single bitmaps save directly; a batch is zipped, which compresses surprisingly well given how redundant the format is.

Specs & compatibility
Input and outputTakes .webp only (image/webp) and returns .bmp with the image/bmp type; any other extension is refused before decoding.
Conversion pathWEBP to BMP runs in three steps: an <img> element decodes the WebP and passes frame one to the canvas; the pixels land on a 2D canvas in this tab; then getImageData feeds a 24-bit BI_RGB writer that assembles the file in page memory.
Browser supportThe WebP side needs Chrome 32, Firefox 65, Edge 18 or Safari 14 to decode, while writing the BMP needs nothing from the browser, the bytes being assembled in the page.
Controls for this pairNo quality slider, BMP not being a lossy target here, so the max-dimension presets from 3840 down to 200 px are the only way to hold the BMP down in size against the WEBP.
Batch, caps and namingTwenty WEBP files per run at 500 MB each; one result downloads as a single BMP, several as converted-bmp-files.zip, zipped by JSZip 3.10 in page memory.
Device ceilingThe canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized WEBP fails before any BMP bytes exist.
  • Flatten transparency onto your intended background colour before converting - black is rarely what anyone wants behind a logo.
  • If the destination software also reads PNG, prefer it: the same exact pixels arrive in a fraction of the space, with alpha intact.
  • Check whether the target expects a 32-bit bitmap with an alpha byte; this file is strictly 24-bit and will not satisfy that requirement.
  • Zipping a folder of bitmaps before transferring them typically cuts the total dramatically, since uncompressed pixel data is highly compressible.
  • Feeding a Windows-only application, test fixture or measurement tool that reads nothing but .bmp.
  • Preparing an image for an embedded display or kiosk whose firmware has only a bitmap loader.
  • Supplying raw pixel data to a vision or OCR pipeline that prefers a format with no decode step.
Because the 24-bit bitmap has no alpha channel and the conversion copies only the colour channels. A fully transparent canvas pixel holds zero in red, green and blue, which is black. There is no white fill on this target - that behaviour belongs to the JPG conversions. Flatten the image onto a background colour first if this is a problem.
WebP spends considerable effort compressing the image; a BI_RGB bitmap spends none. Three bytes per pixel with no encoding at all means the file size follows from the dimensions alone - width times height times three, rounded up per row, plus 54 bytes of headers. A fifty-fold increase from a small WebP is entirely normal.
You will get the first frame as a still bitmap. The browser draws one frame onto the canvas, and BMP cannot represent a sequence in any case. If you need every frame, use a tool that extracts them individually before converting.
Not by this step. The bitmap records exactly the pixels the WebP decoder produced, including any artifacts the original lossy encoding introduced. The format guarantees no further loss, but it cannot recover detail that the WebP encoder already removed.
The most compatible one: BITMAPFILEHEADER plus a 40-byte BITMAPINFOHEADER, 24 bits per pixel, uncompressed, bottom-up rows. There are no options for 32-bit BGRA, RLE compression, top-down storage or the V4 and V5 headers that carry colour-space information.
View all

Need the opposite? Try BMP to WEBP

Updated

We use anonymous analytics to improve ToolChamp. No personal data is stored or sold. Privacy Policy