GIF to BMP converter
Convert GIF images to BMP format
People usually reach for this because a specific piece of Windows software demands a bitmap. It is worth knowing what you are trading. The GIF frame is written as a plain 24-bit BMP with no compression, so the file grows enormously, and the alpha channel is thrown away with a specific consequence: transparent areas become black, not white, because the writer reads raw canvas bytes and cleared pixels are zero in every channel. Animation is gone too, since only the frame the browser renders is captured.
Key facts about GIF to BMP converter
| Bitmap variant written | A 54-byte header pair, 24 bits per pixel, no compression flag, rows stored bottom-up in BGR order and padded to a four-byte boundary. |
|---|---|
| Transparent pixels become black | Not white. The writer copies red, green and blue straight out of getImageData, and a fully transparent canvas pixel reads back as zero everywhere. |
| Size explosion | A 500x500 GIF of 40 KB becomes exactly 750,054 bytes, roughly nineteen times larger, because every pixel now costs three uncompressed bytes. |
| Exact size formula | 54 bytes plus the padded row size times the height. A 1920x1080 frame is always 6,220,854 bytes whatever it depicts. |
| Colour | Nothing is gained. The source had at most 256 distinct colours and the bitmap stores 24-bit values, describing more colours than the picture contains. |
| Frames | One. The Image element is drawn to the canvas a single time, capturing the opening frame with no option to select another. |
| Resolution field | Both axes are written as 2835 pixels per metre, that is 72 dots per inch, regardless of anything in the source. |
| Opens the result | Windows Paint and Photos, Visual Studio resource editors, old Delphi and Visual Basic tooling, GIMP, Photoshop and ImageMagick. |
What happens to your file
The bitmap is written in your browser, not on a server. Your GIF goes into an object URL, the browser's GIF decoder produces the frame inside an Image element, and it is drawn into a canvas this page created. The page then calls getImageData and walks the array backwards row by row, writing BGR triples into an ArrayBuffer through a DataView along with the fifty-four header bytes. No file is posted anywhere.
About this tool
- 1
Add the GIF
Drag a .gif file in or browse for one. Twenty files per run, each up to 500 MB.
- 2
Watch for transparency
If the preview checkerboard shows through, those areas will be solid black; flatten the image onto a background first.
- 3
Consider resizing
With no compression, the pixel count is the file size, so capping the long edge is your only lever.
- 4
Convert and download
Press Convert, then save the .bmp or take converted-bmp-files.zip, which compresses well given the payload is raw.
| Input and output | Takes .gif only (image/gif) and returns .bmp with the image/bmp type; any other extension is refused before decoding. |
|---|---|
| Conversion path | GIF to BMP runs in three steps: an <img> element decodes the GIF and only its first frame reaches 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 support | The GIF side decodes in every browser ever shipped, while writing the BMP needs nothing from the browser, the bytes being assembled in the page. |
| Controls for this pair | No 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 GIF. |
| Batch, caps and naming | Twenty GIF 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 ceiling | The canvas caps it: past roughly 16,384 px a side Chromium refuses the bitmap and iPhone Safari gives up sooner, so an oversized GIF fails before any BMP bytes exist. |
- Zip the bitmaps before sending them; uncompressed pixel data usually shrinks by eighty percent or more in an archive.
- If the target program accepts PNG, use that instead: lossless too, transparency kept, a fraction of the size.
- To avoid black fringes, composite the GIF over the background colour you want before converting.
- A 24-bit bitmap cannot store alpha at all, so no setting here will give you a transparent .bmp.
- Uncompressed 24-bit BGR bitmap output
- Bottom-up rows with four-byte padding
- Header written with DataView in the page
- Twenty GIFs per run with a local ZIP
- Supplying artwork to a legacy Windows application or installer that only loads .bmp resources.
- Feeding an embedded or microcontroller toolchain whose importer expects raw bitmap data.
- Preparing an image for an old Visual Basic or Delphi form that reads bitmaps only.
Related tools
View allNeed the opposite? Try BMP to GIF
Works well with this4
Other BMP tools12
Updated