Rotate AVIF images to the correct orientation and export as AVIF. Adjust quality and resolution — free with no watermarks.
AVIF (AV1 Image File Format) is a still-image format published by the Alliance for Open Media that wraps an AV1-encoded picture inside the HEIF container (ISO/IEC 23008-12). Compression is typically 50% better than JPEG at the same visual quality, which is why Chrome 85+, Firefox 93+, Edge 121+, and Safari 16.4+ all decode AVIF natively (~94% global browser support per caniuse). But the same camera and screenshot pipelines that produce sideways JPEGs also produce sideways AVIFs — and AVIF's rotation story is messier than JPEG's.
AVIF supports rotation two ways: a HEIF irot transform property (0/90/180/270°) plus an imir mirror flag, AND a regular EXIF Orientation tag inherited from the camera. Browsers handle these inconsistently — Firefox and Chrome honor irot/imir but EXIF Orientation in AVIF is not always respected, and toolchains like Sharp 0.33 shipped with AVIF orientation bugs that were only fixed in 0.34. Baking the rotation into the actual pixel grid sidesteps all of that.
irot and EXIF tags. Rotate explicitly to lock in the final orientation.| Behavior | AVIF | WebP | JPEG |
|---|---|---|---|
| Container | HEIF (ISO/IEC 23008-12) | RIFF | JFIF / Exif |
| Native rotation metadata | HEIF irot (0/90/180/270°) + imir |
EXIF Orientation only | EXIF Orientation only |
| EXIF Orientation supported by browsers | Inconsistent — Chrome/Firefox prefer irot |
Yes (Chrome 81+, Firefox 77+) | Yes (universal) |
| Lossless 90°/180°/270° pixel rotation | Re-encode required | Re-encode required | Possible via DCT block swap (e.g. jpegtran) |
| Compression vs JPEG at same SSIM | ~50% smaller | ~25-30% smaller | Baseline |
| Browser support (May 2026) | 94.33% global | 96%+ | Universal |
| Alpha + HDR | Yes (10/12-bit, BT.2020) | Alpha yes, HDR no | No |
For sharing with a recipient on a pre-Safari-16.4 device, convert AVIF to JPG or AVIF to WebP after rotating.
| Angle | What it does | Use when |
|---|---|---|
| 90° clockwise | Quarter turn right | Portrait shot taken sideways, needs upright |
| 180° | Flips upside-down | Phone held inverted, or scanner fed the wrong way |
| 270° (= 90° CCW) | Quarter turn left | Landscape capture rotated the wrong direction |
| Custom angle (e.g. 5°) | Skew correction | Straightening a hand-held document or horizon |
90°, 180°, and 270° rotations on AVIF are computationally cheap — the pixel grid swaps axes without sub-pixel interpolation — but the editor still re-encodes the AVIF when you save, and its AVIF output is lossy at every "Quality" setting. Non-multiples of 90° also require interpolation and a fill for the exposed corners ("Background for exposed corners").
90°, 180°, and 270° are the clean cases — the pixel grid is simply transposed or reversed, with no interpolation. A fine angle from −45° to 45° (decimals such as 2.5° work; add a quarter turn for larger angles) is also accepted, but that involves resampling the pixel grid and revealing triangular corners that take the "Background for exposed corners" choice — "Transparent", "White", "Black" or "Auto-crop corners". For correcting sideways photos, stick to 90 / 180 / 270; for straightening horizons, use a small custom angle.
A 90°/180°/270° rotation is a geometric transform with no interpolation, so the only quality cost is the re-encode itself. The default "Quality" is 85; raise it toward 100 to narrow the loss. (AVIF, like WebP, does not currently support truly lossless rotation via metadata-only operations the way jpegtran does for JPEG — the AV1 bitstream needs to be re-emitted.) The editor's AVIF output is lossy even at "Quality" 100; for a lossless copy of the rotated pixels, save as PNG.
AVIF carries two orientation signals: the HEIF irot transform property and the EXIF Orientation tag. Per the Mozilla bug tracker and an analysis by Tuomas Siipola, Chrome and Firefox prefer irot and may ignore EXIF Orientation in AVIF, while other viewers (older OS image previewers, some Linux desktop viewers) only check EXIF. If the two signals disagree, the image flips depending on the viewer. Physically rotating the pixels eliminates the ambiguity.
It rotates the pixels. After rotation, the output is re-encoded with the corrected pixel grid and no orientation flag left to apply (a JPG output keeps the EXIF data with Orientation reset to "1", normal). That means the file looks the same in every browser, every preview pane, and every CMS regardless of how each one interprets irot or EXIF tags.
Alpha survives rotation when you save as AVIF, PNG, WebP or TIFF — the alpha plane rotates with the color planes (JPG and BMP flatten it onto white). HDR does not: the editor works in 8-bit sRGB, so a 10- or 12-bit or wide-gamut (BT.2020, Display P3) source is saved as 8-bit sRGB. Keep the original if you need the HDR master.
Not with different angles in one batch — drop up to 50 AVIF files at once (a mixed batch works too), and the rotation angle you set applies to every file in the batch; for a different angle, start another batch. "Download all (.zip)" saves every rotated result in one ZIP, or use "Download one by one" to save them separately.
Re-encoding a rotated image rarely produces a byte-identical AV1 bitstream even at quality 100 — entropy coding works on transformed blocks, and rotating the pixel grid changes which patterns the encoder sees. Expect ±10-30% size variation versus the input. To keep size predictable, lower the "Quality" slider or run the result through Compress AVIF.
Rotate first if the destination format has weaker orientation-tag support than AVIF (most non-JPEG cases). After converting to JPG, PNG, or WebP, some metadata may be stripped depending on the converter — so locking the orientation into the pixels beforehand is the safest path. For a single tool round-trip, you can also rotate during conversion if the converter exposes both controls.
AVIF and HEIC share the same HEIF container, so both have access to the irot rotation property — see HEIC rotation for the iPhone side. JPEG only has EXIF Orientation, but supports truly lossless rotation via jpegtran-style DCT block swapping, which AVIF cannot do without re-encoding the AV1 bitstream. This editor does not use that trick for any of them: every rotation is re-encoded — an AVIF as a new AVIF at the "Quality" you set, a JPG as a new JPG, and a HEIC as JPG, since a browser cannot write HEIC.