ToolAct工具行动

图片裁切工具

在线免费图片裁切、旋转与翻转,精准到像素,全程浏览器本地处理不上传

拖拽图片到此处,或点击选择文件

支持 JPG、PNG、WebP、BMP、GIF 格式

什么是图片裁切?

图片裁切就是从原图中选取一个矩形区域,把框外的内容丢弃。它是最基础的图片编辑操作之一——只是改变构图,不重新采样像素:从 4000×3000 的照片里裁出 1000×800 的区域,框内每一个像素都原汁原味保留。这个免费在线裁切工具的操作方式跟桌面编辑器一样:在预览图上拖动选框、用 X/Y/W/H 输入框精确定位、锁定比例让输出适配固定画布(头像、横幅、证件照),然后导出 PNG/JPEG/WebP。旋转和翻转在裁切之后施加,导出的文件方向已经被实际写入像素,对打印和不读 EXIF 方向的应用尤其重要。所有处理通过 Canvas 在浏览器本地完成——图片字节不会离开页面,证件、私照都不会上传。

使用方法

使用步骤

  1. 拖入图片或点击选择。支持 JPG/PNG/WebP/BMP/GIF。
  2. 拖拽选框移动位置,或拉角/边手柄调整大小。选择比例预设可锁定宽高比。
  3. 在 X/Y/W/H 输入框微调数值,实现像素级精确放置。
  4. 可选 90° 旋转或水平/垂直翻转——这些效果将应用在裁切后的输出上。
  5. 选择 PNG/JPEG/WebP 格式,点击「裁切」生成结果,然后下载。

使用提示

  • 用作头像或缩略图前先锁定比例(1:1、16:9 等),否则平台会自动帮你裁,结果未必如你意。
  • X/Y/W/H 的数值是基于原图像素,不是屏幕像素。4000 像素宽的照片即使缩放显示,坐标仍然按 4000 算。
  • 照片类用 JPEG 0.85–0.92、WebP 0.80–0.90——再高质量眼睛也看不出差别;截图、线稿或带文字的内容用 PNG。

使用场景

把头像或缩略图裁成固定比例锁定 1:1 做个人头像、16:9 做视频封面、4:5 做 Instagram 竖版,把选框拖到面部或焦点位置。比例在客户端就已经定死,上传后台拿到的图正好匹配显示槽位——再也不会被服务端的自动裁图擅自切掉额头或下巴。
截图后局部裁剪用于 Bug 报告把截屏拖进来,框住相关对话框,导出 PNG 保证文字清晰。丢掉屏幕其余部分也顺便抹掉了当时露出的其他窗口——比打开完整编辑器只为做一个五秒钟的裁剪要快得多。
把证件照裁到精确比例证件、护照和签证照片的规格本质上都是一个比例(例如 33×48 mm ≈ 11:16)。在 W/H 里填入具体像素值,锁定比例后把框拖到面部位置。输出单张高质量 JPEG/PNG 即可打印,不用走第三方照片服务。
电商商品图统一尺寸店铺规范常要求主图统一为 1:1 或 3:4,但拍摄出来的照片比例参差不齐。锁定目标比例、把选框拖到产品中心,几张图就能批量统一——上传后台不会再触发自动裁切导致主体偏移。
把社媒封面和 OG 图裁到平台规格按平台要求的尺寸在 W/H 直接输入数值(X 头图 1500×500、Open Graph 1200×630、Facebook 封面 1640×856、YouTube 缩略图 1280×720、Pinterest Pin 1000×1500),设好对应比例后拖选焦点区域。导出 PNG/WebP 即可直接上传——不需要模板,不需要 Photoshop。

技术原理

裁切在逻辑上很简单——选一个矩形,复制它的像素,扔掉其他——但在浏览器里做好需要几个关键环节:屏幕上的预览是原图的缩放版本,拖拽手柄操作在显示坐标中,而实际的裁切必须在原图坐标中进行,才不会损失画质。 当你加载一个文件,工具先用 URL.createObjectURL() 拿到 blob URL,再交给 HTMLImageElement 解码(零拷贝,比 base64 data URL 省内存)。img.naturalWidth 和 naturalHeight 被作为规范的像素坐标系——state 里存的所有 X/Y/W/H 都用这些像素表示。预览 <img> 用 max-width/max-height 让浏览器自动缩放;每次加载和 resize 时测量渲染后的宽(getBoundingClientRect()),存下一个 displayScale 比例(渲染宽 / 自然宽)。拖拽期间的鼠标偏移量除以这个比例,就从显示运动转回原始像素坐标——不论图片被缩放到多小,裁切矩形始终精确。 裁切框是一个绝对定位的 <div> 叠加在图片上。8 个缩放手柄(四角 + 四边)各自在 pointerdown 时记录模式('nw', 'n', 'ne', 'e', 'se', 's', 'sw', 'w', 'move');window 上的 pointermove 监听(pointer events 同时覆盖鼠标和触屏)读取实时鼠标位置,计算与拖拽起点的偏移,转为原图像素后重算矩形的 left/top/right/bottom。角拖以对角为锚点;边拖保持中轴线固定;锁定比例时先算主导轴再反推另一轴。每个结果都被限制在图片边界内,最小 10 像素,防止矩形反转或逃出画布。 导出阶段使用两个离屏 canvas。第一个 canvas 尺寸设为裁切区域的自然宽高;ctx.drawImage(img, sx, sy, sw, sh, 0, 0, sw, sh) 的 9 参数形式只拉取裁切区域的像素——Chromium 和 Firefox 都通过 GPU 纹理拷贝完成此操作,目标尺寸不变就不会发生重采样。如果有旋转或翻转,第二个 canvas 按旋转后的尺寸创建(90°/270° 时交换宽高),context 平移到中心,ctx.rotate(angle) 和 ctx.scale(±1, ±1) 施加变换,然后把裁切 canvas 以 (-w/2, -h/2) 偏移绘制。最后 canvas.toBlob(mimeType, quality) 将编码后的字节返回为 Blob;URL.createObjectURL() 将其变成可下载的 URL。PNG 忽略 quality(无损),JPEG 和 WebP 将其传给编码器(0–1)。旧的 Blob URL 在新裁切生成时释放,避免已解码的像素数据常驻内存。

  • 裁切坐标(X/Y/W/H)基于原图像素——一张 4000 像素宽的照片即使屏幕上缩小显示,坐标仍然按 4000 计算。
  • 所有处理通过 Canvas API 在浏览器本地完成——解码、裁切、旋转、翻转和编码都不会将图片字节发送到任何服务器。
  • 裁切框是一个绝对定位的 <div>,带 8 个拖拽手柄;鼠标/触屏偏移量除以显示比例,转换回原始像素坐标。
  • 导出使用离屏 Canvas:第一个 Canvas 通过 drawImage 九参数形式只提取裁切区域(不重采样),第二个 Canvas 通过 context 变换施加旋转/翻转。
  • 每次状态转换时显式释放旧的 Blob URL,避免已解码的像素数据在内存中堆积。

