翻转图片在线

在浏览器本地把图片做水平或垂直镜像翻转,不压缩、不改尺寸、不上传服务器,翻转后一键下载。

原图(服务端直出示例)
柳泉
水平翻转后
柳泉

使用方法

翻转图片在线全程在浏览器里完成,图片不会上传到任何服务器,步骤如下。

第一步:点「选择图片」挑一张本地图片,支持 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无损不支持不限水平/垂直

结果边界和舍入

翻转图片在线有几个边界要说明。画布边长上限取决于浏览器,通常单边超过 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 单位速查表:查像素等单位。 调色工具:生成翻转图配色。