How to Mirror an Image: 9 Methods for Any Platform
Mirroring an image flips it along an axis so the result looks like a reflection. Text reads backwards, left becomes right, and your subject faces the opposite direction. It takes two seconds once you know where to click — the hard part is picking the right tool for the job.
Here are nine ways to mirror an image, from the fastest browser-based option to scriptable CLI commands for batch processing.
Mirror vs Flip: Are They the Same Thing?
Mostly yes, but the terminology varies by tool. Here's how different applications label the same operation:
| Term | What It Means | Apps That Use This Label |
|---|---|---|
| Mirror Horizontal | Left-right swap (like looking in a mirror) | Pixotter, GIMP, Paint.NET |
| Flip Horizontal | Same as mirror horizontal | Photoshop, Preview, CSS |
| Flip Vertical | Top-bottom swap (upside-down reflection) | Most editors |
| Mirror Vertical | Same as flip vertical | GIMP, some online tools |
| Reverse | Usually means horizontal mirror | Mobile photo apps |
The confusion is understandable — "flip" and "mirror" describe the same geometric transformation. A horizontal mirror swaps left and right. A vertical mirror swaps top and bottom. If your text reads backwards after the operation, you did a horizontal mirror. For a deeper breakdown of flipping terminology, see How to Flip an Image.
Mirroring is not rotation. Rotating 180 degrees turns the image upside-down, but text still reads left-to-right. Mirroring reverses that text. Need rotation instead? See How to Rotate an Image.
Try it yourself
Rotate or flip images with one click — free, instant, no signup. Your images never leave your browser.
Method 1: Mirror an Image in Your Browser with Pixotter
The fastest path. Pixotter's Rotate tool handles mirroring and rotation in a single interface, and everything processes locally in your browser via WebAssembly — no files uploaded anywhere.
- Open pixotter.com/rotate.
- Drop your image (or click to browse).
- Click Flip Horizontal to mirror left-right, or Flip Vertical to mirror top-bottom.
- Download the result.
Batch processing works too — drop 50 images and mirror them all at once. The tool preserves your original format and quality. Need to compress the output or convert to a different format afterward? Do it in the same session without re-uploading.
Why this is the recommended option: No account required, no software install, no file size limits worth worrying about, and your images never leave your machine. Processing is near-instant even for 20+ megapixel photos.
Method 2: Mirror an Image in Photoshop
Photoshop (version 25.x / 2024+) calls this operation "Flip Canvas" or "Flip" on individual layers.
Mirror the entire canvas:
- Open the image.
- Go to Image > Image Rotation > Flip Canvas Horizontal (or Vertical).
- File > Export > Export As.
Mirror a single layer:
- Select the layer in the Layers panel.
- Go to Edit > Transform > Flip Horizontal (or Vertical).
- Commit the transform.
Photoshop is overkill for a simple mirror operation, but if the image is already open in your workflow, it's convenient. Watch for one gotcha: Flip Canvas Horizontal flips everything including text layers and smart objects. If you only want to mirror the photo layer, use the layer-specific transform.
Method 3: Mirror an Image in GIMP
GIMP 2.10.36 uses explicit "Mirror" language, which is refreshing.
- Open the image.
- Go to Image > Transform > Flip Horizontally (or Flip Vertically).
- File > Export As.
For a single layer: Layer > Transform > Flip Horizontally.
GIMP also has a Mirror tool (Shift+F) in the toolbox — click the image to mirror it on the active axis. Toggle between horizontal and vertical in the Tool Options panel.
Method 4: Mirror an Image on Mac with Preview
Preview handles basic mirroring without installing anything.
- Open the image in Preview.
- Go to Tools > Flip Horizontal (or Flip Vertical).
- File > Save (
Cmd+S).
That's it. Preview applies the transformation destructively — it saves over the original. If you want to keep the original, duplicate the file first (Cmd+D in Finder) or use File > Export. For more image edits on macOS and iOS, check out How to Crop a Photo on iPhone.
Method 5: Mirror an Image on Windows
Photos App
- Open the image in Photos.
- Click Edit image (
Ctrl+E). - Click Crop & rotate.
- Click the Flip icon.
- Save.
Windows Photos only offers horizontal flip. For a vertical mirror, rotate 180 degrees first, then flip horizontally — the result is mathematically equivalent to a vertical mirror.
Paint
- Open in Paint.
- Click Rotate in the Image section of the toolbar.
- Select Flip horizontal or Flip vertical.
- File > Save.
Paint handles both directions. It's already installed on every Windows machine, making it the path of least resistance for one-off mirrors.
Method 6: Mirror an Image with CSS
When you need a mirrored display without creating a new image file, CSS transforms do the job in one line:
/* Mirror horizontally */
.mirror-h {
transform: scaleX(-1);
}
/* Mirror vertically */
.mirror-v {
transform: scaleY(-1);
}
/* Mirror both axes (equivalent to 180° rotation) */
.mirror-both {
transform: scale(-1, -1);
}
This approach is purely visual — the original image file stays unchanged, and the browser renders the mirrored version. It's useful for hover effects, design symmetry, and directional icons. Browser support for transform: scale() is universal (all browsers since 2012).
Performance note: CSS transforms are GPU-accelerated and add zero load time. They're the right choice when you want a mirrored display but don't need a mirrored file.
Method 7: Mirror an Image with Python (Pillow)
For scripting and batch automation, Pillow is the standard:
# pip install Pillow==10.4.0
from PIL import Image, ImageOps
img = Image.open("input.jpg")
# Mirror horizontally (left-right)
mirrored = ImageOps.mirror(img)
mirrored.save("mirrored-horizontal.jpg")
# Mirror vertically (top-bottom)
flipped = ImageOps.flip(img)
flipped.save("mirrored-vertical.jpg")
Pillow distinguishes between ImageOps.mirror() (horizontal) and ImageOps.flip() (vertical). The naming is slightly inconsistent, but the operations are clear once you know.
Batch mirror every image in a folder:
# pip install Pillow==10.4.0
from pathlib import Path
from PIL import Image, ImageOps
input_dir = Path("./originals")
output_dir = Path("./mirrored")
output_dir.mkdir(exist_ok=True)
for img_path in input_dir.glob("*.jpg"):
img = Image.open(img_path)
mirrored = ImageOps.mirror(img)
mirrored.save(output_dir / img_path.name)
print(f"Mirrored: {img_path.name}")
Method 8: Mirror an Image with ImageMagick
ImageMagick 7.1.1+ uses -flop for horizontal mirror and -flip for vertical:
# Horizontal mirror
magick input.jpg -flop mirrored-horizontal.jpg
# Vertical mirror
magick input.jpg -flip mirrored-vertical.jpg
# Batch: mirror all PNGs in a directory
for f in *.png; do magick "$f" -flop "mirrored-$f"; done
The -flop / -flip naming is admittedly confusing. Think of it this way: flop = horizontal (the image "flops" sideways), flip = vertical (the image "flips" upside-down). Or just run a test on one image and check.
Note: ImageMagick 6.x uses convert instead of magick. If you run magick and get "command not found," try convert input.jpg -flop output.jpg or upgrade to v7.
Method 9: Mirror an Image on Mobile
iPhone / iPad
- Open the photo in the Photos app.
- Tap Edit > Crop (the crop/rotate icon).
- Tap the Flip icon (top left — two opposing triangles).
- Tap Done.
Android (Google Photos)
- Open the photo in Google Photos.
- Tap Edit > Crop.
- Tap the Flip icon (horizontal mirror symbol).
- Tap Save copy.
Both mobile apps only offer horizontal mirror. For vertical, use Pixotter in your mobile browser — it works on phones and tablets with the same drag-and-drop interface.
When to Mirror an Image
Mirroring is simple, but the use cases are surprisingly varied:
| Use Case | Direction | Why |
|---|---|---|
| Fix mirrored selfies | Horizontal | Front cameras show a mirror preview — the saved photo may look "wrong" compared to what you saw on screen |
| Design composition | Horizontal | Make a subject face into the layout rather than away from it |
| Water reflection effects | Vertical | Duplicate + vertical mirror below the original creates a lake reflection |
| Print transfers | Horizontal | Iron-on, screen printing, and engraving require a mirrored source so the final product reads correctly |
| Symmetrical designs | Both | Mirror half a design to create perfect symmetry for logos, patterns, and textures |
| Social media thumbnails | Horizontal | Adjust subject eye-line to follow reading direction (left-to-right in Western layouts) |
| Correct scanned documents | Vertical | Fix inverted scans from flatbed scanners placed incorrectly |
Selfie Mirroring Explained
Phone cameras are the biggest source of mirror confusion. Here's what happens: your front-facing camera shows a mirrored preview (because that's what you expect from a mirror). But when you tap the shutter, many phones save the un-mirrored version — the way other people actually see you. The result looks subtly wrong because you're used to your mirror image.
If your selfie doesn't look right, a horizontal mirror gets you back to the "mirror view." Some phones (iPhone 13+, Pixel 6+) have a "Mirror Front Camera" setting that saves the mirrored version automatically. Check Settings > Camera before reaching for an editor.
EXIF Orientation and Mirroring
Image files can contain EXIF metadata with an orientation tag that tells viewers how to display the image — including mirrored states. EXIF defines eight orientations, four of which involve mirroring:
| EXIF Value | Transformation |
|---|---|
| 1 | Normal (no transformation) |
| 2 | Mirror horizontal |
| 3 | Rotate 180 degrees |
| 4 | Mirror vertical |
| 5 | Mirror horizontal + rotate 270 CW |
| 6 | Rotate 90 CW |
| 7 | Mirror horizontal + rotate 90 CW |
| 8 | Rotate 270 CW |
If your image appears mirrored in some apps but not others, the EXIF orientation tag is likely the culprit. Some viewers respect it, some ignore it. The fix: apply the mirror transformation to the actual pixel data and strip the EXIF orientation tag so every viewer renders it consistently.
Mirroring for Web Performance
If you're mirroring images for a website, consider whether you actually need a mirrored file or just a mirrored display. CSS transform: scaleX(-1) mirrors the visual output without creating a second image file — which means one fewer HTTP request and less bandwidth.
For static assets that need to be mirrored permanently (print-ready files, social media uploads, downloadable resources), create the mirrored file. For decorative or layout-driven mirroring on a webpage, CSS is the better choice.
After mirroring, you may want to resize the image for your target dimensions or compress it to reduce file size before publishing.
Mirror Image Method Comparison
| Method | Platform | Batch Support | Automation | Cost |
|---|---|---|---|---|
| Pixotter | Any browser | Yes | No | Free |
| Photoshop | Win / Mac | Via Actions | Yes | $22.99/mo |
| GIMP | Win / Mac / Linux | Via Script-Fu | Yes | Free |
| Preview | Mac only | No | No | Free (built-in) |
| Photos | Win / Mac / iOS | No | No | Free (built-in) |
| Paint | Windows only | No | No | Free (built-in) |
| CSS | Web display only | N/A | N/A | Free |
| Python Pillow | Any OS | Yes | Yes | Free |
| ImageMagick | Any OS | Yes | Yes | Free |
Recommendation: For one image, use Pixotter — it's the fastest path with zero setup. For batch processing in a development workflow, Python Pillow or ImageMagick. For web display, CSS transforms. Photoshop only if the image is already open in your editing workflow.
FAQ
Does mirroring reduce image quality?
No. Mirroring is a lossless geometric transformation — it rearranges pixels without recompressing them. If you save the result as JPEG, the re-encoding step introduces minimal compression artifacts, but the mirror operation itself loses nothing. Save as PNG to avoid any quality loss.
How do I mirror just part of an image?
Select the area first, then apply the mirror. In Photoshop: make a selection with the Marquee tool, copy to a new layer (Ctrl+J), then Edit > Transform > Flip Horizontal. In GIMP: select with the Rectangle tool, then use the Mirror tool (Shift+F) on the selection. Crop the area first if you need a quick isolated mirror.
Can I undo a mirror operation?
Mirroring is its own inverse — mirror the image again and you get the original back. This makes it risk-free: if you don't like the result, just mirror it once more.
Why does my mirrored image look different in different apps?
The image file may contain an EXIF orientation tag that some apps respect and others ignore. Strip the EXIF data to make the mirror visible everywhere, or remove the EXIF metadata entirely.
Is "mirror" the same as "flip"?
Functionally, yes. Different apps use different labels — Photoshop says "flip," GIMP says both, Preview says "flip," and mobile apps vary. The underlying operation is identical: reversing pixel order along one axis.
How do I create a mirror reflection effect?
Duplicate your image, mirror the copy vertically, and place it below the original. Add a gradient fade to the mirrored copy for realism. This works well for product photography and hero sections. Photoshop and GIMP handle the compositing; for the mirror step alone, any tool in this guide works.
What image formats support mirroring?
All of them. JPEG, PNG, WebP, AVIF, GIF, TIFF, BMP — mirroring works on any raster image format. Vector formats (SVG) can be mirrored with a CSS or attribute transform. If you need to convert between formats after mirroring, Pixotter handles that too.
Does mirroring affect image file size?
Negligibly. The pixel count and dimensions stay the same, so the file size is nearly identical. Any tiny variation comes from the compression algorithm finding slightly different patterns in the rearranged pixel data — typically less than 1% difference.
Try it yourself
Ready to rotate? Drop your image and get results in seconds — free, instant, no signup. Your images never leave your browser.