Image Rotate & Flip
Rotate a photo by 90°, 180°, 270° or any angle and flip it horizontally or vertically in your browser — no upload — as PNG, JPEG or WebP.
The rotated / flipped image to download, its new pixel size, the equivalent EXIF orientation for right angles, and what happens at the corners for other angles.
Example: A 640 × 360 JPEG rotated 90° becomes 360 × 640 (EXIF orientation 6); a 45° rotation of a square grows it to 141 %; keeping the frame crops the corners; a mirror flip is orientation 2.
Canvas transforms,
pixels re-encoded by the browser.
How the rotation is drawn, what changes at other angles, and what the EXIF value means.
Right angles
For 90°, 180° and 270° the canvas takes the swapped or same size, the origin moves to the centre, the context is rotated and mirrored (scale −1 for flips) and the picture is drawn once — every pixel moves to a new place and none is resampled. The browser then encodes PNG, JPEG or WebP; a JPEG is still re-encoded at the quality you set, so it is not bit-identical.
Other angles
A rotation by any other angle needs a canvas of w·|cos θ| + h·|sin θ| by w·|sin θ| + h·|cos θ| to hold the whole picture (grow), or keeps the original frame and cuts off the corners (keep). The exposed corners are transparent in PNG / WebP or filled with the colour you set — JPEG has no transparency and gets white unless you choose otherwise. Pixels are resampled with bilinear smoothing.
EXIF orientation
Cameras often store the pixels unrotated and an orientation tag (1–8) telling viewers how to turn them; browsers apply that tag when decoding, so what you see here is already upright. The value shown is the tag that would express your rotation and flip; the output file carries no tag and no other metadata. Nothing leaves the browser; the same four anonymous usage counts as the rest of the site apply.
SOURCES
- Canvas 2D rotate() / scale(−1, 1) transforms drawn by the browser; bounding box w·|cos θ| + h·|sin θ|; EXIF orientation values 1–8 per Exif 2.32 Table 6
Last reviewed 22 September 2026. How results are checked: How we verify.