图片翻转镜像

水平/垂直镜像

413 次访问

图片翻转 / 旋转

🪞
拖入或点击选择图片
翻转 / 90 度旋转 / 自由角度 / 实时预览

使用提示

· 翻转 + 旋转可叠加:先翻转再旋转,效果不同于先旋转再翻转

· 自适应画布:自由旋转后画布扩大以容纳整张图,不会裁切边角;关闭则保持原图尺寸

· 空白背景:自由旋转后四角的空白填充色(仅在 JPG / WebP 不透明 / 关闭自适应时可见)

· PNG:自适应模式下保留透明角,最干净

关于本工具

了解工具定位 · 使用场景 · 对比优势

将图片沿水平或垂直方向翻转,一键生成镜像效果。摄影师调整构图方向、设计师制作对称素材、电商处理商品展示图时常用。上传图片后即时预览,所有处理在浏览器本地完成,图片不上传服务器。

使用场景

🎨

自拍镜像校正

自拍时手机前置镜头拍出的照片默认是左右镜像的,文字、手表、胸针等带方向性的元素会反掉。使用本工具对照片做一次水平翻转,就能还原真实视角,让自拍里的文字可读、饰品朝向正确,无需任何修图软件。

🧑‍🎨

设计素材对称

UI 设计师做图标或海报时,经常需要将某个元素(如箭头、翅膀、花纹)左右或上下翻转来生成对称版本。本工具一键翻转,无需打开 Photoshop 或 Figma 调整画布,直接在浏览器里得到镜像素材,适合快速出稿或批量处理。

🖼️

印刷镜像排版

制作 T 恤烫印、杯子转印等个性化印刷品时,设计稿上的文字和图案需要水平翻转才能正确印到最终产品上。用本工具对设计稿做一次水平镜像,导出后直接发给印刷厂,避免印出来文字反掉的尴尬。

📸

证件照方向修正

用手机翻拍纸质证件照时,照片可能被拍成左右颠倒或上下颠倒。本工具提供水平/垂直翻转功能,一键修正方向,无需重新拍摄,适合急需电子版证件照上传报名或填表时使用。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (IMGonline)传统方法 (Photoshop)
数据隐私纯浏览器处理,图片不上传服务器上传图片至服务器处理本地软件处理,无上传
处理速度即时反馈(毫秒级)取决于上传+服务器响应(数秒)需打开软件、导入、操作、导出(分钟级)
离线可用支持(页面加载后断网仍可用)不支持(必须联网)支持(需提前安装软件)
操作步骤选择图片 → 点击翻转按钮 → 下载选择图片 → 上传 → 等待处理 → 下载打开软件 → 创建/打开文件 → 翻转 → 导出
批量处理单张处理单张处理支持动作/脚本批量处理
费用免费免费(有限制)需付费购买软件许可
平台依赖任何现代浏览器(Windows/macOS/Linux/移动端)任何现代浏览器需安装特定操作系统版本

使用指南

上手步骤 · 输入输出 · 避坑提示

使用步骤

  1. 上传图片(支持 JPG/PNG/WebP,单张 ≤ 20MB)
  2. 点击「水平翻转」或「垂直翻转」按钮选择镜像方向
  3. 预览翻转效果,确认无误后点击「下载」保存结果

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
一张包含人物的照片(如 portrait.jpg)水平翻转后的图片(人物左右颠倒)典型场景:自拍镜像校正
一张包含文字的截图(如 screenshot.png)垂直翻转后的图片(文字上下颠倒)典型场景:翻转后查看镜像文字
一张纯色图片(如 100x100 红色方块)翻转后图片与原始图片完全相同边界 case:对称内容无变化
一张 1x1 像素的图片翻转后图片与原始图片完全相同边界 case:最小尺寸图片
一张超大尺寸图片(如 10000x10000 像素)翻转后的图片(处理时间可能较长)边界 case:大尺寸图片性能测试
一张包含透明背景的 PNG 图片(如 logo.png)翻转后的图片,透明区域保持不变易错 case:透明通道需正确处理
一张 EXIF 包含方向信息的 JPEG 图片翻转后的图片,EXIF 方向信息可能被重置易错 case:EXIF 方向与翻转叠加

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 把翻转当成旋转

错误
上传一张朝右的侧脸照,想让它看向左边,点了「水平翻转」后发现脸是倒的
修复
水平翻转 = 左右镜像,像照镜子;旋转 = 绕中心点转动。想让脸转向,用水平翻转;想颠倒画面,用旋转 180°

翻转(Flip)与旋转(Rotate)是两种不同变换。水平翻转沿垂直轴镜像,旋转沿中心点转动。混淆两者会导致预期方向错误。

2. 误以为翻转会改变图片尺寸

错误
上传一张 1920×1080 的横图,水平翻转后以为会变成 1080×1920
修复
翻转后尺寸不变:1920×1080 水平翻转后仍是 1920×1080,只是像素左右对调

翻转是像素在平面内的对称映射,不改变图像宽度和高度。只有旋转 90°/270° 才会交换宽高。

3. 把垂直翻转当成上下滚动

