Tools: Need to Mirror an Image? Here's the Fastest Free Way - 2025 Update

Tools: Need to Mirror an Image? Here's the Fastest Free Way - 2025 Update

How to Flip an Image (Mirror, Horizontal & Vertical)

Flip vs Rotate: What's the Difference?

Flip an Image in Your Browser (Free, No Upload)

Common Reasons to Flip an Image

Fix Mirrored Selfies

Create Reflection Effects

Fix Design Composition

Correct Scanned Documents

Print Transfer Designs

How to Flip an Image on Windows

Method 1: Pixotter (Browser)

Method 2: Windows Photos App

Method 3: Paint

Method 4: PowerShell + ImageMagick

How to Flip an Image on Mac

Method 1: Pixotter (Browser)

Method 2: Preview

Method 3: Terminal (sips)

How to Flip an Image on Linux

Method 1: Pixotter (Browser)

Method 2: ImageMagick

Method 3: GIMP (GUI)

How to Flip an Image on Mobile

iPhone / iPad

Android

Flip vs Mirror: Are They the Same?

Flipping Images in Code

CSS (Display Only, No File Modification)

Python (Pillow)

HTML Canvas (JavaScript)

Frequently Asked Questions

Does flipping an image reduce quality?

How do I flip just part of an image?

Can I flip a video the same way?

Why do selfies look weird when flipped?

How do I flip an image for iron-on transfer?

Does flipping change the EXIF orientation tag? Flipping an image creates a mirror reflection — horizontally (left-right) or vertically (top-bottom). It's one of the simplest image operations, but the terminology trips people up. Here's how to flip images on any platform, plus when and why you'd want to. These terms get confused constantly, so let's clear it up: Key distinction: Flipping creates a mirror image. Rotating spins the image. A horizontally flipped photo has text reading backwards. A rotated photo has text still reading forwards (just at an angle). If you need rotation instead, see How to Rotate an Image. Pixotter's Rotate tool handles flipping and rotation in one interface. Everything processes in your browser — no files are uploaded to any server. Batch processing is supported — drop multiple images and flip them all at once. The tool preserves your original image format and quality. Need to compress the result afterward? Do it in the same session — no re-upload needed. Front-facing phone cameras show a mirrored preview (so it feels like looking in a mirror), but many phones save the photo un-mirrored. This creates confusion: text on your shirt reads correctly in the preview but appears normal in the saved photo — or vice versa. If your selfie looks "wrong" compared to what you saw on screen, flip it horizontally to match the mirror view. Flipping a landscape photo vertically and placing the flipped copy below the original creates a water reflection effect. This is a common design technique for hero images, product photography, and social media graphics. Sometimes a photo would work better if the subject faced the other direction — facing into the layout instead of away from it. Horizontal flip solves this instantly, as long as there's no readable text in the image (flipped text is immediately noticeable). Flatbed scanners sometimes produce vertically flipped output if the document is placed face-up instead of face-down (or the scanner driver has a bug). A vertical flip corrects the orientation. Iron-on transfers, screen printing, and some engraving workflows require a horizontally flipped image so it reads correctly when transferred to the final surface. Open pixotter.com/rotate/ in any browser. Drop the image, click flip, download. Works on Windows 10, 11, and any version with a modern browser. Windows Photos only supports horizontal flip. For vertical flip, rotate 180° then flip horizontally (equivalent result). Note: In ImageMagick, -flop is horizontal flip and -flip is vertical flip. Open pixotter.com/rotate/ in Safari, Chrome, or Firefox. Preview supports both flip directions and preserves metadata. sips is built into macOS. No installation needed. Open pixotter.com/rotate/ in Firefox or Chrome. GIMP also has a dedicated Flip tool (Shift+F) that can flip individual layers instead of the entire image — useful for compositing. iOS only offers horizontal flip. For vertical flip, rotate 180° first, then flip horizontally. Alternatively, open pixotter.com/rotate/ in your mobile browser for both horizontal and vertical flip. Yes. "Flip horizontal" and "mirror" describe the same operation — swapping left and right sides of the image. Different software uses different terminology: They all do the same thing — the naming is just inconsistent across tools. CSS transforms flip the visual rendering without modifying the image file. The original image data is unchanged — the flip happens at display time. No. Flipping rearranges pixel positions without recompressing the image data. For lossless formats (PNG, BMP, TIFF), it's a zero-quality-loss operation. For lossy formats (JPG), some tools re-encode after flipping, which introduces a tiny generation loss. Tools that support lossless JPEG transforms (like jpegtran) can flip JPGs without any re-encoding. You need a layer-based editor. In GIMP (2.10.36): select the area with the Rectangle or Free Select tool, then use the Flip tool (Shift+F) to flip only the selection. In Photoshop: select the area, copy to a new layer (Ctrl+J), then Edit → Transform → Flip. Pixotter's Rotate tool flips the entire image. Flipping video uses the same concept but different tools. FFmpeg handles it on the command line: ffmpeg -i input.mp4 -vf hflip output.mp4 (horizontal) or -vf vflip (vertical). Most video editors (DaVinci Resolve, Premiere Pro, iMovie) have flip/mirror options in their transform controls. Human faces are asymmetric. You're used to seeing your face mirrored (from mirrors and phone previews), so an un-mirrored photo looks subtly "off" to you — even though it's how everyone else sees you. Flipping the selfie to match your mirror view makes it look "right" to you but technically less accurate to others. Flip the image horizontally before printing. When you iron the transfer onto fabric, the heat transfer reverses the image again, so text and graphics end up reading correctly on the final surface. Most print dialog boxes have a "Mirror" or "Flip horizontal" checkbox specifically for this purpose. It depends on the tool. Some editors modify the actual pixel data (physical flip). Others update only the EXIF orientation flag (metadata flip). For reliable results, especially when sharing images across different viewers, use a tool that modifies the pixel data. Pixotter modifies the actual image data, ensuring the flip is visible in every viewer regardless of EXIF support. If you want to strip EXIF data entirely after flipping, see How to Remove EXIF Data. Templates let you quickly answer FAQs or store snippets for re-use. Hide child comments as well For further actions, you may consider blocking this person and/or reporting abuse

