BMP is about as plain as image formats get. There's no place in the file for EXIF, GPS or XMP, so a photo converted to BMP loses its camera details and location. We tested that with Pillow and ImageMagick, and found the one thing that does slip through, plus why you probably don't want to share a BMP anyway.
No. BMP has no slot for EXIF, GPS, XMP or IPTC, and no general-purpose way to add one. A BMP file is a small header followed by the pixels. The header has fixed fields: size, color depth, compression, print resolution and, in newer versions, color space information. That's the whole list.
| Header field | Which BMP versions | What it can tell someone |
|---|---|---|
| Width, height, bits per pixel | Every version | Image size and color depth |
| Horizontal and vertical resolution | 40-byte header and newer | Print DPI, often 0, 72 or 96 |
| Compression type | 40-byte header and newer | Usually none; RLE for some 8-bit images |
| Color space and gamma | V4 (108-byte header) and V5 | Technical color settings |
| ICC color profile | V5 (124-byte header) only | Embedded profile, or a linked file name |
None of that says where or when a photo was taken, or what camera took it. Of all the common image formats, BMP is one of the least likely to give anything away.
In our test, yes, every time. We took a phone-style JPEG with full EXIF (camera make and model, an author name and GPS coordinates), an XMP block and a color profile. Then we converted it to BMP with Pillow and ImageMagick and read every byte of the headers with a small script.
| Route | Size | Camera EXIF | GPS | Author name | Color profile |
|---|---|---|---|---|---|
| Original JPEG | 294 KB | Yes | Yes | Yes | Yes |
| Pillow 11.3, default save | 5,760 KB | No | No | No | No |
| Pillow 11.3, EXIF and profile passed in | 5,760 KB | No | No | No | No |
| ImageMagick 6.9, plain convert | 5,761 KB | No | No | No | Yes (in the header) |
| ImageMagick 6.9, BMP3 format | 5,761 KB | No | No | No | Yes (stuck on the end) |
| ImageMagick 6.9 with -strip | 5,760 KB | No | No | No | No |
Nothing identifying survived any route. We even handed Pillow the EXIF and profile on purpose, and it ignored both and wrote the same 5,760,054 bytes. That's exactly 1600 × 1200 pixels at 3 bytes each, plus a 54-byte header. Pillow did stamp a resolution of 96 DPI, which wasn't in the original. It's harmless, but it shows the header isn't a copy of anything.
ImageMagick kept the color profile. By default it writes the newest header version (V5), which can embed one. The odd result was BMP3, the old format with no profile field. ImageMagick still wrote the 588-byte profile to the end of the file, after the pixels, where no viewer looks for it. Here the profile was a generic "sRGB built-in" with nothing personal in it. With a custom profile from a calibrated monitor or a scanner, it could name the device.
A few things worth knowing, though none of them are common:
C:\Users\yourname\... would show a user name. Normal apps rarely do this.Not personal metadata. A BMP can't pass on EXIF it doesn't have, so a JPG made from a BMP starts clean. ImageMagick did carry the color profile from its V5 BMP into the JPG, and the Pillow BMP produced a JPG with no profile at all. Neither had any EXIF.
The one thing to watch is the app doing the converting. Some photo apps and phones add their own EXIF when they save, such as the date, the software name, or even location if it's switched on. Check the result in our EXIF viewer. On both of our BMPs it correctly reported no EXIF and no GPS.
Because almost all BMPs are uncompressed. Our 294 KB JPEG became a 5.8 MB BMP, 20 times bigger, with no gain in quality, since the pixels came from the JPEG in the first place. BMP sticks around partly because older Windows software, some industrial cameras and certain embedded systems still use it.
For sharing, convert it. We ran the ImageMagick BMP through our image compressor at its default quality of 80:
| Output format | File size | Smaller by |
|---|---|---|
| WebP | 92.9 KB | 98.3% |
| JPEG | 227.5 KB | 96.0% |
| PNG | 3.3 MB | 40.0% |
None of the outputs had EXIF. The JPEG and WebP files did get a small sRGB profile, but that's one Chrome writes on every image it encodes, not anything from the original. PNG is lossless, so it's the pick for screenshots and diagrams. Use JPEG or WebP for photos.
Usually there's nothing to remove. If you want to be thorough, convert in.bmp -strip out.bmp drops the color profile, and so does saving through Pillow. If you're converting to JPEG or PNG anyway, our image metadata remover cleans those formats, which is the step that matters if a phone app has added EXIF along the way.
For other formats, see does TIFF keep metadata, where the results were very different, and do PNG files have metadata.
No. The BMP format has no field for EXIF, GPS, XMP or IPTC. Its header only holds the image size, color depth, compression, print resolution and, in the V4 and V5 versions, color space and an optional ICC color profile.
Yes, for camera details and location. In our tests Pillow 11.3 and ImageMagick 6.9 both dropped EXIF, GPS and XMP when converting to BMP. ImageMagick kept the color profile unless -strip was used.
Rarely. A V5 BMP can embed a color profile or link to one by file name, and extra bytes can be added after the pixel data. Normal apps don't put personal information there, but what's visible in the image itself can reveal a lot.
BMP is almost always uncompressed, so it stores every pixel at full size. A 1600 x 1200 photo is about 5.8 MB as a 24-bit BMP. The same image was 93 KB as WebP and 228 KB as JPEG in our test.
For metadata, yes, because it can't carry EXIF or GPS. But BMP files are huge and few sites accept them, so a JPG or PNG with the metadata stripped is usually the better choice for sharing.