Flip / Mirror Image

Flip a JPG, PNG or WebP photo horizontally (mirror) or vertically in your browser. Free, private, instant, with batch support; nothing is uploaded.

🌐 Español

Drop your files here (.jpg, .jpeg, .png, .webp)

🔒 Private by design: your files are processed locally in your browser and never uploaded to any server.

Mirroring is not rotating, and the difference shows

A horizontal mirror swaps left for right. The pixel in the first column moves to the last column, the second to the second-to-last, and so on all the way across. A rotation moves pixels around a centre point and never reverses their handedness. In the abstract that sounds like hair-splitting. In a photograph it is unmissable: turn a picture of a printed page upside down and the text is inverted but still spelled correctly, mirror the same picture and every letter is backwards.

The vertical option here is the top-to-bottom version of that same reversal, not a rotation. If you want the algebra, a vertical flip equals a 180 degree rotation followed by a horizontal mirror. That is why an image flipped vertically looks subtly wrong next to the same image simply turned upside down. Both put the sky at the bottom; they agree on nothing else. If your real problem is a phone photo that came out sideways or inverted, Rotate Image is the tool you want, and this one will only make the result stranger.

Why your front camera hands you a backwards photo

Phone front cameras deliberately show a mirrored live preview, because a preview that behaved like a real camera pointed at you would feel like fighting a reversed video call: raise your right hand and a hand on the left of the screen moves. Most camera apps un-mirror the frame before writing the file, so what lands on disk matches reality. Some do not, and some social and messaging apps save whichever version they were handed.

The tell is always an asymmetric detail rather than the face itself. A logo on a t-shirt, a book spine, a watch on the wrong wrist, a house number in the background, a parting on the wrong side of someone’s hair. A horizontal flip puts all of them back. Faces are close enough to symmetrical that most people cannot say which version is correct, which is exactly why the mistake goes unnoticed until there is text in the shot.

Mirroring is also a legitimate creative move rather than only a repair. Flipping one image of a pair makes two subjects face each other. Flipping a portrait can rebalance a composition where the subject was looking out of the frame. A vertical flip of a landscape, stacked under the original, is the crude version of a water reflection.

What the canvas keeps and what it throws away

Each file is decoded with createImageBitmap, drawn once into an OffscreenCanvas under a translate plus scale(-1, 1) transform (or scale(1, -1) for vertical), and re-encoded. Browsers without OffscreenCanvas fall back to a normal canvas element with identical output. Pixel dimensions always match the input, because a flip rearranges samples and never resamples them.

Two consequences of that pipeline deserve a warning before you overwrite an original. First, the re-encode is a real re-encode. Nothing is lost geometrically, but a JPEG coming back out of the encoder picks up one further generation of JPEG compression. PNG output is lossless, so PNG in and PNG out is equivalent pixel for pixel. WebP output uses the browser’s own default WebP encoder setting, since we pass no explicit quality value.

Second, metadata does not survive at all. A canvas holds pixels, not EXIF, so the flipped copy has no camera model, no capture date, no GPS coordinates and no orientation tag. Sometimes that is welcome, since stripping location data out of a photo before posting it is a good habit. Sometimes it is a genuine loss, if the capture date was the only record of when the shot was taken. Output format follows the extension: .jpg and .jpeg stay JPEG, .webp stays WebP, and anything else is written as PNG.

Flipping one image or forty

  1. Drop your JPG, PNG or WebP files into the box above, or click to choose them. There is no per-file or per-day cap; the ceiling is how much your browser can hold in memory.
  2. Pick a Flip direction. Horizontal mirrors left to right. Vertical turns the image top to bottom.
  3. Click the button. Files are handled one after another with a progress bar, and a long batch can be cancelled part way.
  4. Download the results. Each name gains a -mirror or -flip-v suffix, so nothing overwrites an original in your downloads folder.

The whole batch takes one direction. Two folders needing opposite flips means two passes, which is still faster than opening an editor.

When a flip will not fix it

A flip is a whole-image operation. If only part of the picture is reversed, because a sign was photographed in a mirror while the rest of the room was not, no flip can help; you need to select and transform that region in a real editor. If the image is a screenshot of an interface, mirroring makes the layout read right to left with every label backwards, so Crop Image is usually what you actually wanted.

With a scan, check whether the page went in backwards or simply upside down before choosing. Reversed letters sitting on horizontal lines want a horizontal flip. Correctly formed letters standing on their heads want a 180 degree rotation. Video needs a different path entirely, since a frame-by-frame canvas pass is not how you handle a movie file: Flip Video uses FFmpeg’s own hflip and vflip filters instead.

See it in action

Screenshot of the Flip / Mirror Image tool with sysfenix-sample.png (466 KB) loaded, Flip direction set to Horizontal (mirror left-right)
Flip / Mirror Image mid-process: sysfenix-sample.png (466 KB) loaded, Flip direction set to Horizontal (mirror left-right).
Screenshot of the Flip / Mirror Image result screen showing sysfenix-sample-mirror.png ready to download (467 KB)
The finished result: sysfenix-sample-mirror.png ready to download (467 KB). The download link is a local blob URL — the file never leaves your device.

Frequently asked questions

Does flipping an image lose quality?

Geometrically nothing is lost, since a flip only rearranges existing pixels and never resizes or resamples them. The file is re-encoded on the way out, though, so a JPEG picks up one further generation of JPEG compression. PNG output is lossless, and WebP is written with your browser's own default WebP encoder settings.

Why did the date and location disappear from my flipped photo?

The flip is done on a canvas, which holds pixels and nothing else, so EXIF metadata does not survive the round trip. The flipped copy has no camera model, capture date, GPS coordinates or orientation tag. Keep the original if that information matters, or treat it as a free way to strip location data before posting a photo.

Is a vertical flip the same as rotating the image 180 degrees?

No, and the difference is obvious with any text in the frame. A vertical flip equals a 180 degree rotation plus a horizontal mirror, so text ends up reversed as well as upside down. If you want a sideways or inverted photo turned the right way up with its text still readable, use the rotate tool instead.

Which direction fixes a backwards selfie?

Horizontal. Front cameras show a mirrored preview so the framing feels natural, and some apps save that mirrored frame instead of correcting it. Look for an asymmetric detail (a shirt logo, a book title, a watch, someone's parting) and flip horizontally until it reads the right way round.

Can I flip a folder of images in one go, and are there limits?

Yes, drop them all in and they are processed one after another with a progress bar you can cancel. Every file in a batch gets the same direction, so two opposite corrections mean two passes. There is no file count, file size or daily limit beyond the memory your browser has available.

Related tools