Skip to content

Rotate & Flip

Rotates by 90° steps or an arbitrary angle and mirrors horizontally or vertically.

A photo that came off a scanner two degrees crooked and a photo that needs turning a quarter turn are different operations with very different costs. A quarter turn moves whole pixels; two degrees interpolates every one of them. This page does both and tells you which one you are asking for.

🔒 Runs entirely in your browserrotateflipmirror
Quarter turn
Background behind the corners

A free rotation grows the frame to the rotated bounding box — a 1000×1000 image at 45° becomes 1415×1415 — and the new corners are filled with this.

Pixel-exact. Quarter turns and mirrors move whole pixels — nothing is interpolated. Saving as PNG or WebP-lossless keeps the image byte-identical to a rotation of the original; saving as JPEG re-encodes it, which is a loss the rotation itself did not cause.

Drop images to rotate

Everything happens in this tab. Nothing is uploaded.

How to use it

  1. Turn or mirror

    The quarter turns and the two mirrors are pixel permutations — every output byte is an input byte at a different address.

  2. Straighten with the angle slider

    A free rotation grows the frame to the rotated bounding box, so a square image at 45° gets noticeably larger and gains four empty corners.

  3. Pick what fills the corners

    Transparent needs a PNG or WebP output; choosing JPEG flattens it onto the same colour anyway, so pick white or the surrounding colour deliberately.

  4. Read the note under the controls

    It turns green when the operation is pixel-exact and amber when it resamples, which is the difference the page exists to make visible.

Common questions

Is a 90° rotation lossless?

The rotation is. Whether the file is depends on the encoder: save as PNG or lossless WebP and the result is byte-identical to a rotation of the original, save as JPEG and it is re-encoded.

Why is my rotated image bigger than the original?

A rotation that is not a multiple of 90° cannot fit in the original frame — the corners stick out. The frame grows to the rotated bounding box and the new area is filled with the background you chose.

My phone photo rotates itself back when I open it.

That is the EXIF orientation tag: the pixels were never rotated, the viewer was told to turn them. This tool rotates the pixels and writes no orientation tag, so what you see here is what every viewer will show.

Feed it from

Next

These accept what this tool produces, so the result can go straight in.