Flip JFIF images online for free. Mirror horizontally or vertically with optional compression and resize.
image.jfif, attachments from Outlook or Teams, scanned receipts, and standard camera JPGs all work. Only the first file you pick is loaded — this editor works on one image at a time, not a batch queue..jfif by default — switch the File Extension to .jpg or .jpeg if your downstream pipeline needs that suffix.JFIF (JPEG File Interchange Format) is the same JPEG-compressed image data as .jpg and .jpeg, just wrapped under a different extension. The format is standardized as ITU-T Recommendation T.871 and ISO/IEC 10918-5 (2013), and its bytes are byte-for-byte interchangeable with .jpg once you rename the extension. Files end up as .jfif mostly because of a Windows MIME-registry quirk introduced in Windows 10 version 1909 (December 2019) that causes Microsoft Edge, Chrome, and other browsers on Windows to save downloaded JPEGs with the .jfif suffix until the user edits HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg — a fix that often reverts after the next Windows update. Flipping operates on the pixel data and is independent of which suffix the file carries.
.jfif, and a horizontal flip restores the mirrored look people expect on Instagram, TikTok, or BeReal..jfif because the OS hands them the registry-default extension. Flip the image in place without renaming or converting first..jfif and .jpg source files.| Property | .jfif | .jpg | .jpeg |
|---|---|---|---|
| Compression | JPEG (DCT, baseline / progressive) | JPEG (DCT, baseline / progressive) | JPEG (DCT, baseline / progressive) |
| MIME type | image/jpeg | image/jpeg | image/jpeg |
| Spec governing the container | JFIF (ITU-T T.871 / ISO 10918-5, 2013) | JFIF or Exif (depending on writer) | JFIF or Exif (depending on writer) |
| Typical writer | Browsers on Windows (post Win10 1909) | Cameras, phones, most editors | Older Mac / Unix tooling, web frameworks |
Renaming .jfif → .jpg |
Works — bytes unchanged | n/a | n/a |
| Color model | Y (greyscale) or YCbCr | Y or YCbCr | Y or YCbCr |
| Stores resolution / aspect ratio metadata | Yes (APP0 segment) | If JFIF or Exif present | If JFIF or Exif present |
| Stores camera EXIF (capture time, GPS) | Rare — JFIF and Exif APP segments are technically mutually incompatible per ITU-T T.871, but most modern decoders tolerate hybrid files | Yes — Exif is the dominant container for camera JPGs | Yes |
If you'd rather drop the .jfif extension entirely, use JFIF to JPG — it's a rename pass with optional re-encode. To swap to a different format, see JFIF to PNG.
| Operation | What it does | Result of doing it twice | Typical use |
|---|---|---|---|
| Horizontal flip (mirror) | Reflects across the vertical axis (left ↔ right) | Returns to original | Selfies, RTL layouts, iron-on transfers |
| Vertical flip | Reflects across the horizontal axis (top ↔ bottom) | Returns to original | Inverted scans, reflection effects |
| Rotate 90° | Quarter-turn (portrait ↔ landscape) | Image lands at 180° (still wrong) | Phone-photo orientation fix |
| Rotate 180° | Half-turn (upside down) | Returns to original | Same visual as H-flip + V-flip combined |
| Horizontal + Vertical flip | Both axes mirrored | Returns to original | Equivalent to a 180° rotation |
For 90° / 180° / 270° turns or arbitrary-angle straightening, use Rotate JPG (which also accepts .jfif). To resize without flipping, see Resize JPG. To trim the image area, see Crop JPG. For other formats: Flip JPG, Flip PNG, Flip WebP, Flip HEIC.
This is a Windows MIME-registry quirk introduced with Windows 10 version 1909 in December 2019. The image/jpeg MIME type maps to the .jfif extension in HKEY_CLASSES_ROOT\MIME\Database\Content Type\image/jpeg, so when Microsoft Edge, Chrome, Vivaldi, or Teams saves a downloaded JPEG it picks up .jfif from the registry. The image data itself is normal JPEG — you can rename the file to .jpg and it opens identically in every viewer. Editing the registry to set Extension to .jpg works as a temporary fix but Windows updates frequently reset it. Microsoft has not published an official permanent fix.
JPEG is a lossy format, so a flip technically does involve a re-encode through the JPEG encoder. At the default Very High quality preset the perceptual loss is invisible to the eye and the file size stays within a few percent of the original. If you plan to flip the same image many times in a row, convert to PNG via JFIF to PNG, do all the flips there, and convert back to JPEG at the end to avoid generation loss. Some tools advertise "lossless JPEG flip" using DCT-block manipulation — that only works when the image dimensions are multiples of 8 (or 16) pixels; this tool re-encodes for predictable behaviour across all sizes.
Usually yes — JFIF and JPG share the same image/jpeg MIME type and identical compressed bytes for browser-saved files, so a rename is enough for 99% of viewers, social uploads, and editors. Where a true conversion helps: if the JFIF was written without an Exif APP segment and your downstream tool is Exif-only (some legacy print pipelines or DSLR review software), running it through JFIF to JPG inserts a clean Exif container during the re-encode. For flipping specifically, the output extension is configurable in step 3 — leave it as .jfif, switch to .jpg, or pick .jpeg.
If the source JFIF carries Exif data — which it usually does for files originating from a camera and routed through a browser — the capture timestamp, GPS coordinates, ISO / aperture / shutter, camera make and model, and lens info are copied across unchanged. The Exif Orientation tag is reset to 1 (normal) since the pixels themselves are now in the intended layout. Strictly speaking the JFIF spec (ITU-T T.871) and Exif spec define their APP segments such that they're mutually incompatible, but every modern decoder (browsers, Photoshop, GIMP, Photos.app) tolerates files that carry both. To strip metadata for privacy, run the flipped result through Compress JPG.
iPhone and most Android phones display the front-camera preview mirrored so framing feels natural ("if I move my hand left, my reflection moves left"), but they save the photo un-mirrored — which is why text on a t-shirt reads correctly in the saved file but feels off compared to what you saw on screen. When you re-save that photo from a Windows browser it lands as .jfif. A horizontal flip recreates the mirrored preview, which is what most people actually want when posting to social media.
Not on this page — the editor loads one file at a time, whether it's .jfif, .jpg, or .jpeg. Flip it, save, then + Start New for the next file, picking the same direction each time. That covers mirroring a folder of Edge-saved selfies, reversing iron-on transfer designs ahead of a print run, or normalising a catalog of product shots so they all face the same way — one file at a time.
They're the same operation. "Mirror" usually refers to a horizontal flip (reflecting left ↔ right, like a bathroom mirror), which is also what most apps mean by "Flip Horizontal". "Flip Vertical" is the top ↔ bottom version. If a tool labels its single button "Mirror" with no axis option, it almost always means horizontal — pick Vertical Flip here for the upside-down version.
No — flipping operates on pixels, not glyphs, so any rendered text or logo inside the photo will be mirror-readable (backwards) after a horizontal flip, or upside down after a vertical flip. If you need the photo flipped while a watermark or caption stays readable, that's a manual edit in Photoshop, GIMP, or Photopea where you flip the background layer and re-render the text on top. For iron-on / silkscreen workflows, the mirror-readable text is exactly what you want — the press flips it back.
Almost identically the same size at the default Very High quality. The pixel content is the same, just rearranged, so the JPEG encoder produces a file within a few percent of the original. JPEG's compression is sensitive to local pixel patterns, so a flipped image can occasionally encode a few KB smaller or larger depending on horizontal-line redundancy. If you need the file smaller after flipping, drop the Image Quality Preset, set a Specific File Size target in KB / MB, or downscale via Resolution Percentage in step 3.