Rotate Image

Rotate a JPG, PNG or WebP photo 90, 180 or 270 degrees in your browser. Free, private, instant, with batch support; nothing is uploaded.

🌐 Español

Drop your files here (.jpg, .jpeg, .png, .webp)

🔒 Private by design: your files are processed locally in your browser and never uploaded to any server.

Why a sideways photo sometimes fixes itself

Almost every “my photo is rotated wrong” problem traces back to one design decision made by camera manufacturers. Rather than physically rewriting the pixel grid when you hold a phone sideways, the camera writes the frame exactly as the sensor read it and attaches a small EXIF orientation tag saying “display this turned 90 degrees clockwise”. The pixels are sideways; the instruction says which way to turn them.

Software that reads the tag shows the photo upright. Software that ignores it shows the photo sideways. That is why the same file can look correct in your phone’s gallery, correct in a browser, and wrong the moment you drop it into an older desktop application or a document template. Nothing is corrupt; two programs are just disagreeing about whether to follow an instruction.

This tool decodes through the browser’s own image decoder, which honours the orientation tag by default, so what it works on is the already-upright version of your photo. The rotation you pick is applied on top of that. If you have ever used a rotation tool that produced an upside-down result, it was almost certainly rotating the raw sensor pixels and then leaving the orientation tag in place, so the viewer applied the turn a second time.

One consequence worth planning for: because the output is written fresh from a canvas, the finished file has no EXIF block at all. The orientation tag is gone (it is no longer needed, since the pixels are now genuinely upright), and so is everything else that was in there, including capture date and GPS coordinates. If a photo is heading for the public web that is a bonus. If you sort an archive by capture date, keep the originals.

Picking between 90, 180 and 270

All three labels here are clockwise, which removes the usual guessing game. A quarter turn clockwise is 90. A quarter turn counter-clockwise is 270, the same destination reached the other way around. A half turn is 180.

The dimension change is the useful thing to keep in mind. Both quarter turns swap width and height, so a 4000x3000 landscape shot becomes 3000x4000 portrait. That is exactly what you want when a photo was captured with the phone held the other way and now has to fit a portrait slot in a layout. A 180 degree turn leaves the dimensions untouched and simply inverts the frame, which is the fix for a scan fed into the machine backwards or a photo taken with the camera upside down.

If you find yourself trying to mirror an image rather than turn it, that is a different operation. Rotation preserves handedness, so text stays readable; mirroring reverses it. Flip Image handles horizontal and vertical mirroring.

Pixels move, but a JPG still gets re-encoded

A quarter or half turn is one of the very few image operations that is geometrically lossless. Every source pixel lands on exactly one destination pixel, no fractional coordinates are involved, and no interpolation happens. Rotate a photo four times by 90 degrees and the pixel values come back identical.

The encoding is a separate matter and it is worth being straight about. The output format always matches the input, so a JPG stays a JPG. Producing that JPG means the browser compresses the rotated canvas again at its own default quality setting, which is one extra lossy generation. For a single rotation on a normal photograph this is invisible. If you plan to rotate, then crop, then rotate again, do the whole sequence and save once rather than saving between each step. PNG has no such concern, since PNG compression is lossless by definition, and anything with an unrecognised extension is written out as PNG for the same reason.

Because everything runs on your own device rather than through an upload queue, a rotation is near-instant on a typical photo, though a very large image on a slow phone is bound by how fast that device can decode and re-encode it. There is no per-day limit and no watermark, and the only real ceiling is your device’s memory when you throw a very large batch at it at once.

Running a folder through it

Drop in as many JPG, PNG or WebP files as you like, pick one angle, and every file in the batch gets the same turn. Four steps, start to finish:

  1. Drop your JPG, PNG or WebP files into the box above, or click Choose files.
  2. Set Rotate to 90° clockwise, 180° or 270° clockwise. The choice applies to every file you dropped in.
  3. Click Rotate Image, which is what the action button reads on this page.
  4. Wait for the batch to finish, then click the Download button that appears for each rotated file. Cancel during a run clears the whole batch and empties the box, so let it run to the end before you start saving.

The progress bar advances per completed file rather than smoothly, so on a large batch expect it to move in visible steps. Each output is named after its source with -rotate-90, -rotate-180 or -rotate-270 appended, so a batch of rotated copies can sit next to the originals without any confusion about which is which.

The angle applies to the whole batch, which means a mixed folder needs one pass per group. In practice this is rarely a problem, since the usual scenario is a stack of scans or holiday photos that all came out turned the same way for the same reason.

For very large photos it is often worth rotating first and then running the result through Compress Image or Resize Image, in that order, so the compression step sees the final dimensions. If the photo needs reframing as well as turning, Crop Image is the companion tool.

See it in action

Screenshot of the Rotate Image tool with sysfenix-sample.png (466 KB) loaded, Rotate set to 90° clockwise
Rotate Image mid-process: sysfenix-sample.png (466 KB) loaded, Rotate set to 90° clockwise.
Screenshot of the Rotate Image result screen showing sysfenix-sample-rotate-90.png ready to download (472 KB, 1% larger)
The finished result: sysfenix-sample-rotate-90.png ready to download (472 KB, 1% larger). The download link is a local blob URL — the file never leaves your device.

Frequently asked questions

Why does my photo look sideways in one app and upright in another?

Because the pixels and the display instruction disagree. Phone cameras usually save the frame in sensor orientation and add an EXIF orientation tag telling viewers to turn it. Software that reads the tag shows it upright, software that ignores it shows it sideways. This tool decodes through the browser, which applies the tag automatically, then rotates on top of the already-corrected image, so you never get a double rotation.

Does the rotated file keep its EXIF data?

No. The output is re-encoded from a canvas, and a canvas export carries no EXIF block at all, so the camera model, capture date, lens data and any GPS coordinates are dropped. That is a privacy win if you are about to publish the photo and a real loss if you rely on capture dates to sort an archive, so keep your originals if the metadata matters.

Is a 90 degree rotation lossless?

The geometry is. Turning by an exact quarter or half turn only moves whole pixels to new whole-pixel positions, with no scaling, resampling or interpolation, so no detail is invented or lost. The encoding step is a separate question. A PNG re-encodes losslessly, while a JPG or WebP is compressed again at the browser's default quality and picks up one extra lossy generation.

What is the difference between 90 and 270 degrees here?

Both labels are clockwise, so 270 degrees clockwise is the same result as a quarter turn counter-clockwise. Either one swaps width and height, turning a 4000x3000 landscape photo into a 3000x4000 portrait. 180 degrees is a half turn that keeps the original dimensions and puts the image upside down.

Can I rotate different photos by different amounts in one pass?

Not in a single run, since the angle is one setting applied to the whole batch. Sort your files into groups that need the same turn and run the tool once per group. Every output is renamed with a "-rotate-90", "-rotate-180" or "-rotate-270" suffix, so the results stay separable even if they end up in the same folder.

Can it rotate by an arbitrary angle to straighten a tilted horizon?

No, only 90, 180 and 270 are offered. An arbitrary angle would require resampling every pixel and would either leave transparent or filled triangles in the corners or crop into the frame, which is a different operation with different trade-offs. This tool covers the exact-quarter-turn case, which is what a sideways phone photo or a misfed scan actually needs.

Related tools