Rotation is a lossless operation for 90° multiples (the pixels are just remapped) and a re-sampled operation for arbitrary angles. This tool handles both — one-click buttons for cardinal rotations, and a slider for fine angle correction. For arbitrary angles, the output canvas grows to fit the rotated image without cropping (toggle to crop to source dimensions instead).
Lossless 90° rotation
90°, 180°, and 270° rotations just remap pixel coordinates — no filtering, no quality loss. The output is byte-identical to what you'd get by rotating in a professional editor. JPEG in this range can even be rotated losslessly at the compressed-data level; the tool uses that path when possible to avoid re-encoding.
Arbitrary angles and straightening
For any other angle, the tool re-samples using Lanczos filtering. Angles less than ~10° are common for straightening a crooked scan or a horizon — the slider has fine control down to 0.1°. Preview the rotation on a canvas overlay; the source image stays visible dimmed beneath so you can align by eye.
Canvas expansion vs. cropping
Arbitrary rotations produce diagonal bounds that don't fit the source rectangle. Two options: Expand canvas grows the output to fit the rotated image with transparent (or a chosen color) padding — nothing is lost. Crop to source keeps the same dimensions and clips corners of the rotation — cleaner but lossy on content.