示例

从人像照片裁出方形头像

载入照片(3024×4032)→ 比例 1:1 → 拖框覆盖面部 → W=2000 H=2000 → JPEG 质量 0.9 → 裁切 → 下载

制作 Open Graph 1200×630 封面

载入横幅(1920×1080)→ 比例 16:9 → W=1200 H=630 → 拖到主体 → WebP 质量 0.85 → 裁切 → 下载

YouTube 视频缩略图 1280×720

载入素材 → 比例 16:9 → W=1280 H=720 → 拖到焦点 → JPEG 质量 0.9 → 裁切 → 下载

修正相机拍的人像方向

载入 IMG_4321.jpg → 向右旋转 90° → 比例自由 → 保持全画布 → PNG → 裁切 → 下载(方向已写入像素)

截取屏幕中的部分区域

粘贴/上传屏幕截图 → 比例自由 → 紧框对话框(如 740×420)→ PNG → 裁切 → 下载用于 Bug 报告

常见问题

我的图片会被上传到服务器吗?

不会。解码、裁切、旋转和编码全部在当前标签页的 Canvas API 中执行。打开 DevTools → Network 即可确认:裁切或下载期间没有任何请求发出。

裁切会降低图片质量吗?

裁切本身是无损的——只丢掉框外的像素,框内的像素逐字节保留。只有两种情况质量会变化:以低于 100% 的质量重新编码为 JPEG/WebP,或者应用非 90/180/270 的旋转角度(所以我们只提供这三种)。

在线裁切和 Photoshop、Lightroom 有什么区别?

桌面软件功能更全(图层、调色、批处理、自动选区),但启动慢、要付费、要本地安装。在线工具的优势是:打开浏览器即用,免安装免登录,处理一两张图通常比启动 Photoshop 更快。如果只是裁一张图、定个比例、做个头像,在线工具更合适;要做大量批处理或复杂修图再上 PS。

和手机相册自带的裁切相比呢?

手机相册裁切方便但受限:通常只能选几个固定比例、不能输入精确像素、改不了输出格式、文件名固定。当你需要把照片裁到 1200×630 这种具体尺寸,或者要把 HEIC 转 JPG 顺便裁,相册做不到,而本工具可以。

为什么 X/Y/W/H 的值跟我屏幕上看到的不一样?

这些值是原图的像素坐标,不是屏幕像素。一张 4000 像素宽的照片在屏幕上可能只显示 800px,但坐标仍然是原图的 4000——你的编辑器或上传目标实际拿到的也是这个分辨率。

导出的图片有水印吗?

没有。本工具完全免费,无水印、无登录、无次数限制,不会在裁切结果上加任何 logo 或链接。

为什么不能把裁切尺寸设得比原图还大?

裁切框不能超过图片边界。如果需要更大输出,要先单独做放大(upscale)。我们不在裁切中做放大,因为最近邻或双线性上采样会让结果变模糊,专业放大应该交给专门的图片放大工具。

想用预设列表里没有的自定义比例怎么办?

把比例设为「自由」,在 W/H 输入框里键入想要的精确宽高即可——结果就是这两个数字定义的比例。也可以把它当计算器:1080 / 1350 = 0.8 = 4:5。

可以一次裁切多张图片吗?

目前不支持批量。本工具针对单张图的精确裁切设计;要批量处理同一比例的多张图,可以用命令行工具(如 ImageMagick)或专业批量编辑器。

这里的旋转跟手机照片的 EXIF 方向有什么不同?

EXIF 方向是一个元数据标记——识别它的应用在显示时会旋转图片,但文件像素本身保持原始朝向。本工具的旋转是实际重新渲染像素,导出文件在任何查看器里都是正确方向,包括打印工具和不读 EXIF 的应用。

应该导出 PNG、JPEG 还是 WebP?

截图、UI 原型和带文字/锐利边缘的内容用 PNG(无损,文件较大)。打印用照片或更看重文件大小时用 JPEG。WebP 在视觉质量相当时比 JPEG 小 25–35% 且支持透明——目标受众使用现代浏览器时优先选它。

为什么裁切后文件反而变大了?

如果源图是高压缩 JPEG,而你以 PNG 导出,无损重新编码自然会更大。保持源格式(或选 WebP)即可避免。