使用方法
翻转图片在线全程在浏览器里完成,图片不会上传到任何服务器,步骤如下。
第一步:点「选择图片」挑一张本地图片,支持 PNG、JPEG、WebP、GIF 等常见格式。第二步:选翻转方向,默认「水平翻转(左右镜像)」,需要上下颠倒就选「垂直翻转」。第三步:点「翻转并下载」,页面会先在上方画布里画出翻转后的图,同时把结果保存成 PNG 下载到本地。第四步:如果想先看效果再决定,直接看画布预览即可;点「复制结果」可复制本次处理的尺寸与方向说明。下方左边是原图、右边是水平翻转后的示例,打开页面就能看到。
能解决什么
翻转图片在线适合几类场景。第一,修正拍反的照片:前置摄像头或某些设备拍出来是镜像的,水平翻转一下就恢复正常。第二,做对称素材:给海报、表情包做左右或上下镜像,快速得到对称构图。第三,处理扫描件:书页扫描左右颠倒时,翻转后文字方向才正确。第四,配合其它图片工具:翻转之后再压缩、改格式或加边框,流程都在本地完成。
本页只做镜像翻转这一件事,不压缩、不裁剪、不改色彩、不旋转任意角度;需要这些请用图片压缩、裁剪或旋转工具,旋转和翻转不是一回事(旋转是绕中心转 90 度,翻转是沿轴镜像)。
原理和变量
本工具用浏览器原生 Canvas 2D 实现,不加载任何图像库,镜像的本质是像素坐标变换。
第一,水平镜像的映射公式是 输出 x = 宽度 - 1 - 输入 x,即第 0 列变到最后一列、第 1 列变到倒数第二列,以此类推;垂直镜像同理 输出 y = 高度 - 1 - 输入 y。第二,代码上用画布变换矩阵实现:水平翻转变换是 setTransform(-1,0,0,1, 宽,0),垂直翻转变换是 setTransform(1,0,0,-1, 0,高),再 drawImage 把图按矩阵画出来,浏览器自动完成逐像素重排。第三,翻转是几何变换,不涉及插值或重新编码像素值,因此镜像本身是无损的,画质只取决于最后导出时的格式与质量。第四,连续翻转两次会回到原图,因为镜像变换的逆变换是它自己。
完整示例
用一张 4 像素宽、1 像素高的假想图演示坐标映射(数值仅作演示)。
原图像素列从左到右是 0、1、2、3,水平翻转后输出列依次变成 3、2、1、0,即原图整体左右对调;垂直翻转对行做同样处理。对真实图片,一张 800 × 600 的 PNG 水平翻转后仍是 800 × 600,尺寸丝毫不变,只是左右内容互换。代码里就是先 setTransform(-1,0,0,1,800,0) 再 drawImage,画布宽高设为 800 和 600,导出得到镜像图。
输入范围与对照表
这个工具支持浏览器能解码的图片格式,不同格式在透明通道和边长上限上有差异。下面是常见格式与镜像支持对照表,前 12 行直接展开,点「加载更多」看剩余 3 行;表格可导出 CSV、JSON,也能复制成制表符文本。
| 格式 | 类型 | 透明 | 最大边长 | 翻转支持 |
|---|---|---|---|---|
| PNG | 无损 | 支持 | 无限制(建议≤8000) | 水平/垂直 |
| JPEG | 有损 | 不支持 | ≤65535 | 水平/垂直 |
| WebP | 均有 | 支持 | ≤16383 | 水平/垂直 |
| GIF | 无损 | 支持 | ≤65535 | 水平/垂直 |
| BMP | 无损 | 不支持 | ≤32767 | 水平/垂直 |
| TIFF | 无损 | 支持 | 很大 | 水平/垂直 |
| AVIF | 均有 | 支持 | ≤65535 | 水平/垂直 |
| ICO | 无损 | 支持 | ≤256 | 水平/垂直 |
| SVG | 矢量 | 支持 | 不限 | 用 transform 翻转 |
| APNG | 无损 | 支持 | ≤65535 | 水平/垂直 |
| HEIC | 有损 | 支持 | ≤65535 | 水平/垂直(看浏览器) |
| PPM | 无损 | 不支持 | 不限 | 水平/垂直 |
| XBM | 无损 | 不支持 | 不限 | 水平/垂直 |
| XPM | 无损 | 不支持 | 不限 | 水平/垂直 |
| PBM | 无损 | 不支持 | 不限 | 水平/垂直 |
结果边界和舍入
翻转图片在线有几个边界要说明。画布边长上限取决于浏览器,通常单边超过 16384 像素就可能画不出或变慢,所以超大图会先提示你压缩或缩小再翻。翻转是镜像不是旋转,尺寸严格不变,宽高不会互换,这一点和「旋转 90 度」不同,别混淆。
导出统一为 PNG,因为 PNG 无损且支持透明,能保住原图的透明区域;若原图是 JPEG(无透明),翻后背景会变成不透明。翻转本身不重编码像素,无损;但导出 PNG 属于一次有损自由的有损?不,PNG 是无损编码,画质不会下降,只有最后这一步的编码损耗为零。EXIF 方向信息在 Canvas 绘制时不会被自动应用,若手机照片本身带旋转标记,可能需要在翻转前先按标记摆正。多次翻转会叠加,翻两次回到原样,翻三次等于翻一次。
常见问题
翻转会损失画质吗?
镜像变换本身无损,像素只是重排不重算。导出用 PNG 无损编码,画质不下降;只有原图是 JPEG 这类有损格式时,重新导出才可能带来一次编码损失,建议原图就保留为 PNG。
图片会被上传吗?
不会。翻转图片在线全程用浏览器本地 Canvas 处理,图片不离开这台设备,刷新页面即清空,可在开发者工具 Network 面板自查没有任何上传请求。
为什么翻转后尺寸没变?
镜像沿轴对折,宽高不变。如果你看到尺寸变了,那其实是旋转而不是翻转;旋转 90 度才会让宽高互换,本工具不做旋转。
水平翻转和垂直翻转怎么选?
左右对调选水平翻转(绕垂直中轴),上下颠倒选垂直翻转(绕水平中轴)。前置摄像头自拍偏左右镜像,通常选水平翻转就能修正。
透明背景翻完还在吗?
在。PNG、WebP、GIF、SVG 等带透明的格式翻转后透明区域保留;JPEG 没有透明通道,翻后背景是不透明的。
很长的图翻转失败?
单边超过约 16384 像素时浏览器画布可能处理不了,工具会提示先缩小。先用图片压缩或尺寸调整工具把边长降下来再翻即可。
能翻转 GIF 动图吗?
本工具读取的是 GIF 的第一帧并做静态镜像,不会保留动画帧序列。需要动图镜像请用专门的动图处理工具,避免只翻了首帧。
结果能导出吗?
可以。「翻转并下载」直接保存 PNG;「复制结果」复制处理说明;对照表支持导出 CSV(带 BOM)、JSON(不带 BOM)以及复制制表符文本。
相关工具
图片颜色取色:从图片里取色值。 颜色选择器:挑翻转后要用的配色。 Base64 图片编码:把图片转成文本。 十六进制查看器:以十六进制看图片字节。 十六进制颜色表:查十六进制色值。 CSS 单位速查表:查像素等单位。 调色工具:生成翻转图配色。