Staaarter

GIF Flipper

Decodes an animated GIF's frames and mirrors every one of them horizontally and/or vertically, then re-encodes a new animated GIF from the flipped frames. A free online tool from Staaarter, right in your browser.

Runs locallyUpdated 2026-07-29
By Staaarter Team
editortransformanimationgif

Overview

Introduction

Flipping (mirroring) an animated GIF horizontally or vertically is a common quick fix, whether to correct an inverted capture or to create a mirrored variant of an existing animation.

This tool decodes every frame, mirrors it along the chosen axis or axes, and re-encodes a new animated GIF, entirely client-side.

What Is GIF Flipper?

A client-side tool that mirrors every frame of an animated GIF horizontally (left-right), vertically (top-bottom), or both at once, based on two independent toggles.

Flipping both axes together produces the same visual result as a 180-degree rotation, since mirroring on both axes is mathematically equivalent to a half-turn.

How GIF Flipper Works

For each frame, the tool copies every source pixel to its mirrored position: a horizontal flip maps column x to column (width - 1 - x); a vertical flip maps row y to row (height - 1 - y); both flips combine both remappings.

This runs identically on every decoded frame, and the flipped frames are re-encoded into a new GIF with unchanged per-frame delays and loop count.

When To Use GIF Flipper

Use it to correct a GIF that was captured mirrored (a common artifact from some webcam or screen-recording setups) or to create a mirrored variant for a symmetric design.

It's also a quick way to reverse a left-to-right animated motion into a right-to-left one, purely visually (see gif-reverser if you instead want the animation's frame order reversed).

Often used alongside GIF Rotator, GIF Reverser and GIF Shifter.

Features

Advantages

  • Handles both flip axes in one tool, toggled independently.
  • Applies the same mirror consistently to every frame, keeping the whole animation coherent.
  • Runs entirely client-side; nothing you upload leaves your browser.

Limitations

  • Mirrors any text or asymmetric detail in the frame, which will read backward after a horizontal flip.
  • Doesn't change frame order or timing; for a backward-playing animation, use gif-reverser instead.

Examples

Mirroring a left-facing character to face right

Input

An 80x80 animated GIF of a character facing left, flip horizontal = on, flip vertical = off

Output

The same animation with the character facing right in every frame

Every frame is mirrored left-right, flipping the character's facing direction consistently throughout the animation.

Best Practices & Notes

Best Practices

  • Check whether any text or logo appears in the frame before flipping; mirrored text usually looks wrong and needs a different fix.
  • Use both flips together only when you specifically want the 180-degree-rotation-equivalent look; otherwise pick just one axis.
  • Pair with gif-reverser if you want both a mirrored appearance and a reversed playback order.

Developer Notes

flipGif in gif-flipper.ts combines what the PNG category splits into two separate tools (png-horizontally-flipper.ts and png-vertically-flipper.ts) into one function with two boolean flags, since this batch's spec calls for a single bespoke UI covering both axes. The per-pixel remapping math is identical to those two PNG tools' logic, run per decoded GIF frame via transformGifFrames.

GIF Flipper Use Cases

  • Correcting a mirrored webcam or screen-recording capture
  • Creating a mirrored variant of a symmetric animated logo or icon
  • Producing a 180-degree-rotated look by flipping both axes at once

Common Mistakes

  • Flipping a frame that contains readable text, which becomes backward and unreadable after a horizontal mirror.
  • Confusing this tool (which mirrors pixel content) with gif-reverser (which reverses playback order); they solve different problems.

Tips

  • If nothing looks different after flipping, double check that at least one of the horizontal/vertical toggles is actually enabled.
  • For text-heavy GIFs, consider whether the source needs to be re-exported rather than fixed after the fact with a flip.

References

Frequently Asked Questions