证件照换底色后发丝发红,不是新底色选错了,是旧底色留在边缘没被擦干净。换底色分两步:先把人从原背景里分出来,再把新颜色填进去。分出来的边缘不是硬边,而是一圈半透明像素,它等于人物色和原背景色的混合值。红底照片换蓝底,这圈像素里仍然带着红,填上蓝之后放大,就看出一圈红边。

抠图的输出带透明通道,边缘像素的透明度在 0 到 1 之间。半透明的意思是这里既有前景也有背景,它的颜色是两者按比例混出来的,不是纯人物色。合成到新底色上时,混进去的旧底色不会被替换,只会被稀释,所以反差越大越明显。
红换蓝最扎眼,因为两者在色相环上几乎对着;白换蓝轻一些,白底本身接近中性;同色系互换,比如深蓝换浅蓝,基本看不出来。证件照换底色后发丝发红,几乎都栽在反差最大的那一组配色上。
头发丝只有一两个像素宽,整根都处在半透明状态,等于整根都带着旧底色。肩膀和衣服的交界、耳朵后面、下巴的阴影,同样是半透明像素密集的地方。
放大到 200% 看这几处,比看整张图更容易判断。整张缩略图上一圈红边会被当成肤色偏暖,看不出问题。
第一步,打开证件照换背景,右侧「照片尺寸」先点「一寸照片 295×413」,尺寸定了再谈底色。
第二步,「背景色」点蓝色块。想要透明底就点最右边那个带斜线的方块,导出的 PNG 会保留透明通道。

第三步,点「上传证件照」把原图传上去,系统自动抠图并填色。
第四步,下载后放到 200% 看发丝、耳后、肩线三处,重点看有没有一圈和底色不同的边。
第五步,边缘干净再把体积压下来:走证件照压缩,压缩等级 70,尺寸选「保持原始尺寸」。
站内没有专门修边的工具,染色的边缘回不去。能做的是换一张底子干净的原图重换:白底或浅灰底拍的照片,换任何颜色都最轻;红底蓝底的照片,换到反差大的颜色上一定带边。
拍摄时让主体离背景远一点,背景虚化、边缘干净,抠出来的轮廓也干净。证件照换底色后发丝发红这类问题,与其事后修,不如在拍摄时把退路留好。
换成白底也会带边吗?
会,只是看不出来。白底和浅色衣服、浅色皮肤反差小,红边被冲淡,不代表没有。
透明底能避开这个问题吗?
不能。透明底只是不填新颜色,边缘那圈混了旧底色的半透明像素原样保留,叠到哪里都带着。
证件照换底色后发丝发红,问题在边缘那圈半透明像素。底色反差越大越明显,想彻底干净,只能从原图的背景下手。