Command

Copy

# Requires ImageMagick 7.1.1-29+ # Horizontal flip (mirror) magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip all JPGs horizontally Get-ChildItem -Filter *.jpg | ForEach-Object { magick $_.FullName -flop "flipped_$($_.Name)" } # Requires ImageMagick 7.1.1-29+ # Horizontal flip (mirror) magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip all JPGs horizontally Get-ChildItem -Filter *.jpg | ForEach-Object { magick $_.FullName -flop "flipped_$($_.Name)" } # Requires ImageMagick 7.1.1-29+ # Horizontal flip (mirror) magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip all JPGs horizontally Get-ChildItem -Filter *.jpg | ForEach-Object { magick $_.FullName -flop "flipped_$($_.Name)" } # Horizontal flip sips -f horizontal input.jpg --out flipped.jpg # Vertical flip sips -f vertical input.jpg --out flipped.jpg # Batch flip all JPGs horizontally for f in *.jpg; do sips -f horizontal "$f" --out "flipped_$f" done # Horizontal flip sips -f horizontal input.jpg --out flipped.jpg # Vertical flip sips -f vertical input.jpg --out flipped.jpg # Batch flip all JPGs horizontally for f in *.jpg; do sips -f horizontal "$f" --out "flipped_$f" done # Horizontal flip sips -f horizontal input.jpg --out flipped.jpg # Vertical flip sips -f vertical input.jpg --out flipped.jpg # Batch flip all JPGs horizontally for f in *.jpg; do sips -f horizontal "$f" --out "flipped_$f" done # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install imagemagick # Horizontal flip magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip magick mogrify -flop *.jpg # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install imagemagick # Horizontal flip magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip magick mogrify -flop *.jpg # Install -weight: 600;">sudo -weight: 500;">apt -weight: 500;">install imagemagick # Horizontal flip magick input.jpg -flop output.jpg # Vertical flip magick input.jpg -flip output.jpg # Batch flip magick mogrify -flop *.jpg /* Horizontal flip */ .flipped-h { transform: scaleX(-1); } /* Vertical flip */ .flipped-v { transform: scaleY(-1); } /* Both */ .flipped-both { transform: scale(-1, -1); } /* Horizontal flip */ .flipped-h { transform: scaleX(-1); } /* Vertical flip */ .flipped-v { transform: scaleY(-1); } /* Both */ .flipped-both { transform: scale(-1, -1); } /* Horizontal flip */ .flipped-h { transform: scaleX(-1); } /* Vertical flip */ .flipped-v { transform: scaleY(-1); } /* Both */ .flipped-both { transform: scale(-1, -1); } # -weight: 500;">pip -weight: 500;">install Pillow==10.2.0 from PIL import Image img = Image.open('input.jpg') # Horizontal flip img.transpose(Image.FLIP_LEFT_RIGHT).save('flipped_h.jpg') # Vertical flip img.transpose(Image.FLIP_TOP_BOTTOM).save('flipped_v.jpg') # -weight: 500;">pip -weight: 500;">install Pillow==10.2.0 from PIL import Image img = Image.open('input.jpg') # Horizontal flip img.transpose(Image.FLIP_LEFT_RIGHT).save('flipped_h.jpg') # Vertical flip img.transpose(Image.FLIP_TOP_BOTTOM).save('flipped_v.jpg') # -weight: 500;">pip -weight: 500;">install Pillow==10.2.0 from PIL import Image img = Image.open('input.jpg') # Horizontal flip img.transpose(Image.FLIP_LEFT_RIGHT).save('flipped_h.jpg') # Vertical flip img.transpose(Image.FLIP_TOP_BOTTOM).save('flipped_v.jpg') const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); const img = new Image(); img.onload = () => { canvas.width = img.width; canvas.height = img.height; // Horizontal flip ctx.scale(-1, 1); ctx.drawImage(img, -img.width, 0); }; img.src = 'input.jpg'; const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); const img = new Image(); img.onload = () => { canvas.width = img.width; canvas.height = img.height; // Horizontal flip ctx.scale(-1, 1); ctx.drawImage(img, -img.width, 0); }; img.src = 'input.jpg'; const canvas = document.createElement('canvas'); const ctx = canvas.getContext('2d'); const img = new Image(); img.onload = () => { canvas.width = img.width; canvas.height = img.height; // Horizontal flip ctx.scale(-1, 1); ctx.drawImage(img, -img.width, 0); }; img.src = 'input.jpg'; - Open Pixotter's Rotate tool. - Drop your image onto the page (or click to browse). - Click the Flip Horizontal or Flip Vertical button. - Download the result. - Open the image in Photos. - Click Edit image (pencil icon) or press Ctrl+E. - Click Crop & rotate. - Click the Flip icon (horizontal mirror symbol). - Open the image in Paint. - Click Rotate in the toolbar. - Select Flip horizontal or Flip vertical. - File → Save. - Open the image in Preview. - Tools → Flip Horizontal or Flip Vertical. - File → Save (Cmd+S). - Open the image in GIMP (version 2.10.36, GPLv3 license). - Image → Transform → Flip Horizontally or Flip Vertically. - File → Export As to save. - Open the photo in the Photos app. - Tap Edit (top right). - Tap the Crop icon (bottom toolbar). - Tap the Flip icon (top left — two triangles with arrows). - Open the photo in Google Photos. - Tap Edit → Crop. - Tap the Flip icon (mirror symbol). - Tap Save copy.