拖动滑杆做 ±0.5° 的精细校正,适合扫描件、建筑摄影的轻微倾斜。角度为 0 时不旋转。
扩展画布:斜着转时画布自动变大,画面四角不会被切掉;按原尺寸裁剪:画布不变,超出部分被裁掉。
想保留透明背景必须选 PNG(或 WebP),JPEG 会把透明区填成底色。
选张图,选个角度,一键旋转转正。
三种都能「把图转过来」,但结果完全不是一回事。
| 操作 | 画面变化 | 宽高 | 适合 |
|---|---|---|---|
| 旋转 90 / 270° | 内容不变,只是方向变了 | 宽高互换 | 手机竖拍的照片在电脑上躺倒了 |
| 旋转 180° | 上下左右都对调 | 不变 | 照片整个拿反了 |
| 任意角度(±0.5°) | 画面倾斜校正 | 扩展或裁剪 | 扫描件歪了、地平线不水平 |
| 镜像翻转 | 照镜子,左右对调 | 不变 | 自拍还原(不是旋转) |
90° 的整数倍几乎没坑,坑全在任意角度。
| 选择 | 结果 | 什么时候用 |
|---|---|---|
| 扩展画布 | 画布变大,四角留白(透明或底色) | 不想损失任何画面内容,如证件、截图、建筑照片 |
| 按原尺寸裁剪 | 画布不变,四角被切掉 | 只想要画面中心部分,或后续还要统一尺寸 |
| 透明底色 | 留白处透明,导出必须 PNG / WebP | 素材图、logo、要叠到别的图上的元素 |
⚠️ 免责声明:旋转为不可逆处理(尤其按原尺寸裁剪会永久裁掉四角),请务必保留原图。
任意角度旋转需要对像素重新采样,会有极轻微锐度损失,这是数学上的必然,不是工具缺陷。
90° / 180° / 270° 为整数倍旋转,像素无损。
所有处理在你的浏览器本地完成,图片不会上传到任何服务器。
手机拍的照片传到电脑上躺倒了、扫描件歪了半度、拍建筑时地平线斜着——这些都要旋转,但系统自带的图片查看器旋转完往往直接覆盖原图,想撤销都来不及。
这个工具把旋转拆成你能完全控制的三步:选角度 → 决定画布怎么处理 → 导出。
它是怎么转的?
① 90 / 180 / 270°:整数倍旋转,只是把像素矩阵换个方向摆放,一个像素都不重新计算,完全无损,同时宽高互换(90 / 270°);
② 任意角度:把画布中心移到原点,rotate(弧度) 后再移回来;此时图片是斜的,需要重新计算外接矩形;
③ 扩展画布模式下,按公式算出旋转后的外接宽高 w' = |w·cosθ| + |h·sinθ|、h' = |w·sinθ| + |h·cosθ|,画布放大到能装下整张图,四角一块不缺;
④ 按原尺寸裁剪模式下,画布维持原大小,超出的部分被裁掉,适合只保留中心区域的场景;
⑤ 留白处填充你选的底色(白 / 黑 / 浅灰 / 透明),透明底色导出必须选 PNG 或 WebP。
可以一次选多张批量旋转,处理完逐张预览,单张下载或打包 ZIP。
整个流程都在你自己的浏览器里跑,照片不会上传到任何服务器。
怎么转:
① 图片解码进 canvas,取原始宽高 w / h;
② 整数倍角度直接建 h×w(90/270°)或 w×h(180°)画布,translate + rotate 后一次性 drawImage,像素零损失;
③ 任意角度先算外接矩形 w' = |w·cosθ| + |h·sinθ|、h' = |w·sinθ| + |h·cosθ|;
④ 扩展模式用 w'×h' 画布,裁剪模式仍用 w×h;
⑤ 底色非透明时先 fillRect 铺底,再绘制;透明底色则不铺底,导出 PNG / WebP 保留 alpha;
⑥ 多张串行处理,实时进度,结果网格预览。
它不做:不自动识别地平线、不做透视校正、不改 EXIF 方向标记(只改像素本身)。按原尺寸裁剪会永久裁掉四角,请保留原图。
审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!