表情包压缩后边缘起毛刺,多半是把「表情尺寸」调到了小档。这个页面上只有两个控件:表情尺寸和压缩等级。等级动的是存的时候丢多少细节,尺寸动的是先按多大边长重画一遍。后者影响更大——边长一缩,描边、笔画、圆角都只剩一两个像素宽,重画时被抹平,编码再被量化,边缘就起了毛刺。

压缩等级决定量化强度,动的是颜色和高频细节;表情尺寸决定输出边长,动的是像素本身的数量。先缩尺寸再编码,等于让细节在两道上各损失一次,小档看起来脏,原因在这里。
GIF 还多一层:调色板只有 256 色,渐变和大面积纯色交界处会出现色阶。静态图没有这一层,所以静图对尺寸档更宽容。
很多人先拉到最小档,发现糊了,再把等级从 30 提到 70,这时候已经晚了。边长缩掉的像素回不来,提等级只是让剩下的像素少丢一点。
正确顺序是从大档往小档试:先大尺寸配等级 70,看体积够不够;不够降一档尺寸;还不行才动等级。一次只改一个变量,才判断得出是哪一项起作用。表情包压缩后边缘起毛刺,九成是这两个变量一起改了。
第一步,打开表情压缩,点「选择图片压缩」上传,JPG、PNG、GIF 都收。
第二步,「表情尺寸」先选「大尺寸」,别急着从小档开始试。

第三步,「压缩等级」保持 70,这是页面标了推荐等级的档位。
第四步,点「开始压缩」,下载后先看体积,再看边缘。
第五步,超了就回上一步,把表情尺寸降一档重压,等级不动。动图和静图分开试,GIF 的体积对尺寸更敏感。
动图先减帧:走GIF压缩把帧数抽稀,动作会略卡,但边长和颜色都能保住。
表情四周有大片空白,先裁掉再压,空白区同样占体积。
平台卡的是精确体积,直接用图片压缩指定大小填目标值,比反复试档位快。
平台要的是边长和体积同时合规,只压体积不改边长,常常白忙一场。表情包压缩后边缘起毛刺的返工,多数就出在只动等级这一步。
小尺寸档一定更模糊吗?
不一定。原图本来只有一百多像素宽,缩到小档几乎无损;被压糊的是那种原图八百像素、描边只有一像素的表情。
等级 30 和尺寸小档,哪个更伤?
尺寸。等级只丢细节,尺寸丢的是像素本身,缩下去的信息补不回来。
表情包压缩后边缘起毛刺,问题出在先重画再编码这两道。档位从大往小试,一次只动一个参数,边缘能干净很多。