How the rotation is drawn
The image is loaded into an off-screen canvas and redrawn through a transform: the origin moves to the centre of the output canvas, the picture is rotated by 0, 90, 180 or 270 degrees, then optionally mirrored in screen space, and it is painted centred on that origin. The two rotate buttons add or subtract 90 degrees and wrap at 360. For 90 and 270 degrees the output canvas swaps width and height, so a 4000 by 3000 landscape photo becomes 3000 by 4000 portrait. There are no free-angle rotations, which means no blank corners and no resampling blur at odd angles.
Worked example
You press Rotate right twice, then Flip horizontal. The tool holds deg = 180 and flipH = true. Because 180 is divisible by 180 the canvas keeps its original size. Rotating 180 degrees and mirroring left to right produces the same pixels as a plain vertical flip, so you could have pressed Flip vertical once instead.
EXIF orientation and sideways photos
Phones usually save the sensor image in one fixed direction and add an EXIF Orientation tag (values 1 to 8) that says how to turn it for display. Current versions of Chrome, Firefox and Safari apply that tag when they decode an image, and this tool loads the file through a normal browser image element, so the preview you see is already the upright version and the exported file has that orientation baked into its pixels. The export is redrawn from a canvas, so the tag itself is not carried over; the result will not be rotated a second time by viewers that read EXIF.
The practical consequence: if a photo looks upright in the preview here, it does not need rotating to fix an EXIF problem. Use the buttons only when the picture is genuinely turned in the preview, for example a scan or a screenshot with no orientation tag. Very old browsers that ignore EXIF would show the raw sensor orientation instead.
Rotation directions and flips
| Button | Effect on the stored angle |
|---|---|
| Rotate right | Adds 90 degrees clockwise |
| Rotate left | Adds 270, which is 90 counter-clockwise |
| Flip horizontal / vertical | Toggles a mirror applied after the turn, in screen space |
Things to watch
- Flips are applied after the rotation, in screen space, so Flip horizontal always mirrors left to right as you see it, whatever angle the picture has been turned to.
- Choosing JPG fills the background white first; PNG and WebP keep any transparency in the source.
- The output format starts as the type of the file you chose (JPG, WebP, otherwise PNG), and the download keeps your file name with
-rotatedadded. Animated GIFs export only their first frame. Choosing WebP in a browser without a WebP encoder gets you a PNG instead, with a note saying so. - Odd pixel dimensions can put the centre on a half pixel, so a rotated PNG occasionally has slightly softened edge rows. Even dimensions rotate cleanly.
- To mirror without turning, the dedicated flip tool is simpler. To trim after turning, use Crop Image.