免费在线图像调整器

将图片调整到精确的像素尺寸。保持宽高比或设置自定义宽度和高度。不会上传到任何服务器。

您的文件永不离开您的设备
将图片拖放到此处 或点击浏览

支持 JPEG、PNG、WebP · 最多 20 MB

如何调整图片大小

  1. 在上方选择或拖放图片文件。
  2. 选择预设尺寸或以像素为单位输入自定义宽度和高度。
  3. 切换锁定图标以保持或忽略原始宽高比。
  4. 点击"调整图片大小"在浏览器中处理图片。
  5. 立即下载调整后的图片。

「调整大小」到底对你的像素做了什么

调整图像大小与裁剪它或压缩它并不是同一种操作。裁剪丢弃边缘的像素,把剩余部分原样保留。压缩保留每一个像素,但把它们编码得更紧凑。调整大小则字面意义上改变了像素数量:一张 4000x3000 的源图像重新缩放到 1920x1440,必须丢弃大部分像素,并挑选新的像素,以四分之一的分辨率表达同一场景。决定写入哪些新像素的数学操作被称为重采样,重新缩放的质量几乎完全取决于运行的是哪种重采样算法。

常用的四种重采样算法是:最近邻(取最近的那一个源像素,硬边缘得到保留,放大时呈块状,是像素艺术的唯一正确选择)、双线性(对周围 4 个源像素做线性混合,速度快但效果平平)、双三次(Keys 1981 三次核函数作用于周围 16 个像素,几十年来一直是 Photoshop 的默认)以及 Lanczos(用 Lanczos 核窗化的 sinc 函数,输出最锐利,硬边附近有轻微振铃,这是 ImageMagick 和 Sharp 在缩小时默认使用的)。本工具把 Canvas API 的 imageSmoothingQuality 设为 「high」,桌面端 Chrome 和 Firefox 将其解释为 Lanczos 类核,Safari 解释为双三次类核。由浏览器决定;JavaScript 可以请求「high」,但无法选择确切的滤波器。

缩小和放大并不是对称的问题。缩小以受控的方式丢弃信息;重采样器决定保留哪些细节,好的算法会保住源图像的可见结构。放大会增加从未被采样过的像素,而信息论(奈奎斯特-香农采样定理)说,你无法恢复原始信号里没有的频率。一个经典重采样器最多只能在已知样本之间平滑地插值,结果永远显得发软。要做真正的放大,现代的替代方案是 AI 超分辨率(Real-ESRGAN、waifu2x、Adobe Super Resolution、Topaz Gigapixel),它用在数百万张相似图像上训练过的神经网络幻觉出合理的细节。这里并不是这样。本工具做的是诚实的插值。

这个工具的底层原理

整条管线就是 HTML5 Canvas 2D API。没有加载任何外部库。当你拖入一张图像时,浏览器的 File API 把字节交给一个新的 HTMLImageElement;浏览器内置的 JPEG、PNG 或 WebP 解码器将比特流转换为像素缓冲区。宽高比根据自然宽高计算得出。一个新的 <canvas> 元素以你设定的目标尺寸在内存中创建,ctx.drawImage(image, 0, 0, 目标宽, 目标高) 把源图缩放绘制到目标。由于目标和源的尺寸不同,浏览器调用其重采样核来计算每一个新像素。

在调用 drawImage 之前,工具会设置 ctx.imageSmoothingEnabled = true 以及 ctx.imageSmoothingQuality = 「high」。第一个标志打开平滑(关闭最近邻);第二个提示浏览器使用其质量最高的滤波器。WHATWG canvas 规范把具体滤波器留给实现自行决定。Chrome 和 Firefox 在桌面端 「high」 下使用 Lanczos 类核;Safari 使用双三次类核;移动端构建在内存压力下可能降级到双线性。这些对 JavaScript 都不可见。绘制之后,canvas.toBlob(mimeType, 质量) 把画布按所选输出格式序列化为 Blob:PNG(无损 DEFLATE,质量参数被忽略)、JPEG(有损 DCT,质量 0.92)或 WebP(有损或无损,质量 0.92)。Blob 成为可下载的对象 URL。

