Rotate a JPG, PNG, or WebP image by 90°, 180°, 270°, or any custom angle from 0–360°, right in your browser using the Canvas API. See a live before/after preview and download the rotated result instantly.
Drag and drop an image here, or click below to browse. JPG, PNG, and WebP supported.
Rotation spins an image around its center point by a chosen angle, repositioning every pixel along a circular path while preserving the image's overall shape, proportions, and orientation of detail — unlike flipping, nothing is mirrored, so text and asymmetric shapes keep their normal left-right and top-bottom reading direction, just turned. Rotation is one of the most fundamental image corrections: fixing a photo that was saved sideways or upside-down due to how a camera or phone recorded its orientation metadata, straightening a slightly tilted horizon, or deliberately angling a graphic element for a design layout.
This tool decodes your uploaded image and calculates the exact bounding-box dimensions a rotated version of it would need, using the standard formula for a rotated rectangle: the new width is the original width times the cosine of the angle plus the original height times the sine of the angle (with 180° and 270° angles have negative signs but absolute value handles this), and the new height follows the same pattern with sine and cosine swapped. It then creates a canvas at exactly that size, translates the drawing origin to the canvas's center, applies a rotation transform for the requested angle, and draws the original image centered at that rotated origin — a combination of standard, well-supported Canvas API operations (translate, rotate, drawImage) that together produce a rotated image with no clipped corners at any angle.
Rotating by exactly 90°, 180°, or 270° is a special case where the rotated rectangle's bounding box aligns perfectly with pixel boundaries — a 90° or 270° rotation simply swaps width and height with no extra padding needed, and a 180° rotation keeps the same dimensions entirely. This is also why these specific angles produce zero resampling: every original pixel maps to exactly one new integer pixel position with no in-between blending required, unlike any other angle, where a rotated pixel grid no longer lines up with the new canvas's grid and the browser must interpolate color values along the rotated edges. This is precisely why the three preset buttons in this tool cover 90°, 180°, and 270° specifically — they're the only rotation angles that are always lossless and never require canvas enlargement beyond a simple dimension swap.
One of the most common real-world uses for a custom rotation angle is correcting a photo where the horizon, a horizontal architectural line, or a standing subject is slightly tilted due to the camera not being perfectly level when the photo was taken. The correction angle needed is usually small — often somewhere between 1° and 10° — and getting it right typically takes a bit of trial and error: rotate by a small guessed amount, check the before/after preview against a known-horizontal or known-vertical reference line in the photo, and adjust the angle up or down until it looks level. Because this tool automatically enlarges the canvas to fit the full rotated image without clipping, you can freely experiment with the exact correction angle and always see the complete result, then crop away the resulting transparent or white corner triangles afterward with a dedicated crop tool once you've locked in the right angle.
Image Rotator handles turning an image by any angle. These related image tools cover other common transformations you'll often need alongside rotation.