图片压缩后出现方块,是压缩把画面切成8像素见方的块分别处理后,块与块之间的数值没接上。平滑的天空、墙面或皮肤上最先看到它,边缘像贴了小瓷砖。方格不是图片坏了,是块边界的落差被放大。

亮度信息按块处理,每8像素见方算一块,块内先转成一组频率系数,再按压缩等级决定保留多少。等级低时大量系数直接归零,块内只剩一个平均值,块边界那点落差就露出来了。
平滑区域最容易看出来。天空、纯色墙面、皮肤过渡这些地方本来就没有纹理,块边界成了画面上唯一的结构,眼睛一下就抓住。砖墙、树叶这类细节密集的区域反而把落差盖住了。
方块的尺寸是固定的,随放大倍数才显形。按100%看是一小片淡淡的格子,放大到400%能看出等距排列的栅格,边长正好对应8个像素。
第一步,把结果放大到400%,看方格是否等距、是否横平竖直对齐成栅格。块效应一定是规则的,不规则的斑块另有原因。
第二步,看它集中在哪里。集中在平滑区和渐变区,纹理区反而干净,这个分布就是块效应的特征。
第三步,拿同一张图另存一份PNG再压一次。PNG版没有方格,说明来自有损编码;PNG版也有格,问题在原图或截图环节,换工具也压不掉。
第一步,打开JPG图片压缩页,上传原图,先记下原始体积,后面判断降幅要用。
第二步,在参数栏把压缩等级从默认的70改到85,再点开始压缩。等级提高后被归零的系数变少,块边界的落差跟着变小。

第三步,体积仍然超出要求时,不要再往下压等级。改为在「宽(像素)」里把长边填到2000,「高(像素)」保持在原比例,用像素换体积,比继续降等级划算。
第四步,下载后按100%看一遍平滑区,方格淡到看不出再交付。
显示尺寸不到原图一半的网页配图,方块在页面上本来就看不见。缩略图、聊天里的预览图也一样,没必要为它反复调参数。
平台会二次压缩时,自己这边调得再细也会被覆盖,按平台建议的尺寸和体积准备就行。
想留一份没有方格的对照版,可以把原图走一次图片格式转换存成PNG。原图已经反复压过几轮的话,方格是上一轮留下的,这一轮改不回去,只能找更早的版本。
把等级提到100就没有方格了吗
会明显减轻,但分块这件事本身还在,只是落差小到看不见。代价是体积接近原图,压缩的意义也就没了。
后期锐化能把方格盖住吗
不能。锐化强化的是边缘对比,块边界也在其中,做完方格往往更清楚。
为什么图片压缩后出现方块只集中在天空
天空是平滑渐变,没有任何纹理替块边界打掩护。同一张图里的树木和岩石细节密集,落差被细节盖住了。
图片压缩后出现方块,判断顺序是:先放大确认方格是否等距,再看它集中在哪类区域,最后才决定动等级还是动像素。等级解决的是落差,像素解决的是总量,两件事别混在一次调整里。