错误
上传一张从上到下拍的文字截图,想「把底部的字移到顶部」,点了垂直翻转
修复
垂直翻转 = 上下镜像,文字会变成倒影效果。想调整文字顺序,应使用裁剪+移动或图像编辑软件的「上下颠倒」功能

垂直翻转是沿水平轴做镜像,不是「把底部内容移到顶部」。文字会完全颠倒,无法正常阅读。

4. 对已包含 EXIF 方向标记的图片重复翻转

错误
手机拍的竖图在电脑预览时是横的,先点水平翻转,发现还是横的,再点一次垂直翻转
修复
先查看图片的 EXIF 方向标记(Orientation 字段),用工具去除 EXIF 方向或自动旋转后再做翻转

很多手机照片存储了 EXIF 方向标记(如 Orientation=6 表示顺时针旋转 90°),预览器自动旋转但原始像素未变。直接翻转会在错误的方向上操作。

5. 期望翻转后保留透明背景(PNG)但导出为 JPEG

错误
上传一个带透明背景的 PNG 图标,水平翻转后导出为 JPEG,结果透明区域变成白色方块
修复
如果原图有透明通道,导出时选择 PNG 格式(支持 alpha 通道),不要选 JPEG

JPEG 不支持透明度,透明像素会被填充为白色(或其他指定底色)。翻转本身不丢失透明度,但输出格式决定了结果。

6. 翻转后文字镜像,期望自动校正

错误
上传一张包含文字「你好」的图片,水平翻转后变成「好你」的镜像,以为工具会智能识别并反转文字方向
修复
翻转是像素级操作,不会识别或校正文字。如果希望文字可读,应使用 OCR 提取文字后重新排版,或只翻转非文字区域

图像翻转工具对像素一视同仁,不区分文字、人脸、物体。文字镜像后不可读是正常行为,不是 bug。

7. 用翻转来校正扫描件方向

错误
扫描了一份 A4 文档,内容是上下颠倒的,用垂直翻转处理
修复
上下颠倒 ≠ 垂直翻转。上下颠倒应该旋转 180°(Rotate 180),垂直翻转会得到镜面倒影

扫描件上下颠倒时,文字是倒立但左右方向正确。垂直翻转会使文字变成镜面倒影,比原来更难辨认。

8. 对大文件反复翻转导致浏览器卡死

错误
上传一张 8000×6000 的 20MB 照片,连续点击水平翻转 5 次,页面无响应
修复
一次翻转后直接下载结果;如需多次变换,在本地用专业软件(Photoshop/GIMP)批量处理

浏览器处理超大图片时内存占用高,多次翻转会叠加内存消耗。纯前端工具(FE)受限于浏览器沙箱,建议单次操作。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

dst(x, y) = src(x, H - 1 - y) 或 dst(x, y) = src(W - 1 - x, y)

变量说明

  • src — 原始图像像素矩阵
  • dst — 镜像后图像像素矩阵
  • x — 像素的列坐标(0 ≤ x < W)
  • y — 像素的行坐标(0 ≤ y < H)
  • W — 图像宽度(像素数)
  • H — 图像高度(像素数)

示例

一张 4×3 像素的图片,水平镜像:原图左上角像素 (0,0) 映射到 (3,0)。若原图第一行像素值为 [R,G,B] 数组,则镜像后第一行变为 [B,G,R]。垂直镜像同理:原图 (0,0) 映射到 (0,2)。

适用范围

适用于任意尺寸的位图图像(PNG/JPEG/BMP 等)。不适用于矢量图(SVG)或非矩形图像(如全景图投影)。基于标准像素坐标变换,无数据来源依赖。

原理图

上传图片PNG / JPG / WebP选择方向水平 / 垂直Canvas 镜像scale(-1, 1) / scale(1, -1)预览隐私说明所有图片仅在本地浏览器中处理,不会上传至任何服务器。
用户输入 本地处理 输出结果

开发者集成

3 种主流语言 · 复制即用

from PIL import Image

# 打开图片
img = Image.open('input.jpg')

# 水平翻转(左右镜像)
flip_h = img.transpose(Image.FLIP_LEFT_RIGHT)
flip_h.save('horizontal.jpg')

# 垂直翻转(上下镜像)
flip_v = img.transpose(Image.FLIP_TOP_BOTTOM)
flip_v.save('vertical.jpg')

# 同时水平+垂直翻转(旋转180度)
flip_both = img.transpose(Image.ROTATE_180)
flip_both.save('both.jpg')
package main

import (
	"image"
	"image/jpeg"
	"os"
	"golang.org/x/image/draw"
)

