Initializing... drag & drop files here
Supports: BMP
A .bmp is a Windows device-independent bitmap — the pixel grid written out more or less literally, with a small header in front of it. A .jfif is a JPEG. Not "like a JPEG", not "a JPEG variant": the same JPEG File Interchange Format that ITU-T Recommendation T.871 (2011) and ISO/IEC 10918-5 (2013) define, carrying the same DCT-compressed bitstream and the same image/jpeg MIME type as a .jpg. The extension exists because of a Windows registry entry, not because of anything in the file.
So this conversion does exactly one interesting thing: it throws away the bitmap's literal storage and replaces it with a perceptual encode, then names the result with the extension a lot of Windows tooling expects to see. The sections below are about the part you can control — how hard that encode compresses, and the one point on the scale where it changes behaviour more than the numbers suggest.
.bmp onto the page or click "+ Add Files" to browse. Batch upload works, and every bitmap in the queue is converted with the same settings..jfif. Files upload over an encrypted connection, are processed on our servers, and are deleted automatically after a few hours. No sign-up, no watermark.The presets are not vague labels. Each one selects a fixed JPEG quality value, and there is a threshold at 90 that matters more than the number implies: at 90 and above the encoder keeps colour at full resolution, and below 90 it halves colour resolution in both directions. Measured on a 1920x1080 test bitmap of 6.22 MB:
| Preset | Encoder quality | Chroma | Output size | Compared to the BMP |
|---|---|---|---|---|
| Highest | 100 | 4:4:4, full colour resolution | 2.63 MB | 2.4x smaller |
| Very High (Recommended) | 95 | 4:4:4 | 0.83 MB | 7.5x smaller |
| High | 90 | 4:4:4 | 0.54 MB | 11x smaller |
| Medium | 80 | 4:2:0, colour halved | 0.21 MB | 29x smaller |
| Low | 70 | 4:2:0 | 0.15 MB | 41x smaller |
| Very Low | 60 | 4:2:0 | 0.11 MB | 54x smaller |
| Lowest | 50 | 4:2:0 | 0.09 MB | 68x smaller |
Your own numbers will differ — smooth artwork compresses far better than detailed photography — but the shape holds, and so does the chroma threshold. That threshold is the practical reason to stop at High rather than dropping to Medium on anything with saturated colour, hard-edged graphics, coloured text or UI screenshots, which is a lot of what ends up in a BMP. Halved colour resolution is what makes red text on white look fringed and smeared. On a photograph you will not see it.
| Property | BMP | JFIF |
|---|---|---|
| Defined by | Microsoft; a file header plus one of the BITMAPINFOHEADER / V4 / V5 forms | ITU-T T.871 (2011), ISO/IEC 10918-5 (2013) |
| First shipped | Windows 2.0, 1987 | JFIF 1.02, 1992 |
| Compression | None in the common 24- and 32-bit forms; RLE only for palette images | Lossy block-transform coding |
| Size, 1920x1080 24-bit | 6.22 MB, fixed regardless of content | Typically 0.1-1 MB, depending on content and preset |
| Bit depths | 1, 2, 4, 8, 16, 24, 32 bits per pixel | 8 bits per channel |
| Alpha channel | Defined in the V4 and V5 headers, inconsistently supported | None |
| Metadata | Little beyond dimensions and print resolution | Exif, JFIF and colour-profile segments are standard |
| Row layout | Each row padded to a 4-byte boundary | No padding |
| Re-saving | Lossless every time | Each save re-encodes and loses a little more |
| MIME type | image/bmp |
image/jpeg — identical to .jpg |
| Right job for it | Handing raw pixels to another Windows tool | Delivering finished pictures to people and software |
.jfif rather than .jpg?Usually because Windows produced the name and nobody changed it. The registry key HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg maps the JPEG MIME type to an extension, and on Windows 10 and 11 that value is .jfif — so Chromium-based browsers, Teams and Outlook save right-clicked images with that name. If a workflow was built around files arriving that way, producing .jfif directly avoids a rename step. If the destination is a person rather than a script, BMP to JPG writes the identical bytes under the more familiar name.
.jfif and .jpg genuinely the same file?Yes. Both hold a JFIF-conformant JPEG bitstream and both use the image/jpeg MIME type, so any JPEG decoder reads either one and renaming between them is a no-op. The four extensions in common use — .jpg, .jpeg, .jfif and the rare .jpe — are naming conventions that different operating systems and eras settled on, not four formats. What differs here is only which one the file arrives with.
It is filled with white. JPEG has no alpha channel at all, so transparency cannot survive the conversion, and the encoder composites the image onto a solid background rather than guessing. Our pipeline pins that background to white, so a 32-bit BMP with transparent corners comes back with white corners rather than the black JPEG encoders default to. If the transparency has to survive, BMP to PNG is the right target.
No — it can only cost you. The BMP holds the pixels exactly as they were written, and JPEG compression works by discarding information the eye is least likely to miss. What you gain is size: a 1920x1080 bitmap is 6.22 MB whatever it depicts, and the same picture at the Very High preset is usually well under a megabyte. What you lose is a small amount of fidelity and the ability to re-save without compounding the loss.
High at the lowest, and Very High if size allows. Screen content is the hardest case for JPEG: hard edges, flat colour fields and small text are exactly what block-transform coding handles worst, and the drop to 4:2:0 colour below the High preset makes coloured text visibly fringed. If the screenshot has to stay crisp, a lossless format is genuinely the better answer — BMP to PNG keeps every pixel and usually beats an uncompressed BMP on size anyway.
It lets the encoder reduce the image's dimensions when quality reduction alone cannot reach your target. Ask for 100 KB from a 12-megapixel bitmap and there is no JPEG quality setting that gets there while keeping every pixel; with Auto Scale on, the picture is made smaller as well as more compressed. Leave it off when the dimensions must not change, and expect the size target to be missed rather than met in that case.
It depends far more on the content than on the bitmap's size. JPEG spends bits on detail, so a photograph or a noisy scan costs many times what a screenshot of a spreadsheet costs at the same pixel count and the same preset. The one thing you can predict is the input: an uncompressed 24-bit BMP is always three bytes per pixel plus row padding, which is 6.22 MB at 1920x1080 and 24.9 MB at 4K.
Yes. Queue as many as you like and each is converted independently into its own .jfif with the same settings — there is no per-file configuration, which is the point of batching. Where it goes wrong is mixing content types: a preset that suits photographs will visibly damage screenshots in the same batch, so split those into two runs rather than compromising on one setting.
Not reliably. BMP can carry an ICC profile in its V4 and V5 header forms, but most tools that write BMP never populate those fields, and most that read BMP ignore them. In practice the pixels are treated as sRGB on the way in and the JPEG is written as ordinary 8-bit-per-channel data. If colour management matters to your workflow, keep a master in a format that stores profiles dependably rather than routing it through BMP at all.
They travel over an encrypted connection, are converted on our servers, and both the uploads and the JFIF files produced from them are deleted automatically after a few hours. Nothing is shared or made public, no account is required, and there is no watermark. Uncompressed bitmaps are large, so on a big batch the upload takes longer than the conversion does.