没有字节离开标签页。图像在你的浏览器中被解码,在你的浏览器中被重采样,在你的浏览器中被重新编码。下载到的文件在本地生成,由浏览器的常规下载机制保存到你的设备上。唯一的网络流量是页面的初次加载和体积很小的 image-resizer.js 脚本(几千字节)。在页面加载完成后把浏览器切到飞行模式,调整大小工具仍然能处理你选择的任何本地图像。在一次调整大小过程中打开开发者工具的网络标签:零个携带图像数据的请求。整套架构是刻意精简的,因为 Canvas API 已经足够强大胜任这项工作;引入一个库只会增加字节和复杂度,并不会改变输出。

图像重采样简史

常见图片尺寸

现实世界的调整大小工作流

常见陷阱及其含义

隐私:图像永远不离开你的设备

每一个基于云的图像调整大小服务(iLoveIMG、ResizeImage.net、ResizePixel、BeFunky、Fotor、Pixlr 的调整大小端点,以及成打的「在线调整图像大小」服务)都会把你的文件上传到运营方的服务器、运行他们的调整大小算法,再把更小的图像作为下载返还给你。隐私影响并不轻微,因为照片经常包含可识别内容:人脸、背景中可见的地址、内部界面或机密文档的截图、儿童照片、私人场所拍摄的照片、含个人信息的文件扫描件。大多数运营方会发布隐私政策,承诺在一两个小时内删除上传内容并在传输中加密,较大的运营方持有 ISO/IEC 27001 认证。他们有很强的商业动机遵守这些政策。但「一小时内删除」并不等于「从未被看到」。在那一小时里,图像内容存在于运营方的基础设施中,对任何具备相应权限的进程或人员可访问,并按适用的留存政策出现在日志和备份中。

这个调整大小工具从不上传任何东西。整条管线(选择文件、解码图像、画布调整大小、编码、下载)都在你的浏览器标签内运行,使用 JavaScript 和 HTML5 Canvas API。没有上传、没有携带图像数据的网络请求、没有日志记录。你可以在调整大小之前打开浏览器开发者工具的网络标签来核实:没有携带图像内容的请求被触发。唯一的网络流量是页面的初次加载和一段很小的 image-resizer.js 脚本。在页面加载完成后把浏览器切到飞行模式,工具依然能在你选择的任意本地文件上工作,这是最强的经验证据,证明没有任何东西被上传。对含有任何敏感内容的照片(人脸、地点、内部截图、身份证件),浏览器侧的取舍显然是值得的。

什么时候用另一个工具更合适

常见问题

调整大小会降低图片质量吗?

缩小可以很好地保持质量。放大(使图片大于原始尺寸)会导致一些模糊,因为必须插值新像素。为获得最佳效果,请从您拥有的最高分辨率的源图像开始。

"锁定宽高比"有什么作用?

锁定时,更改宽度会自动调整高度(反之亦然),以保持图片的原始比例。如果您需要将图片拉伸或压缩到精确尺寸,请解锁它。

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

不会。所有大小调整都在您的浏览器中使用 HTML5 Canvas API 本地进行。您的图片永远不会离开您的设备。

我可以更改输出格式吗?

可以。无论原始格式如何,您都可以将调整大小后的图片输出为 JPEG、PNG 或 WebP。这对于在调整大小的同时转换格式很有用。

更多常见问题

DPI、PPI 和像素尺寸有什么区别?