func main() {
	// 打开源图片
	src, _ := os.Open("input.jpg")
	defer src.Close()
	img, _, _ := image.Decode(src)

	bounds := img.Bounds()
	// 水平翻转:反向水平映射
	hFlip := image.NewRGBA(bounds)
	for y := bounds.Min.Y; y < bounds.Max.Y; y++ {
		for x := bounds.Min.X; x < bounds.Max.X; x++ {
			hFlip.Set(bounds.Max.X-x-1, y, img.At(x, y))
		}
	}

	out, _ := os.Create("horizontal.jpg")
	defer out.Close()
	jpeg.Encode(out, hFlip, nil)
}
// 浏览器环境:使用 Canvas 实现图片翻转
function flipImage(imageSrc, direction = 'horizontal') {
  const img = new Image();
  img.onload = () => {
    const canvas = document.createElement('canvas');
    canvas.width = img.width;
    canvas.height = img.height;
    const ctx = canvas.getContext('2d');

    // 水平翻转:先平移再缩放(-1, 1)
    if (direction === 'horizontal') {
      ctx.translate(img.width, 0);
      ctx.scale(-1, 1);
    } else if (direction === 'vertical') {
      ctx.translate(0, img.height);
      ctx.scale(1, -1);
    }
    ctx.drawImage(img, 0, 0);

    // 下载结果
    const link = document.createElement('a');
    link.download = `flipped_${direction}.png`;
    link.href = canvas.toDataURL();
    link.click();
  };
  img.src = imageSrc;
}

// 使用示例:flipImage('photo.jpg', 'horizontal');

常见问题

8 个高频疑问

怎么把一张图片水平翻转(左右镜像)?
上传图片后,在操作选项中选择「水平翻转」,点击「开始处理」即可。水平翻转会交换图片的左右两侧,效果类似照镜子。处理过程完全在浏览器本地完成,不依赖网络,图片不会上传到任何服务器。支持 JPG、PNG、WebP、BMP 等常见格式,建议图片尺寸不超过 8000×8000 像素,否则可能因浏览器内存限制导致卡顿。
翻转后图片变模糊了,是工具的问题吗?
翻转操作本身不改变像素数据,理论上不会导致模糊。如果出现模糊,最常见的原因是:1)原始图片分辨率太低,翻转后放大查看时锯齿感明显;2)浏览器窗口缩放导致显示失真,建议下载到本地用原尺寸查看;3)部分浏览器对 WebP 格式的渲染有兼容性问题,可尝试保存为 PNG 再对比。本工具不进行任何有损压缩,输出图片像素与输入完全一致。
支持批量翻转多张图片吗?一次能处理几张?
当前版本不支持批量处理,每次只能上传一张图片进行翻转。如果需要批量翻转,可以重复操作,或使用支持批量功能的桌面软件如 Photoshop、XnConvert。单张处理的好处是浏览器内存占用可控,避免大文件批量处理时页面崩溃。如果图片数量多但每张不大(< 1MB),建议逐张操作,速度很快。
翻转后图片上的文字也跟着反了,能只翻转图片不翻转文字吗?
不能。翻转操作是对整个图片像素的镜像变换,文字作为图片的一部分会同步翻转。如果希望文字保持正读方向,需要先用其他工具(如 Photoshop、GIMP)将文字图层分离,单独翻转背景部分,再将文字重新叠回去。本工具定位是纯像素级镜像处理,不涉及图层识别或 OCR,适合对整张图片做镜像效果的场景。
手机浏览器上能用吗?上传图片会不会很慢?
完全可用,支持 iOS Safari、Chrome、Edge 等主流手机浏览器。上传速度取决于图片大小和本地手机性能,不是网络速度(因为不上传服务器)。建议手机拍摄的照片(通常 3-10MB)直接上传,翻转处理一般在 1-3 秒内完成。如果图片过大(> 10MB),手机浏览器可能出现内存不足提示,建议先用手机相册裁剪或压缩后再操作。
垂直翻转和水平翻转有什么不同?什么时候该用哪个?
水平翻转(左右镜像)交换图片的左右侧,适合:1)自拍镜像修正(前置摄像头拍出的左右反转);2)设计稿中需要对称元素。垂直翻转(上下镜像)交换图片的上下侧,适合:1)倒影效果制作;2)修复扫描时上下颠倒的文档;3)水面反射效果。两个功能是独立的,也可以先水平再垂直组合使用,实现 180 度旋转效果(但旋转 180 度用「旋转」工具更直接)。
翻转后图片尺寸会变吗?会不会被裁剪?
不会。翻转操作是像素级映射,图片的宽度、高度、分辨率完全保持不变,没有任何裁剪或缩放。水平翻转时,左上角像素移到右上角,左下角移到右下角,整体尺寸不变。垂直翻转同理。输出图片的 DPI 元数据也会保留,打印时不会出现尺寸偏差。唯一可能变化的是 EXIF 中的方向标记(Orientation),翻转后该标记会被清除以避免重复翻转。
工具会不会在图片上加水印?下载的图片有质量损失吗?
没有任何水印或品牌标识。下载的图片格式与原始格式一致(除非原始格式浏览器不支持保存,则自动转为 PNG),像素数据完全保留,无质量损失。支持直接右键另存为,或点击「下载」按钮。因为处理在本地完成,也不存在服务器端压缩或转码。如果发现下载后文件大小明显变小,请检查浏览器是否开启了「保存为 JPEG 自动压缩」等设置(某些浏览器默认行为)。
选择 打开 +新窗口 esc关闭