Free Image Flipper
Flip and mirror your images horizontally or vertically.
Drop an image here
or click to upload (PNG, JPEG, WebP, GIF)
Original
Flipped
How to Use
- Upload an image by dragging it to the drop zone or clicking to browse.
- Click Flip Horizontally to mirror left-to-right, or Flip Vertically to flip top-to-bottom.
- Preview the original and flipped versions side-by-side.
- Click Download to save your flipped image as PNG or JPG.
Frequently Asked Questions
Can I flip both horizontally and vertically?
Yes! Click one button, then the other to apply both transformations. Each click stacks with the previous flip.
What image formats are supported?
PNG, JPEG, WebP, GIF, and most other common image formats are supported. Your browser determines compatibility.
How do I undo a flip?
Click the Reset button to return to the original image. Then re-apply flips as needed.
How the Flip Works
A flip is a pixel-perfect mirror, the image's geometry is reflected across an axis without resampling, interpolation, or loss. The browser draws the loaded image to an off-screen Canvas, applies ctx.scale(-1, 1) for horizontal flipping or ctx.scale(1, -1) for vertical, then re-draws. Because the transform only inverts the coordinate system before painting, every output pixel maps to exactly one input pixel, no quality loss in the bitmap itself.
The only place quality can be lost is in the final encoding step. PNG and WebP support lossless encoding and round-trip a flipped image with no degradation. JPEG is a lossy format; re-encoding the canvas to JPEG always introduces some quantisation noise, even at maximum quality. If you started from a JPEG and need a JPEG back, the flip plus re-compression is unavoidable. Lossless JPEG-to-JPEG transformations are possible (the jpegtran -flip horizontal command-line tool operates on the discrete cosine transform coefficients without decompressing) but no browser exposes that operation directly.
When You Need to Flip an Image
- Selfie correction. Most phones display the front-camera preview as a mirror image (so you see what you're used to from the bathroom mirror) but save the captured photo un-mirrored, meaning the photo looks "wrong" to you when you review it. iOS calls this out in Settings → Camera → Mirror Front Camera. Flipping horizontally restores the mirror version your eyes are familiar with.
- Symmetric design layouts. Building a balanced composition from a single asset, a logo with a left-pointing arrow that needs to also point right, a chair photo to mirror across a divider, an icon set you only have one direction of.
- Composition spotting in art. Painters and photographers traditionally flip their works during review because "eye fatigue" hides imbalances on familiar imagery. A horizontally-flipped version of your own photo or painting reveals composition errors in seconds, same trick used by Leonardo da Vinci, who famously wrote his notebooks in mirror script and knew the value of seeing his work fresh.
- Print preparation. Some print processes (heat-transfer paper, screen printing, T-shirt iron-ons, certain stamp engraving) require the artwork to be pre-flipped so it appears correctly after transfer. Failing to flip first produces backwards text and reversed logos.
- Reference imagery for designers. Studying how a layout reads in RTL writing direction, or how a flag design works in a mirrored placement.
- Accessibility testing for dyslexia / visual-processing tools. Some assistive technologies render mirrored versions; testing how an interface looks flipped can surface readability problems.
Why Selfies Look Strange
There's a small psychological reason worth knowing about: people prefer their mirror-image of their face to the un-mirrored version that everyone else sees. The original 1977 study (Mita, Dermer, & Knight, "Reversed facial images and the mere-exposure hypothesis") showed subjects both versions of their own portraits and found they consistently rated the mirrored version as more attractive. The simple explanation: that's the version you see every day in mirrors and shop windows; it's familiar, and familiarity (the "mere-exposure effect") drives preference.
The practical consequence: when you review a selfie that the camera saved un-mirrored, the asymmetries of your face appear "swapped" from how you usually see yourself. Flipping the photo horizontally puts you back in the version your brain recognises. Photos taken to send to other people don't need flipping, they're seeing you for the first time and have no "mirror version" to compare against.
EXIF Orientation: A Hidden Gotcha
JPEG images from cameras and phones carry an EXIF metadata tag called Orientation (values 1–8) that tells the viewer how to display the file. Some "flipped" results can be encoded as orientation-tag changes without modifying any pixels at all, which is much faster and lossless. Most online tools, including this one, handle JPEG by reading the pixels through Canvas and re-encoding, which works correctly for the visible result but discards the original EXIF orientation flag in the process.
Practical consequence: if your input JPEG had an EXIF orientation tag (e.g. portrait photo from a phone with orientation=6 meaning "rotate 90° clockwise to display"), the output JPEG will be a flat already-rotated bitmap with orientation=1. Visually identical to the input but with no EXIF orientation hint. Most software handles both cases correctly; some older photo viewers may render the input and output at different rotations.
PNG vs JPG Output: Which to Pick
- Output as PNG if the source was a PNG, screenshot, or anything with sharp edges or text. PNG is lossless, the flipped output is bitwise identical to a hand-flipped version of the source. Preserves transparency.
- Output as JPG only if the source was a JPEG photo and you want a similar file size. JPG re-encoding adds some compression artefacts even at maximum quality. JPG has no transparency support, alpha channels are flattened against a background colour (usually white).
- Output as WebP (where the tool offers it) for the best size-quality trade-off in modern web contexts. Lossless WebP is smaller than PNG; lossy WebP is smaller than JPG at equivalent visual quality.
Privacy
Photos contain a lot more than the picture: EXIF metadata can include the GPS coordinates where the shot was taken, the camera serial number, the original capture timestamp, and software fingerprints. Screenshots can contain confidential UI, draft text, internal app branding. Personal photos contain faces of people who haven't consented to being shared with a third party. Server-side flippers receive all of that. This tool runs entirely in your browser via the Canvas API, the image goes from your file system to an in-memory canvas and back to your downloads folder. Nothing is uploaded.
Common Mistakes
- Forgetting that text becomes unreadable after a horizontal flip. Logos with words, signs, captions, anything readable in the source becomes mirror-script in the output. Useful when intended; jarring when not.
- JPEG re-compression loss. Flipping a JPEG and saving as JPEG always re-encodes. For multiple sequential flips, intermediate save-as-JPEG steps compound the loss. Save as PNG between steps if you'll be flipping multiple times.
- Losing transparency by exporting as JPG. JPEG has no alpha channel. A PNG with transparent background flattens to a white (or whatever fallback) JPG background.
- Forgetting the EXIF orientation tag. If your downstream tooling depends on EXIF orientation, this round-trip discards it. The visible image is correct; the metadata is reset.
- Trying to flip an animated GIF and getting only the first frame. Most browser canvas APIs only see the first frame of an animated GIF. Multi-frame flipping requires a dedicated GIF library that decomposes and re-assembles each frame.
- Hitting Reset and losing work. Reset replaces the canvas with the original. If you stacked flips and want to undo just one, no built-in undo exists; reset and re-apply.
- Mobile Safari canvas dimension caps. iOS Safari clamps very large canvases (around 4096×4096 in practice). Very high-resolution images may be downscaled by the browser before flipping. For pixel-perfect work on huge images, do it on desktop.
More Frequently Asked Questions
Will the flipped image lose any quality?
The flip operation itself is lossless, every output pixel maps to exactly one input pixel via a coordinate inversion. Quality can only be lost in the final encoding: PNG and WebP outputs are lossless and pixel-identical to the source flip. JPG output re-encodes the bitmap and adds some quantisation noise. If you started from a JPG and don't need a smaller file, save as PNG to avoid the second compression pass.
Does this work on animated GIFs?
The browser's Canvas API typically gives you only the first frame of an animated GIF. So a flipped GIF here will be a single static image of the first frame, not an animated flip. For frame-by-frame flipping of an animated GIF, use a dedicated GIF tool that decomposes the animation, flips each frame, and re-assembles.
Why does my photo's EXIF data disappear after flipping?
Because the flip happens via Canvas, which only sees pixels, not EXIF metadata. The output image is encoded fresh, with a default EXIF orientation of 1 (no rotation needed) and without the source's GPS, camera model, or timestamp. From a privacy perspective this is usually a good thing; from an archival perspective it means your downstream tools see no EXIF.
Is anything uploaded?
No. The image is loaded into a Canvas in your browser via FileReader + Image, the flip is performed via ctx.scale + drawImage, and the download is generated locally via canvas.toBlob. No network requests carry the image bytes. This matters when the image contains EXIF GPS, faces, screenshots of confidential UIs, or anything else you'd rather not hand to a third party.
Why is the maximum image size 50 MB?
Canvas operations scale with pixel area, not file size, but very large files indirectly mean very large canvases, and browsers clamp canvas dimensions on memory-constrained devices (notably iOS Safari, which limits canvas area to roughly 4096×4096 in practice). The 50 MB cap is a safety net to prevent the tab crashing. For larger images, downscale first with the Image Resizer tool then flip.
What's the difference between flipping and rotating?
Flipping mirrors the image across an axis (left-right or top-bottom) producing a mirror image. Rotating turns the image around its centre (90°, 180°, 270°). A horizontal flip + a vertical flip is the same as a 180° rotation, but a single horizontal flip is not the same as a 90° rotation. Use a rotation tool (or this tool's vertical + horizontal combo for 180°) when you actually need to turn the image, not mirror it.