Open Tools Tools Features Blog About Contact Proof of Privacy

Converting JFIF to JPG

JFIF and JPG are the same image data under different file extensions. Why Windows produces JFIF, and why this conversion loses nothing.

HomeJFIF to JPG › Converting JFIF to JPG

Where JFIF came from, and why it is like this

This is the only conversion on this site where the honest answer is that almost nothing happens, and knowing that is worth more than the conversion.

JPEG is a compression method. It says how to turn an image into a compact stream of bits, and says nothing about how to store that stream in a file. JFIF — JPEG File Interchange Format — is the container that fills the gap: a small header specifying pixel density and aspect ratio, wrapped around the JPEG data. Essentially every file anyone calls "a JPEG" is in fact a JFIF file. The extension .jpg and the extension .jfif normally describe the same thing.

The reason people meet the name at all is a Windows quirk. Saving an image from a browser sometimes produces .jfif instead of .jpg, because of how the format's MIME type is registered in the Windows registry. The file is a perfectly ordinary JPEG that Windows has labelled unhelpfully.

Is this conversion lossy?

No. There is no re-encoding, because there is nothing to re-encode into — the compressed data is already in the format the destination wants. What changes is the name on the file and, at most, a handful of container header bytes. The pixels are bit-for-bit the ones you started with.

This is genuinely unusual. Every other image conversion on this site decodes and re-encodes and pays something for it. This one does not.

What happens to metadata, transparency and colour

EXIF is worth a moment. A strict JFIF file and an EXIF file are technically slightly different arrangements of the same JPEG data, and most files carry both blocks happily. A conversion that rewrites only the container preserves what is there; one that goes through a canvas would drop it. Since the point of this conversion is that nothing changes, the container-rewriting path is the right one and the one used here.

Everything else is unchanged. Colour profile, resolution, dimensions, quality, compression: identical, because the compressed data is identical.

Transparency and animation are not applicable — JPEG has never supported either, in any container.

Why people actually need this

Something refused the file because of its extension. That is the whole story. An upload form checks for .jpg or .jpeg and rejects .jfif; an application's open dialog does not list it; a colleague reports that they cannot open the attachment. The image is fine and the filename is the problem.

Windows users hit this far more than anyone else, because Windows is where the extension gets applied in the first place — which is why the question is usually phrased as "why did my browser save a JFIF file" rather than as a conversion request at all.

What we measured

This conversion was run end to end before this page was written. Not "should work" — run, with the output checked:

Verification runResult
Source file usedimg-jpeg-5mb.jpg (1.5 MB)
Output produced1.5 MB
Output type reported by the browserimage/jpeg
Time to produce it11 ms

And the ceilings measured for JFIF to JPG, the tool that performs it, on the hardware described on the limits page:

Not tested

This page sets no size guard of its own, so what you see below is where the browser itself stopped.

When something else is the better answer

Rename the file. Changing .jfif to .jpg on your own machine works, costs nothing, and is what this conversion is doing. Use a tool when renaming is awkward — a phone, a locked-down work machine, or a batch of files.

To stop it happening again on Windows, the registry entry for the image/jpeg MIME type can be changed to prefer .jpg. That fixes the cause rather than each file.

If you actually want a smaller file or a different format, this is not that operation — compression or conversion is, and both of them do re-encode.

Do it now: JFIF to JPG runs entirely in your browser — nothing is uploaded.

Related: Converting PNG to JPG · Converting JPG to WebP