Why your file is called .jfif
Nothing is wrong with the image. JFIF stands for JPEG File
Interchange Format, and it is the container that ordinary JPEG
photographs have used since 1992. A .jfif file and a
.jpg file with the same picture in them are usually
byte-for-byte identical; only the name differs.
The name comes from Windows. Browsers ask the operating system what
extension belongs to the image/jpeg content type, and on
some machines the registry answers .jfif. Chrome, Edge
and Firefox all do this, which is why the problem appears for people
who have never deliberately touched an image setting. Everything that
opens a JPEG can open the file — it is just that a lot of software
decides what to do from the extension alone and refuses before it
ever looks inside.
How this converter works
Drop in one file or thirty. Each one is checked by reading its first
bytes rather than trusting the extension, so the tool knows whether
it is really holding JPEG data before it does anything. When it is —
which is almost always — the default setting copies those bytes
straight through and gives the result a .jpg name. The
output is identical to the input, and the word lossless
appears next to that file in the results.
That is worth spelling out because it is not what most converters do.
The usual approach is to decode the image and compress it again,
which produces a working .jpg but quietly costs a little
quality every time. There is no reason to pay that when the data is
already in the right format.
The second option re-encodes on purpose, with a quality slider, and exists for a different job: making the file smaller. Drop the quality to 70% and a photograph typically loses a third of its size with little visible difference. That is a trade you should make deliberately, so it is never the default.
What it accepts
JFIF and JPEG take the lossless path. PNG, WebP, GIF and BMP are accepted too and are re-encoded automatically, because those formats genuinely have to be re-compressed to become a JPEG. People often arrive here with "whatever my browser saved" rather than a known format, and refusing a PNG for having the wrong name would not help anyone.
Transparent areas in a PNG or WebP are filled with white, because JPEG has no transparency at all. Every image editor does the same thing when you save as JPEG; it is mentioned here so the result is not a surprise.
Where your files go
Nowhere. The conversion happens in your browser with the file you selected, and this page has no upload endpoint to send anything to. Load the page, disconnect from the internet, and it keeps working — which is the simplest proof that nothing is leaving your device.
One consequence worth knowing: on the lossless setting the file is not modified at all, so any EXIF metadata travels with it — camera model, timestamp, and location if the photograph has one. Re-encoding through the browser strips most of that. If you are sharing a photo and would rather the location did not go with it, the re-encode option is the safer choice.
Limits
Thirty files and 25 MB each per batch. Those are practical ceilings for work done in a browser tab rather than arbitrary ones: every file is held in memory while it is converted, and a phone will run out long before a laptop does. Very large images may take a moment on the re-encode path; the lossless path is close to instant whatever the size, because nothing is being decoded.
Animated GIFs lose their animation — a JPEG cannot hold more than one frame, so you get the first one. Progressive and standard JPEGs are both handled. Files that are not images at all are rejected when they are added, with the reason shown, rather than failing halfway through a batch.
Common mistakes
Turning on re-encoding for every file "to be safe" undoes the one advantage this tool has over a plain rename: the lossless copy path exists precisely so a JFIF or JPEG never has to be decoded and re-compressed at all. Re-encode only when you actually want a smaller file, or when a file genuinely is not JPEG data and needs the conversion to work at all — the tool already does that automatically for anything that is not JPEG, so there is rarely a reason to force it on a file that is.
The other common mix-up is bringing the wrong source format entirely. A HEIC photo from an iPhone is not JFIF and this page will reject it outright — use HEIC to JPG instead, which includes the decoder JFIF-to-JPG does not need. If the source is WebP, the lossless path does not apply at all — see WebP to JPG, which is honest that every WebP conversion re-encodes.
If you need something other than JPG
Not every job calling itself "convert my JFIF" actually wants a JPG. If the destination needs a lossless format instead — an image editor that only imports PNG, or a template expecting transparency — use JFIF to PNG. If the end goal is a document rather than an image file, put the picture straight into a PDF with JFIF to PDF, or into a Word file with Image to Word, which also has a mode that reads any text in the picture back out as editable words rather than just embedding the picture.
Stopping it happening again
If you would rather Windows stopped doing this, the setting lives in
the registry under the file-type entry for image/jpeg.
Editing the registry is not something to do casually, and it is
outside what this page can walk you through safely — but knowing that
is where the behaviour comes from at least explains why a browser
update or a new machine can make it start or stop on its own.