# 图片缩放 改尺寸、裁切、转格式

说个尺寸，拉个框，挑个格式。

> 在浏览器里给 JPEG、PNG 和 WebP 改尺寸、裁切、转格式。精确到像素、按百分比，或者定长边，一张也行，一整个文件夹也行。什么都不上传。

这是一个浏览器交互工具，地址是 https://abox.tools/zh/resize-image/。文件在运行该浏览器的设备上处理。主动分享和可选联网功能都在页面上说明。下文是它的文字说明；使用工具请打开该地址。

## 你的图片**在浏览器里处理**，无须上传处理。

改尺寸、裁切、换格式，全在你自己的浏览器里、用你自己的硬件完成，用的是浏览器本来就带的图像编码器。这个工具没有任何联网功能，不取东西，也不发东西。就算真有，这个页面的另一头也没有服务器能接住一张图。

- ✗ 不上传
- ✗ 不注册
- ✗ 没有水印
- ✓ 断网能用
- ✓ 开源

## 不上传怎么改图片尺寸

1. **选好你的图片。** 拖到下面的方框里，或者点开自己挑。浏览器直接从你的硬盘上读，这期间没有东西发出去。
2. **想裁就裁。** 裁剪框一开始罩着整张图，所以你不动它就等于没裁。拖动它，或者锁定一个形状，头像用 1:1，快拍用 9:16，视频封面用 16:9，再按“拉到最大”取这个形状下能放进去的最大一块。每张图各有各的框，点列表里任意一行，就改在那张上画。要是全都想按同一种取景，也有一个按钮一次搞定。
3. **说清楚出来要多大。** 给宽，给高，或者两个都给；给一个长边，这样竖构图和横构图出来一样大；或者干脆给个百分比。两个框里留空一个，图片就保持自己原来的比例。
4. **挑好格式，然后按按钮。** 可以各自保持进来时的格式，也可以一律写成 JPEG、PNG 或 WebP。每个结果都写明它变成了什么、小了多少，点开就是全尺寸大图，背后那些数字全在，旁边还摆着原图供你对照。整批下载会打成一个 zip。

## 说得更细的版本

