Rotate JPEG images online for free. Fix sideways phone photos and scanned documents in 90° turns or by a fine angle.
JPEG is the dominant photo format on the web and on every consumer camera and smartphone, defined by ITU-T Recommendation T.81 (1992) and adopted as ISO/IEC 10918-1 in 1994. Rotation is one of the most common edits because the format itself does not store pixel orientation directly — instead, an optional EXIF "Orientation" tag (added by the metadata extension) tells viewers how to display the image. Different software honors that tag inconsistently, which is why a photo can look right on your phone and sideways in a browser, slide deck, or document.
Common reasons to rewrite the actual pixel orientation rather than rely on EXIF metadata:
The Exif "Orientation" tag (TIFF tag 0x0112) holds one of eight values that describe how the stored pixels relate to the intended display:
| Tag value | Operation a viewer must apply |
|---|---|
| 1 | None — display as stored |
| 2 | Mirror horizontal |
| 3 | Rotate 180° |
| 4 | Mirror vertical |
| 5 | Mirror horizontal, then rotate 270° CW |
| 6 | Rotate 90° CW |
| 7 | Mirror horizontal, then rotate 90° CW |
| 8 | Rotate 270° CW (i.e., 90° CCW) |
When you "rotate" a JPEG in this tool, the pixel grid itself is rewritten and the orientation tag is reset to 1, so every viewer — EXIF-aware or not — shows the image right-side-up.
Because JPEG encodes data in 8×8 DCT blocks (16×16 with chroma subsampling), a 90°, 180°, or 270° rotation can in principle be done losslessly: tools like jpegtran simply reorder the existing coefficient blocks without ever decoding to raw pixels. The catch is that lossless rotation only works "perfectly" when the image's width and height are exact multiples of the iMCU size. When they are not, a strip of edge pixels falls outside a complete block, and the rotation either trims that strip or recompresses it. Custom angles always require a full decode, resample, and re-encode, so a small amount of generation loss is unavoidable. This editor does not use the block-reorder method: every rotation, including 90°, 180° and 270°, decodes the JPEG and saves a new one at the "Quality" you set.
| Rotation type | Quality impact here | Notes |
|---|---|---|
| 90° / 180° / 270° | Tiny re-encode loss | No interpolation; saved as a new JPEG at the chosen "Quality" |
| Custom angle (e.g., 5°) | Mild softening | Bilinear resample, then re-encode at chosen quality |
| Mirror flip (horizontal / vertical) | Tiny re-encode loss | Same as a 180° turn: pixels move, then the JPEG is re-encoded |
| Any rotation saved as PNG | None for the rotated pixels | PNG is lossless, but the file is much larger |
A "Quality" of 92-95 keeps the post-rotation file visually indistinguishable from the source for almost all photographic content. Going below 75 will start to show ringing around hard edges.
Yes. All three are the same baseline JPEG bitstream; only the file extension and (in JFIF's case) a small header marker differ. The tool decodes any of them and saves a standard JPEG that keeps your file's own extension (.jpg, .jpeg or .jfif).
Your phone is reading the EXIF Orientation tag and rotating the display; your computer's viewer is showing the raw pixels. Until you rewrite the pixel grid, every viewer that ignores or strips the tag will show the image rotated. Running it through this rotator bakes the orientation in and resets the tag to 1, which is the universal "no rotation needed" value.
Slightly. Every rotation here, including 90°, 180° and 270°, decodes the JPEG and saves a new one, which introduces a single generation of compression artifacts; custom angles also resample the pixels. Save as PNG for a lossless copy of the rotated pixels, or use a command-line tool such as jpegtran for a strictly lossless 90° / 180° / 270° JPEG turn. A "Quality" of 92 or higher keeps that loss imperceptible for almost all photos.
Use "Fine angle" in Rotate: drag it anywhere from −45° to 45° (0.1° steps), nudge it with the "−0.5°" / "+0.5°" buttons or type the angle — for example −2 to level a horizon that slopes up to the right. Combine it with "90° left" or "90° right" for larger turns. "Background for exposed corners" decides what fills the new corners: "Auto-crop corners" trims them away, or pick "White", "Black" or "Transparent" (transparent needs a format with alpha, such as PNG or WebP). JPEG has no transparency, so for a see-through background save as PNG with "Save as".
Most images are processed right in your browser, so the practical limit is how much memory your browser tab can hold; a file too large for the browser may instead be processed on our servers, which removes that limit, and deleted automatically afterward. A 50-megapixel DSLR file (typically 15-30 MB on disk) rotates without trouble. The saved image can be at most 16,384 px per side and 120 megapixels, so a larger scan is brought down to fit.
Yes. The Flip tab in the same editor mirrors along a vertical or horizontal axis ("Horizontal" / "Vertical") and stacks with the rotation; Flip JPEG opens the editor on that tab. Flipping is a separate operation from rotation.
.jpeg instead of .jpg?Because your file was a .jpeg: the editor keeps the source's own extension spelling, so a .jpg comes back as .jpg and a .jpeg as .jpeg (with the new pixel size added to the name). .jpeg and .jpg are interchangeable extensions for the same format; the three-letter .jpg exists only because of the old MS-DOS 8.3 filename limit. If your destination workflow requires .jpg, simply rename the file — no re-encoding is needed. If you also need a smaller file, see Compress JPEG.
Yes — drop it in here or use Rotate HEIC: the editor opens HEIC files directly. A browser cannot write HEIC, so the rotated photo is saved as JPG, with its EXIF kept and the Orientation tag reset to 1 because the pixels are upright. HEIC to JPG is the route if you only need a conversion.
Custom-angle rotations create blank corners that JPEG fills with solid white (or black, if you pick "Black"). If you want a clean rectangular result without those wedges, pick "Auto-crop corners" under "Background for exposed corners", or run the file through Crop JPG afterward and trim to the largest centered rectangle that excludes the borders. For 90/180/270° rotations there is no such issue — the output is a clean rectangle.