Image Rotator
Our Image Rotator rotates a JPG, PNG, WEBP, GIF, or BMP image by 90° left, 90° right, 180°, or any arbitrary angle from -180° to 180°. For non-cardinal angles, the black corners introduced by the rotation are automatically cropped so the result fits the rotated content — no black edges.
How to Use the Image Rotator
1. Upload Your Image
- Drag and drop a JPG, PNG, WEBP, GIF, or BMP file onto the drop zone
- Or click to browse and select a file from your device
- Files up to 10MB are supported
2. Pick a Rotation
- Quick rotations: 90° Left, 90° Right, or 180°. These are cardinal angles and don't need any cropping.
- Custom angle: Drag the slider (or type a value) for any angle from -180° to 180°. Positive angles are counter-clockwise. Black corners are auto-cropped.
- Cardinal angles (90° multiples) don't change the rectangular dimensions. Other angles do, because the rotated content fits inside a different bounding box.
3. Preview and Download
- The rotated image keeps the same file format as the original
- The filename is suffixed with the rotation (for example,
photo-rotated-90cw.jpgorphoto-rotated-30deg.jpg) - Download with one click
Key Features
Three Quick Presets
- 90° Left — rotate counter-clockwise (the rotation you make to upright a sideways photo taken in portrait mode)
- 90° Right — rotate clockwise (the rotation to upright a sideways photo taken in landscape mode)
- 180° — flip upside down (the rotation to upright an inverted photo)
Custom Angle Slider
- Drag from -180° to 180° for any angle in between
- The result is auto-cropped to the largest axis-aligned rectangle that fits the rotated content
- Use this for fine alignment or to fix photos that were scanned at a slight angle
Server-Side Performance
- Rotations run on the server with PHP's GD extension — fast and accurate
- Cardinal angles are a single
imagerotate()call; no resampling, no quality loss - Arbitrary angles use
imagerotate()followed byimagecrop()to remove the black corners
Format Preservation
- The rotated file uses the same format as the original (JPG → JPG, PNG → PNG, etc.)
- PNG, WEBP, and GIF keep their transparency through the rotation
- JPG and BMP have the new background (revealed by the rotation) filled with black (those formats don't support transparent pixels)
Use Cases
1. Fix Phone Photos
- Photos taken in portrait mode but exported in landscape need a 90° rotation to display correctly
- Photos scanned upside-down need a 180° rotation
2. Straighten Scans
- Scans from a flatbed scanner are often slightly off-axis; rotate by 1°–5° to straighten
- The auto-crop means the straightened image fits the rotated content with no black edges
3. Design and Layout
- Rotate a logo or icon to fit a specific layout
- Produce rotated versions of an asset for variants in a design system
4. Document Processing
- Rotate a PDF page that was scanned sideways
- Re-orient mixed-orientation pages into a consistent direction
5. Social Media
- Rotate a video still or screenshot before posting
- Use 90° Left or Right to switch between portrait and landscape framing
Technical Features
- Server-Side Processing: Rotation runs on the server with PHP's GD extension — accurate and reliable
- Auto-Crop for Non-90° Angles: Black corners are removed using the standard
|W·cos θ| + |H·sin θ|formula; the result is the largest axis-aligned rectangle that contains the rotated image - Cardinal Angle Optimization: 90° / 180° / 270° rotations skip the auto-crop step entirely (no resampling, no quality loss)
- Same-Format Output: No format conversion happens — what you upload is what you download
Understanding Rotation Directions
Positive vs. Negative
Positive angles rotate counter-clockwise (the direction a clock's hands move backward). Negative angles rotate clockwise. The two quick presets 90° Left and 90° Right correspond to +90° and -90° respectively.
Cardinal Angles
90°, 180°, 270° (and their negatives) are cardinal angles. For these, the rotated image has the same rectangular dimensions as the source — no auto-crop is needed, and there's no quality loss.
Arbitrary Angles
For any other angle, the rotated image is a bounding box that contains the source plus four black corner triangles. This tool auto-crops those corners. The resulting dimensions follow the formulas:
- new width = |srcW · cos(angle)| + |srcH · sin(angle)|
- new height = |srcW · sin(angle)| + |srcH · cos(angle)|
For a 1000×500 image rotated 30° this gives roughly 1116×933 pixels.
Limitations
- This tool accepts JPG, PNG, WEBP, GIF, and BMP. HEIC, TIFF, and SVG are not accepted directly — to rotate one of those, first run it through the Image Converter to flatten it to a raster format, then upload the result here.
- The angle range is -180° to 180°. Rotations outside this range are equivalent to rotations inside (for example, 200° is the same as -160°).
- For arbitrary angles, the auto-crop can produce dimensions that aren't a clean number; if you need exact dimensions, use the Image Cropper afterward.
- Rotation does not flip the image. To mirror an image horizontally or vertically, use the Image Converter (no direct mirror tool yet).
Remember: rotation changes the orientation of the image. If you want to change the pixel size without changing orientation, use the Image Resizer. If you want to remove parts of the image, use the Image Cropper.