可调压缩质量的 JPEG 导出

带压缩质量控制的二维码 JPG 生成器

把链接或文字编码成二维码,再按你选择的宽度、质量和静区导出为二维码 JPEG。面板会实时显示文件的真实千字节数、模块总数,以及每个模块能分到多少像素,所以下载之前就能判断这张 JPG 还能不能被扫出来。免费、无需注册,任何图片都不会上传到服务器。

1. 二维码内容

二维码能装什么都行:链接、纯文本、Wi-Fi 字符串或 vCard 名片数据。

2. JPEG 导出参数

这几个参数决定导出的二维码 JPG 还能不能扫出来。

纠错级别

背景固定为白色,因为 JPEG 不保存透明度。

二维码变成 JPG 之后发生了什么

PNG 会把每个模块按准确的色值写进文件。JPEG 完全不这么做:它把图像切成 8×8 的块,把每一块转换成频率系数,然后丢掉编码器认为眼睛最不容易察觉的那部分。放在照片上,这笔交换看不出来;放在一张全是硬边缘的码图上,被丢掉的信息恰恰就是边缘本身。

三个会破坏二维码的特性

色度二次采样。 多数编码器保留完整的亮度分辨率,却把色度存成一半甚至四分之一分辨率,也就是 4:2:0 和 4:2:2 模式。亮度承载了模块的形状,所以调校得当的 JPEG 还能活下来。质量继续往下压,色度平面就会横向渗进相邻模块,低质量码图周围那圈彩色毛边就是这么来的。

硬边缘上的振铃。 把从黑到白的突变做量化,两侧都会过冲,于是在每个模块周围留下一圈圈很淡的同心带。质量 0.9 时这些带子比背景高几个灰阶;质量 0.5 时它们已经宽到让解码器把一行的第一个深色模块读成两个。

没有透明度。 JPEG 存不了 alpha 通道,未绘制区域一定是一种实色,而格式没有地方记录这是哪种颜色。这就是本页的背景被锁死为白色、而不是作为一个选项提供的原因,也是二维码 JPG 放到深色网页上仍然自带一圈白框的原因。

决定能不能扫出来的那个数字

在任何压缩之前,用导出宽度除以总格子数。总格子数等于模块数加上两倍的静区,所以 3 号码配 4 模块静区是 29 + 8 = 37 格。900 像素时每格 24 像素,压缩余量极大;111 像素时正好 3 像素,质量低于 0.85 就要开始丢扫描了。预览下方的读数会实时显示这个数字。

  • 每模块不到 2 像素:屏幕上就解不出来,摄像头更是稳定失败。
  • 3 到 4 像素:屏幕和平板扫描没问题,用手机摄像头拍就不稳。
  • 5 到 8 像素:打印出来在正常距离能扫。
  • 10 像素以上:适合社交平台,因为平台还会再压一次你的文件。

二维码图片该用 PNG、JPG 还是 SVG?

后续还要缩放、改色,或者要透明背景,就选 PNG。目标位置只收照片、文件要经过邮件,或者页面本来就是固定白底,就选 JPG。尺寸未知的印刷场景,就选 SVG。

格式是否有损是否透明最适合主要风险
PNG否是网页、文档、后续还要处理的图大尺寸时三者里文件最大
JPG / JPEG是否邮件签名、白底网页、拒收 PNG 的表单质量一降模块边缘就发糊
SVG矢量无损是印刷、嵌进 HTML、品牌物料很多手机扫码工具不直接打开该文件

实际用得上的参数组合

下面这些组合扛得住「生成 → 手机拍」这一趟往返,长度按大多数人实际粘贴的内容估。它们是起点而不是规则:如果预览报告每模块少于 5 像素,就把宽度再加上去。

用在哪里宽度质量纠错级别说明
邮件页脚里的链接600 px0.90M邮件客户端会缩小图片,要留余量
网站或落地页900 px0.92M视网膜屏上清晰,短内容还能压在 10 KB 内
朋友圈、小红书、领英1200 px0.95Q平台上传时还会再压缩一次
传单,A5 300 dpi1500 px0.95M打印约 4 厘米见方,还有富余
海报、易拉宝2000 px1.00L远距离观看,模块尺寸比信息密度重要
带长查询串的 URL1600 px0.95L内容越长版本号越高,模块越小

常用打印分辨率对应多大

打印分辨率是每英寸点数,所以用像素宽度除以 dpi 就是实际物理尺寸。900 像素的二维码 JPG,在 300 dpi 的传单上印成 3 英寸见方,在 150 dpi 的海报上是 6 英寸,在大幅面机器常见的 100 dpi 下是 9 英寸。反过来推算更实用:量好你有的空间是多少英寸,乘以打印机 dpi,按那个宽度或略高导出。

印刷有一点要提醒:把小尺寸导出的 JPEG 放大,是在重采样一个已经有损的文件,打印机还会再量化一次。请直接按最终尺寸导出。如果一定要超过 2000 像素地放大,请改用主站 二维码图片生成器 走 SVG 矢量路线。

二维码 JPG 常见问题

二维码存成 JPG 还能扫出来吗?
可以,前提是压缩之后每个模块的边缘仍然清晰。质量 0.9 以上、每模块至少 3 像素的二维码 JPG 基本一次就能扫出。把质量降到 0.5,或者把图片尺寸压得太小,编码器就会开始抹平解码器用来定位三个回字形的边界。
二维码 JPG 比 PNG 小吗?
通常不会。二维码是纯两色平面图,PNG 用无损方式压缩平面色几乎不费力气;而 JPEG 要为图像里根本没有照片细节的边缘做分块编码。只有在像素尺寸很大时 JPG 才占优势:PNG 体积随像素数增长,JPEG 体积随细节量增长。
为什么二维码 JPG 永远带一圈白底?
JPEG 没有 alpha 通道,无法存储透明度。没有画到的部分会变成一种实色,而格式本身没有地方记录是哪一种颜色。白色也是正确选择:扫码时摄像头衡量的是深色模块与周围表面的差异,白色静区给出的差异最大。
打印前应该用多少 JPEG 质量?
用 0.95 以上,并且直接按打印分辨率导出,不要事后再放大。300 dpi 下打印 3 英寸见方的二维码需要 900 像素宽。如果先导出 300 像素再让打印机放大,打印机是在重采样一张已经有损的 JPEG,模块边缘会被模糊两次。
图片要多大才够?
先数模块数,加上两倍的静区,再乘以 3 到 4。3 版二维码是 29 个模块宽,四边各留 4 模块静区就是 37 格,因此工作下限是 111 到 148 像素。本页预览下方会直接显示真实模块数和得到的每模块像素数,不需要估算。
二维码 JPG 可以改颜色吗?
前景可以换成任何相对白色背景足够深的颜色,对比度保持在 4:1 以上,深绿、藏蓝、近黑都可以,浅黄和浅灰不行。由于 JPEG 把色度和亮度分开存储,低质量还会削弱边缘像素的饱和度,所以彩色二维码比纯黑白的更早扫不出来。
JPG 和 JPEG 是一个东西吗?
是同一种格式。JPEG 是制定该标准的组织名称,JPG 只是因为早期 Windows 要求三个字母的扩展名而存在。qr-code.jpg 和 qr-code.jpeg 里的数据完全相同,本工具下载时使用 .jpg 扩展名。

接着做