Skip to main content

Free Image Rotator & Flipper

Rotate images by 90°, 180°, 270°, or any custom angle. Flip horizontally or vertically. Export to JPEG, PNG, or WebP.

Works offline once loaded

Drop a file here, or click to browse

JPG, PNG, WebP, HEIC, HEIF · processed on your device

or press Ctrl+V to paste from your clipboard

Browse files

Tip: you can paste a screenshot with Ctrl+V

Your files never leave your device. All processing happens locally in your browser.

Common uses

  • Fix Sideways Phone PhotosRotate photos that came out sideways from your phone or camera — without uploading anywhere.
  • Straighten Scanned DocumentsFix slight rotation in document scans using the fine angle slider.
  • Unmirror Mirror SelfiesFront-facing camera selfies are usually mirrored — flip horizontally to fix.
  • Rotate for Creative EffectUse arbitrary angles to tilt photos for stylistic, magazine-cover-style effects.
  • Rotate for Print LayoutAdjust orientation of images before placing them in print layouts (Word, InDesign, Canva).

How It Works

Rotation, flipping, and angle correction here run entirely inside your browser using the HTML Canvas API — no file is ever sent to a server. The tool draws your image onto an off-screen canvas at the chosen angle and scale transforms, then encodes the result to JPEG, PNG, or WebP using the browser's own codec.

  1. 1
    Image decoded locally
    Your JPEG, PNG, or WebP file is loaded into an HTMLImageElement via a local object URL — a browser memory reference that never leaves your device. The natural pixel dimensions are read directly from the decoded bitmap.
  2. 2
    Canvas transform applied
    An off-screen canvas is sized to fit the rotated bounding box (width·cos + height·sin for each axis). The Canvas 2D context is then translated to the center, rotated by the chosen angle in radians, and scaled by -1 on the horizontal or vertical axis for flips — all standard ctx.rotate / ctx.scale operations with no external library.
  3. 3
    Auto-crop trims corners (optional)
    For non-right-angle rotations, a hand-written geometry function — largestInnerRect — calculates the largest axis-aligned rectangle of the original aspect ratio that fits inside the rotated bounding box, so the triangular blank corners are removed without distorting the image.
  4. 4
    Browser codec encodes the result
    canvas.toBlob() hands the pixel data to the browser's built-in image encoder, producing a JPEG (with selectable quality and background fill color for transparent corners), PNG, or WebP Blob that you download directly.

Your image is processed entirely within your browser tab — it is never uploaded to any server.

Related Tools

Frequently Asked Questions