[怎么改图片尺寸而不把它弄坏](https://abox.tools/zh/guides/resize-an-image/): 调整尺寸会改变什么：缩小丢失细节、放大需要插值、适配不同形状的框，以及何时应先裁剪。

## 工具箱里还有

- [HEIC 转 JPG](https://abox.tools/zh/heic-to-jpg/): iPhone 拍的照片，换成什么都打得开的格式。
- [WebP 转 JPG](https://abox.tools/zh/webp-to-jpg/): 把网页保存的图片，变成所有软件仍然接受的格式。
- [PNG 转 WebP](https://abox.tools/zh/png-to-webp/): 同一张图片，常常减少三分之一体积，透明区域保持完整。
- [AVIF 转 JPG](https://abox.tools/zh/avif-to-jpg/): 把网站如今保存的格式，变成所有软件一直支持的格式。

## 常见问题

### 我的图片会传到什么地方去吗？

不会。解码、裁切、缩放、写出，全由你自己的浏览器在你自己的硬件上完成，用的是浏览器自带的 JPEG、PNG 和 WebP 编码器。这个工具没有任何联网功能，不取东西，也不发东西。页面的 `Content-Security-Policy` 把它可能联的地址全列了出来，没有一个是本站的。

### 只给宽、不给高会怎么样？

高按图片自己的比例算出来，这几乎总是你要的：说“宽 1920”，意思就是“宽 1920，高该多少是多少”。两个都填上，它们就可能跟图片本身的比例对不上，也只有这时候才会冒出“比例对不上怎么办”那个选择：整张放进框里、铺满并裁掉溢出、用背景色垫成这个框、或者直接拉伸认了变形。

### 缩小会掉画质吗？

缩小会减少像素，可能丢失小字、细线和精细细节，即使照片在预定显示大小下看起来不错。放大无法恢复从未记录的细节。缩放后的 JPEG 和有损 WebP 编码可能带来额外损失；PNG 保留缩放后的像素，而非原始细节。请按实际使用大小检查结果。

### 能给每张图裁得不一样吗？

能，而且默认就是这样。列表上每张图都带着自己的框，按自己的像素算，点某一行，那张图就连着它自己的框和锁定的形状一起回到预览里。你动其中一张，不会影响别的。每个框一开始都罩着整张图，所以你从没画过的那张，压根没被裁。

### 能一次给整批图裁成一样的吗？

能，用预览下面那个按钮。它会给其余每张图同样的相对区域，也就是各自宽高的同样比例。一批本来尺寸就一致的截图或者导出图，那就是完全相同的一个框，页面也会这么写。要是锁了形状，它会在那块区域里给每张图取这个形状下最大的一个框，所以先按 1:1 再按这个按钮，横竖混杂的一个文件夹就能全出方图。之后每个框还是照样能改。

### 它能读、能写哪些格式？

你的浏览器能解码的它都能读，实际上就是 JPEG、PNG、WebP、GIF、BMP，现在多数浏览器还包括 AVIF。写出来的是 JPEG、PNG 和 WebP，因为浏览器自带的编码器就这三种。选“保持原格式”时，JPEG 还是 JPEG，PNG 还是 PNG；浏览器写不了的格式，比如 GIF 和 BMP，会出成 PNG，因为它既保得住透明，也保得住大片纯色。

### 存成 JPEG 的话，透明会怎么样？

会被背景色填掉，因为 JPEG 没有 alpha 通道可以装它。颜色由你挑，默认白色，这是多数人想要的，也是几乎所有别的工具会一声不吭直接替你做的。垫成固定尺寸时用的也是这个颜色。存成 PNG 或者 WebP，透明就原样过来。

### 它会去掉 EXIF 和 GPS 信息吗？

真正被处理过的图会，属于顺带的效果：裁切或者缩放都得把画面解码成像素、再把像素编回去，而一张画布上只有像素，不带任何标签，所以位置、相机型号和时间戳干脆就没写进新文件。你完全没动过的文件是另一回事，它逐字节原样还给你，标签一个不少。[EXIF 查看与清除](https://abox.tools/zh/exif-editor/)可查看和编辑 JPEG、PNG 和 WebP 元数据，不重新编码图片。AVIF 支持只读查看提取到的 EXIF，清理时将第一张解码后的图片转换为新的 PNG，颜色或 HDR 可能改变。

### 这个跟图片压缩有什么区别？

这个管的是尺寸：你说要多少像素，它就给你多少像素。[图片压缩](https://abox.tools/zh/compress-image/)管的是文件大小：你说只准多少 KB，它去找刚好塞得进去的最高画质，只有画质单独够不到才动尺寸。人家跟你说“宽 1200 像素”，你就来对了地方；人家说“不能超过 500 KB”，那边更对路。

### 免费吗？要注册吗？

免费，没有账号，不用登录，没有试用期，也没有水印。文件的数量和大小同样没有上限，因为没有哪台服务器在为它们掏钱，活是在你自己的机器上干的。本站带广告，经费就是这么来的，广告拿不到关于你图片的任何信息。

### 断网能用吗？

能。页面开一次之后断网，它照干不误。这也是证明“什么都没上传”最省事的办法。一个把图片送出去缩放的工具，拔线那一刻就停了。

## 这条隐私承诺怎么核实

- **处理在这个浏览器里完成。** 本工具在浏览器里处理输入和结果，处理代码不把它们上传去处理。Content-Security-Policy 限制可用资源和连接目的地，但已允许的主机仍可接收请求。策略不检查载荷，不能单独证明什么都没有发出。请把具体操作的请求与源码核对，或断网完成该本地操作。
- **这里没有任何东西会去联网取数据。** 整个 `src/` 里，一个 `fetch`、一个 `XMLHttpRequest`、一个 `sendBeacon` 都找不到。缩放就是往画布上做一次 `drawImage`，再来一次 `canvas.toBlob`，缩放器和编码器都是你浏览器里早就装好的。
- **没人要求改的文件，一个字节都不改。** 没裁、没缩、也没换格式，那你选的那个文件会被逐字节原样还给你，不会重新存一遍。这不只是客气：正因如此，这个工具不可能悄悄替你重编一张图，也不可能把你只想看一眼的那张图的元数据悄悄丢掉。
- **Google 加载了什么，又拿不到什么。** 广告脚本和统计脚本来自 Google，捐助按钮来自 Buy Me a Coffee。关于你图片的信息，一条都没给它们。读文件、裁切、缩放、写文件的每一行代码都从本站发出，也都摆在仓库里。
- **断网照样能用。** 断开网络，这个工具跟原来一模一样，因为它本来就没有联网这一步。这是最省事的一条证明。

**你可以自己核对。**上面这些不用你信。这个页面是仓库里的模板和配置生成出来的，构建脚本你能读，也能自己跑一遍，跑出来的结果就提交在 `dist` 分支上。拿实际发给你的内容，跟你自己从源码构建出来的结果对一遍就知道了： https://github.com/A-Box-of-Tools/website

最值得先读的几个文件：`config/site.toml` 里是 Content-Security-Policy，`src/geometry.js` 里是“留下哪一块、出来多大”的那套算术，`src/codecs.js` 里是那一次 `drawImage` 调用，裁切和缩放是在同一步里做完的。
