标准蓝底写的是67、142、219,压完再取色,常常变成70、146、222,或者反过来掉到64、138、214。数值只差几个点,肉眼看是浅了一点、脏了一点,报名系统却可能直接判背景色不符。不是工具算错了,而是JPG对颜色本来就比亮度粗糙:色度两个通道各减半采样,再叠上更狠的量化,纯色也守不住原位。证件照压缩后蓝底变浅,问题出在这一层。

JPG编码先把RGB换成亮度加两个色度通道,再对色度做4:2:0采样:每2×2共四个像素共用一组色度值,颜色只剩四分之一,亮度一分不少。
对风景照几乎无损,人眼本就不擅长分辨细微色差。证件照的纯色背景不一样:只有颜色没有细节,任何一点色度偏差都露在空旷画面上。
采样之后还有量化。亮度用一张量化表,色度用另一张,后者步长明显更大,因为人眼对色差不敏感。步长大意味着同一个8×8块里的色度值被归到更少的档位,纯蓝要么整块偏亮,要么整块偏暗,边界还会被邻近的头发、肩膀拉过去一点。
两层叠加,纯色就飘了。飘的方向和幅度跟内容有关,没法用"加几"去补。
第一步,打开证件照换背景,在「照片尺寸」里选规格,一寸295×413,二寸413×579,按报名要求挑。
第二步,在「背景色」里点蓝色块。这一步把背景重画成恒定纯色,不是从原照片提取蓝色,值稳定在标准蓝上。

第三步,点「上传证件照」,处理完成后保存本地。到这一步背景已是干净纯蓝,没被光照污染过。
第四步,把这张图放进JPG图片压缩,选择尺寸保持「原始尺寸」,别顺手改宽高,改尺寸会重新采样。
第五步,压缩等级别停在最低档。默认的70适合大多数照片,证件照背景是大面积纯色,往上提一两档体积增加有限,色度被量化的机会更少。
第六步,下载后用取色工具在背景四角和中间各取一次色,看读数是否一致、离标准值多远。
原图的蓝底如果是拍出来的,有光照渐变、反光,边缘还有一圈深色,压缩只是把已有的不均匀压成色带,换等级也补不回来。这种情况先重换底色,再压。
另一种是底色本就不标准,比如偏紫或偏青的蓝。压得再轻也过不了比对,得改底色。
为什么证件照压缩后蓝底变浅,别的颜色没事?
背景是大面积平坦的单一色,色度采样和量化的偏差没有细节掩盖,全摊在明面上。有纹理的画面里,同样的偏差被盖住了。
把压缩等级调到最高就不会变色了吗?
偏差会小很多,但不等于零。色度采样这一步在编码里是固定的,只要存成JPG就有。要一点不差,得用PNG这类无损格式,代价是体积大不少。
证件照压缩后蓝底变浅,只差3个点会被判不合格吗?
看系统。有的只做粗略判断,差几个点不理;有的严格比对标准值。要求里写了具体RGB的,按标准底色重做,别赌容差。
证件照压缩后蓝底变浅,根源是色度被减半采样又叠了更松的量化。先把背景换成软件生成的纯色,再压一轮且别用最低档,最后取色复核。