像素尺寸(以像素表示的宽 × 高)描述图像实际包含的内容。PPI(每英寸像素数)描述这些像素在屏幕上的密度,是显示硬件的属性,不是文件的属性。DPI(每英寸点数)描述图像被打印时每英寸纸上落下多少打印机输出点。JPEG 或 PNG 中嵌入的 DPI 标签是给打印机的建议性元数据;它不会改变像素数据。1920x1080 的图像在任意 DPI 设置下都是 1920x1080 像素。要缩小一次打印的物理尺寸,要么减少像素数(用本工具),要么在发送打印前提高 DPI 元数据(在桌面工具的打印对话框,或 Photoshop 的图像大小对话框关闭「重新采样」)。

为什么我的放大图像看起来是糊的?

因为信息论说它必须如此。经典重采样(双三次、Lanczos、Mitchell)只能在已知源像素之间平滑插值;它无法发明从未被采样过的细节。奈奎斯特-香农采样定理设下了硬上限:源图像素栅格速率一半以上的频率在数学上无法恢复。把 200 像素的源图放大到 1920 像素永远会显得发软,因为新像素中有 90% 是插值得到的。要获得锐利的放大,请使用超分辨率模型(Real-ESRGAN、Topaz Gigapixel、Adobe Super Resolution),它通过在数百万张相似图像上训练过的神经网络合成合理的细节。

我是否应该为 Retina 或 HiDPI 屏幕调整大小?

是的。iPhone 和 MacBook 的 Retina 屏幕以及 Windows 的 HiDPI 屏幕以 2x 或 3x 的逻辑 CSS 像素密度渲染。一张在 Retina 屏幕上以 1200 个逻辑像素宽展示的英雄图,实际上绘制出 2400 个物理像素。通过 HTML 的 srcset 属性(现代响应式图像的标准)提供 2x 源图,浏览器会为每个访客的设备选择正确的版本。对于没有 srcset 的单一头像或英雄图,直接调整到展示尺寸的 2x:图像在 Retina 上会很清晰,在非 Retina 上略大,付出的代价是一点带宽,但避免了把小尺寸图像拉伸到高密度像素上时更显眼得多的模糊。

这个工具能离线工作吗?

可以。HTML5 Canvas API 是浏览器自身的一部分,不是一个被下载的库,因此没有单独的运行时需要缓存。页面按常规方式加载;打开之后,调整大小工具完全运行在浏览器内置代码之上,作用于你选择的任意本地文件。你可以在打开页面之后切到飞行模式并调整一张本地图像来验证。下载得到的结果在本地生成,由浏览器的常规下载机制保存,同样没有任何网络参与。

我应该在调整大小之前裁剪,还是之后?

先裁剪,再调整大小。裁剪通过丢弃不需要的边缘像素来设定宽高比(YouTube 的 16:9、Instagram 动态的 1:1、Stories 的 9:16、Open Graph 的 1.91:1)。调整大小再为选定的宽高比设定像素数。反过来也行,但浪费工作,你会重采样比所需更多的像素,然后在裁剪时再扔掉一部分。对本工具,请先用 Image Cropper 设定宽高比,再用本 Image Resizer 设定精确的目标尺寸。许多平台专用工作流(YouTube 缩略图 1280x720、Instagram 动态 1080x1080)会把两个步骤合在一起做;用两个专门工具按顺序做出来的结果,比想用一个被拉伸过的宽高比一次完成更干净。

是否有桌面或命令行版本的替代品?

有几个。批量自动化用 Node.js 的 sharp,它是规范的服务端库(基于 libvips)。ImageMagick(magick input.jpg -resize 1920x1080 output.jpg)和 GraphicsMagick 可以在任何 shell 中运行,处理超大文件不在话下。Python 的 Pillow(Image.open(p).resize((1920, 1080), Image.LANCZOS))是数据科学工作流的默认。要做像本工具这样的一次性交互式工作,但需要按核显式控制以及更多输出格式(包括 AVIF),推荐的浏览器替代是 Squoosh(Google Chrome Labs,同样完全运行在客户端)。Photoshop、Affinity Photo 以及 macOS 上的预览(工具 → 调整大小)覆盖桌面 GUI 用例。

相关工具