Rotate Image
Turn a sideways or upside-down image the right way up, or mirror it — free, lossless, no watermark.
How it works
- Upload. Choose the image to rotate (up to 25 MB).
- Pick rotation. Choose 90, 180 or 270 degrees clockwise, and optionally a horizontal or vertical flip.
- Download. The rotated image downloads automatically in its original format.
About this tool
Rotate an image by 90, 180 or 270 degrees clockwise, and optionally mirror it horizontally or vertically. It fixes the everyday problem of a photo or scan that came out sideways or upside-down. The 90-degree turns are lossless — pixels are rearranged, not re-encoded — so a rotated JPG doesn't pick up extra compression. The output keeps the original format. As with every tool here: no watermark, no signup, processed in memory and discarded.
What people use it for
- Fix a photo that came out sideways from a phone
- Turn a scanned page that loaded upside-down
- Mirror an image horizontally for a layout
- Rotate a screenshot to the correct orientation
Developer API
Automate this tool from your own code. Send a POST request to the endpoint below and get the same result the web tool produces. It is rate-limited per IP and needs no signup — API keys for higher limits are coming.
https://best.free/api/tools/image-rotate/
| Parameter | Example | Required | Notes |
|---|---|---|---|
file (file) |
photo.jpg |
Yes | Any common image, ≤25 MB. |
angle |
90 |
No | 90 / 180 / 270 clockwise. |
flip |
none |
No | none / horizontal / vertical. |
curl -X POST https://best.free/api/tools/image-rotate/ \
-F 'file=@photo.jpg' \
-F 'angle=90' \
-F 'flip=none' \
-o rotated.png
import requests
files = {"file": open("photo.jpg", "rb")}
data = {"angle": 90, "flip": "none"}
r = requests.post("https://best.free/api/tools/image-rotate/", files=files, data=data)
with open("rotated.png", "wb") as out:
out.write(r.content)
const fd = new FormData();
fd.append("file", fileInput.files[0]);
fd.append("angle", 90);
fd.append("flip", "none");
const r = await fetch("https://best.free/api/tools/image-rotate/", { method: "POST", body: fd });
const blob = await r.blob(); // the rotated.png
Response: The rotated/flipped image (same format).