“图片放大为什么会变糊?”这句话,几乎每位做设计、摄影或者视频后期的人都问过。细想一下,这背后正好站着两代不同的解决思路:传统插值算法靠数学规则“猜”像素,AI超分辨率靠海量数据学规律来重建细节。今天就把这两条路线都摊开讲清楚。
我自己处理过老照片、商品图、游戏截图,早期也靠PS硬扛过各种放大需求。刚开始以为无非是换个算法,后来把底层原理理顺,才真正搞明白为什么有些图放大后是虚的、有些图能直接放大好几倍还保留细节。下面这套经验,从像素采样讲起,一直聊到传统算法的边界和AI超分辨率的突破逻辑。不堆公式,读完你会对工具选择和参数调整有底气得多。
1. 从像素说起:放大到底在“放大”什么
1.1 数字图片的本体是一张稀疏的采样网格
我们在屏幕上看到的画面,很多人下意识把它当成一张连续的“画”。但数字图像的真实形态,其实是一张非常规整的二维网格,每个格子存一个颜色值,这叫像素。拿一张1200万像素的照片来说,就是大约4000乘3000个采样点,每个点之间有明确的距离,并不存在“格子之间的画面”。
为了把这个关系说得更生活化,可以想象隔着一扇纱窗看风景:你透过纱窗的孔洞能判断外面是树、是楼、是街道,但纱窗孔洞之间被遮住的部分,你并没有真正看到。数码相机传感器干的就是类似的事——光线被一个个感光单元采集,单元之间的连续信息被丢掉了。所以图片本身就是“离散采样”的结果,不是完整的物理世界。
当我们要把这张图放大,比如从1000像素宽变成4000像素宽,本质是在做什么?屏幕物理尺寸就那么大,用户唯一能改的是把每个像素占更多屏幕区域,但要让图像保持清晰,必须在原来每两个采样点之间再插入三个新点。真正的问题是:这三个新点的颜色该填什么?没人能告诉你准确答案,因为传感器从未记录过这些位置的光线。
这就是整个“放大后变糊”问题的起点。所有放大算法,本质上都在做同一件事:给未知位置赋一个尽量合理的值。
1.2 放大的本质:对未知信息做一次推断
为了更直观,我拿一个具体场景说明。假设原图只有2乘2像素,左上角是黑色,右下角是白色,要把它们放大成4乘4。目标图的16个像素里,真正能直接照搬的只有4个角落上的值,剩下12个位置全都落在原图坐标的“半空”里。
比如目标图里坐标(2,2)这个点,对应回原图的位置可能恰好是(1.3, 1.3),也就是离左上角黑像素近一些、离右下角白像素远一些。该填深灰还是浅灰?一种朴素的思路是看它离谁近,近的就直接拿谁的值——这就是最近邻法;另一种思路是认为颜色应该是渐变的,离黑色越近越黑,离白色越远越白——这就是线性插值的雏形。
传统算法为了推断这些未知位置,通常会提前做一个假设:图像信号是平滑的,相邻像素之间很少出现剧烈跳变。这个假设对大部分自然图像的大部分区域来说都成立,比如蓝天、皮肤、墙面,颜色确实是平缓过渡的。但问题也正出在这里:一旦遇到头发丝、衣服织纹、树叶边缘这类高频细节,平滑假设就不灵了。算法只能把这些区域处理成一片“混乱平均值”,于是我们看到的就是发虚的边界、糊成一团的纹理。
还有一点比“算法不够聪明”更底层——信息论层面上的缺失。当一张照片被拍摄下来,那些比传感器采样间隔更密集的细节,已经彻底丢失了。放大并不能把已经丢掉的信息变回来。任何算法做的都不是“还原真实细节”,而是“通过有限线索重新猜测大概率细节”。这个前提非常重要,想通了它,你就能理解为什么AI超分在某些情况下会“无中生有”,也能理解它和传统算法的根本区别。
1.3 有没有真正无损的放大方式
经常有人问:既然这些算法都是猜,那有没有无损放大的办法?答案是:对于位图图片来说没有。除非图片在制作阶段就包含矢量数学描述(像SVG图形、AI绘制的矢量形状那样),否则位图一旦固定到一个分辨率,信息量就锁死了。
不过,如果原图本身就来自高分辨率源材,只是你手上的版本被缩小过,那另当别论。比如从设计稿导出的缩略图,再放大回原尺寸,理论上存在信息可恢复的空间,因为图片内容本身符合某种可预测规律。这也解释了为什么AI超分在处理CG渲染图、游戏截图时效果格外好——画面里有大量规律重复的纹理和清晰边缘,模型很容易学会它们的长相。
但最麻烦的是老照片、监控截图、网络上下载的小图。这些图在诞生那一刻起,细节信息就已经是残缺的。放大这类图,本质上是做一次“创作性补全”,不是在原图上做无损还原。明白这一点之后,我们对各种算法的期待值就能摆正了。
2. 传统插值算法:从最近邻到 Lanczos,补出来的东西能信多少
2.1 最近邻:什么都不猜,直接复制
插值算法里最原始的一档叫最近邻法。原理和它的名字一样直白:新像素点映射回原图坐标后,找离它最近的那个像素,把颜色原封不动复制过来。
它的优点是速度快、边缘极其锐利,不会产生任何模糊过渡。缺点是放大倍数一高,画面会呈现明显的阶梯状“马赛克”。比如一个有弧度的黑色圆环,放大四倍之后圆弧边缘会变成一块一块的方形凸起。所以只要场景里稍有些曲线或斜线,效果都很难看。
但最近邻并没有被淘汰,用它来处理像素画反倒是最合适不过的。像素画的设计单位本来就是一个个小方块,放大之后继续保持硬边缘,反而最能呈现原始造型。在Photoshop的图像缩放里,把重采样方式选成“邻近(硬边缘)”专门干这个。如果你给像素画用了双三次,结果就是一笔糊涂账。
2.2 双线性插值:让颜色平滑过度
既然最近邻让边缘太生硬,那让新像素点参考周围多个已知点,按距离加权平均,是不是更好?双线性插值就是这么设计的。它只用像素点周围最近的四个点参与计算,先在一行上做一次线性权重,再在另一行方向上做一次,所以叫“双”。
举个例子,新点映射回原图的坐标是(3.4, 6.2),程序会先找出它周围最近的四个像素(3,6)、(4,6)、(3,7)、(4,7),然后根据0.4和0.2这两个偏移量分配权重:离哪个点近、哪个点影响更大。整个过程就是把四个点的颜色做了一次二维的加权平均。
双线性比最近邻顺滑很多,尤其适合低倍率放大,比如放大1.5倍、2倍这种场景。但它的代价是视觉上的“柔和感”太重,像素之间的过渡被磨成一片均匀渐变,细节纹理被当成噪声平均掉了。你把一张长满草的照片用双线性放大两倍,草叶会立刻变成绿糊糊,再谈不上根根分明。
2.3 双三次插值:目前最常用的默认选择
双三次插值可以看作双线性的升级版,它不再只拿周围4个点,而是会用4乘4共16个点参与计算,并且每个点的权重不是简单线性关系,而是用三次多项式函数来计算的。这样拟合出来的颜色曲面更平滑,边缘的过度也更加自然。
几乎所有图像软件都把双三次插值设为默认缩放选项,Photoshop、Lightroom、各种图片查看器里那个“平滑”或“高质量”的重采样,基本都基于这个思路。双三次在大多数照片放大场景下表现确实比双线性好:锐度更高、过渡不生硬,也不会像最近邻那样出现明显的锯齿。
不过双三次也远非万能。放大倍率一旦超过三到四倍,它的极限就显露出来了:真实纹理无法重建,结果只是把原来的几个像素“抹”成更大范围的渐变,画面观感仍然绵软无力。另外在处理带有高对比度边缘的图时,双三次偶尔还会在物体轮廓周围产生一圈光晕,专业叫法是“振铃效应”,本质是高阶权重在某些像素点上的过冲。
2.4 其余算法:Lanczos 与频域类方法
在传统算法里还想再往上提升,就会遇到一类更高阶的滤波器,典型代表是Lanczos。它使用的核心权重函数是数学里的sinc函数,可以理解为一种更理想化的低通滤波器。它参考的邻域比双三次更大,运算更慢,但输出图像的边缘保真度确实更高,在高倍率下不容易出现那种“发面馒头”一样的软糊感。
Lanczos在视频处理软件里出场率很高,比如某些播放器开启“超采样”或后期软件切换成Lanczos缩放时,画面整体会更通透、更锐利。代价是运算量大幅度上升,细节边缘有概率产生过冲和振铃。所以遇到带有大量文字的截图,我一般不会用Lanczos放大,反而会用双三次或者干脆靠AI模型。
表格对比一下几种传统算法的特点:
| 算法 | 参考像素范围 | 放大观感 | 典型适用场景 |
|---|---|---|---|
| 最近邻 | 1个点 | 硬边、马赛克感强 | 像素画、线稿、需要在放大时不引入中间色的场景 |
| 双线性 | 2x2的区域 | 平滑但发糊 | 小倍率放大、实时渲染缩略图 |
| 双三次 | 4x4的区域 | 清晰度和平滑度均衡 | 照片普通放大、图像软件默认缩放 |
| Lanczos | 更大邻域(视窗口而定) | 通透锐利、边缘有过冲风险 | 视频后期、照片高倍率放大 |
2.5 为什么说传统插值算法的上限就摆在那里
看完上面几种,你会发现一个共同点:它们全是纯数学的局域加权,完全没有“识别画面内容”。无论输入是一只猫还是一盏台灯,算法看到的都只是一串颜色数字变化,它不可能知道猫毛应该如何一根根生长,也不知道台灯边缘的反光应该怎么走。
比如你把一只黑白花纹的猫脸放大到8倍,传统算法只能感应到黑白交界处的像素存在大量急剧变化,它会把交界区域反复平均,最终形成灰蒙蒙的过渡带,所有纹路细节都丢掉。想要让算法“脑补”出毛发感,不好意思,1980年代的计算思想里没有这个概念。
这个上限不是参数调优能突破的。除非我们能给计算机一张“内容说明书”,让它知道边界之后是什么物体,物体表面应该有什么样的纹理,否则它就只能靠局部颜色规律硬猜。而AI超分辨率,恰好就是在补这个缺口——不再只盯着周围几个像素做加权,而是直接学习“一幅正常的猫毛看起来应该是什么样”。
3. 还在用传统插值?那这几个实操招数能少踩点坑
虽然AI超分已经很强,但工作中难免遇到老软件、旧流程、临时快速处理的情况,传统插值还是绕不开。下面这些经验是我调图时积累下的,能帮你在纯手动阶段把糊感压到最低。
3.1 放大前先做清理,再谈放大
很多人的操作习惯是:拿过一张源图,直接Ctrl+T拉大。但源图如果本身带有明显噪点或JPEG压缩块状痕迹,放大后问题会同步放大。尤其是高ISO下拍的夜景照片,噪点颗粒会被双三次当成彩色纹理一起放大,最终成品那叫一个脏。
正确流程应该是先处理噪声,再缩放。即便是最简单粗糙的办法——放大前先做一次轻度去噪,或者把背景层的色噪磨掉——都能让下一步插值更干净。可以说这一步省下来80%的“脏糊感”。放大后再想清理,等于同时处理“原有噪声+算法造成的柔和噪音”,事倍功半。
3.2 放大倍率和次数的经验法则
如果是纯用传统工具放大,宁可一次做到最终目标尺寸,也不要“先放大两倍,再又放大两倍”分两次操作。原因很简单:每一次重采样都是一次加权平均,都会丢失部分高频信息。同样的最终尺寸,分两次处理等于给画面做了两次平滑揉搓,细节损失远大于一次到位。
反过来,如果当前软件支持小数倍率,比如放大1.5倍或2.5倍这种奇怪比例,也尽量用整数倍去凑。因为非整数倍放大时,目标像素和源像素之间的位置映射产生大量“相位偏移”,更容易出现分布不均的模糊感。比较现实的操作是:先按整数倍放大,再小幅缩放到最终尺寸,这样的视觉结果通常更干净。
3.3 一个容易忽略的技巧:在Lab色彩模式下放大
RGB模式下同时处理三个颜色通道,但人的视觉系统其实对亮度变化最敏感,对色彩的微小失真宽容得多。所以我会把图片转成Lab色彩模式,只放大代表明暗信息的L通道,两个色彩通道用相对更低阶的插值就行。这样能保住画面细节的主要载体——明暗关系,同时减少通道间交叉干扰。
这个技巧在放大后需要继续精修的商业图里特别好用,尤其是大面积纯色背景的商品图。RGB模式下三通道一起插值偶尔会产生微妙的彩色边缘,而Lab模式基本没有这个问题。缺点是转换色彩空间本身会多消耗时间,而且部分操作不能在Lab模式下进行,通常我会放大完再转回RGB做后续调整。
3.4 放大后锐化:不是越猛越好
传统插值带来的“糊”,本质是高频损失。用锐化把边缘重新强调一遍,是比较有效的补救。关键是锐化的度和半径要控制好。
我自己常用的策略是“两次锐化”:第一次在放大前用极小半径做基础锐化,让边缘在后续平均过程中退让少一点;第二次在放大后用“USM锐化”,半径根据目标图片尺寸定,一般1到1.5像素左右,数量保持在80%到120%。低于1像素的半径容易放大噪点,超过2像素则会在轮廓边上生出一圈白边,看着很假。
如果发现边缘出现光晕或白色轮廓,立刻把数量降下来或者把半径调小,别硬撑。锐化补不回丢失的纹理,它只能让已有的边缘更显眼,理解这点就不会过度依赖锐化。
4. 从“平滑猜测”到“语义重建”:AI超分辨率的技术逻辑
4.1 为什么机器学习能开出一条新路
传统插值最根本的问题,是它不知道画面里是猫还是灯泡。那么反过来想:如果我们用大量成对的高低分辨率图片去训练一个神经网络,让它看几十万张“猫毛低清图+高清图”的组合,它是不是就能学会“猫毛被放大后大概应该长这样”?
这就是AI超分辨率的基本思想。它不再依靠某个固定的数学核函数去计算权重,而是从一个包含大量图像规律的数据集里归纳出映射关系。模型内部并不是直接把低分辨率图“拉伸”,而是先理解输入图像的内容模式,再根据学到的先验知识生成高频细节。
具体的实现方式可以粗略理解成:网络内部有很多层神经元,层层提取特征,从像素亮度这些低级特征,一步步到边缘、纹理、局部结构,最终到“像不像一只猫”这种语义特征。训练时给模型看低清输入,让它输出一个高分辨率结果,然后把结果和真实高清图做对比,根据差距反向调整网络参数。重复千万次之后,模型就知道给定什么输入阵型,该填什么样的高频内容了。
4.2 目标函数变化决定了效果,而不只是网络层数
如果你接触过这几年的超分辨率研究,会发现大家讨论最多的不止是“层数多深”,而是训练目标怎么选。这直接决定了AI是给出一个“稳妥但不清晰”的结果,还是一个“清晰但有想象空间”的结果。
如果只用PSNR或像素误差作为训练目标,模型会倾向于填一个平均值的估计。原因是在像素层级上,把某个不明区域估成中间灰色,误差往往最小。这导致传统深度学习超分模型早期其实同样发糊,只不过比双三次好一些。2014年SRCNN刚出来时效果震撼,但现在回头看,输出的边缘依旧有点软。
后来学界发现,只用像素误差不行,得让模型学会“感知上像高清”。于是引入了感知损失和对抗生成网络(GAN)。简单说,训练时除了让最终图接近真实高清图,还要让一个判别器去分辨“网络生成的图”和“真正的清晰图”,期望判别器无法区分。这种情况下,模型会被逼着生成更真实的毛发、树叶、边缘细节,哪怕细节在原始低分辨率里根本不存在。
所以用GAN模型处理过的图,视觉冲击力极强,细看会发现算法确实“脑补”出了纹路。但也正因如此,AI超分处理后的图不能100%当作“原始真实信息的还原”,它更像是一种合成结果。遇到记录型图像,比如车牌号、工牌上的小字、需要精读的表格,不能指望AI把本来就缺失的字符“还原”正确,那些信息不是靠算法能变回来的。
4.3 为什么AI超分能超过传统方案那么多
把两张图放在一起对比,差别很明显:传统插值只是对原图信号做低通滤波和重采样,而AI超分是在“内容理解”的层面做重建。它知道草地应该长什么样、皮肤毛孔应该在什么尺度出现,所以输出会非常符合人对自然图像的预期。
举个例子,一张低分辨率的人像照片,眼睛周围只有几个像素。传统算法放大后就是一团带着颜色的圆斑,谈不上眼珠和睫毛的分界。而训练充分的AI模型会识别出“这大概率是一只眼睛”,再根据大量人脸数据把眼睑曲线、瞳孔反光、睫毛走向这些高频结构补回去。成片观感一下子从“放大版马赛克”变成“相对清晰的人像”。
这种“无中生有”的能力也是一把双刃剑。它能让你达到海报印刷所需的视觉清晰度,但也可能把一团根本没拍清楚的物体“脑补”成另一个相似但错误的东西。所以专业工作流中,AI超分结果需要人眼复核,尤其处理文字、人脸、商标这类敏感信息时,别直接拿去交付。
5. AI超分辨率落地实操:模型选择、参数心得和处理流程
5.1 我常用的工具与模型匹配逻辑
市面上能接触到的AI超分方案不少,既有商业软件也有开源项目。商业软件里我试过Topaz Gigapixel AI,优点是操作界面友好、模型匹配预设完善,对人像和普通风景图有很好的默认效果。开源路线里Real-ESRGAN和ESRGAN是代表性方案,自由度更高,适合批量处理和有明确风格偏好的情况。
选哪个工具不是最关键,关键是模型选对。我用Real-ESRGAN举例,它官网和常用版本里内置了几个不同倾向的模型,大致可以这么分类:
| 模型倾向 | 适用内容 | 实际感受 |
|---|---|---|
| 通用照片模型 | 自然风景、人像外拍、生活照片 | 细节自然、噪声控制均衡 |
| 通用视频模型 | 视频抽帧、混合内容、压缩痕迹明显的素材 | 对伪影容忍高、输出更平稳 |
| 动漫/插画模型 | 二次元图片、CG插画、游戏截图 | 边缘干净、色块平整、避免过多“滤镜感” |
这里可能有不严谨的简写,实际操作时先查一下自己下载版本支持哪些模型名。如果只是随手处理一批老照片,我通常选通用照片模型;如果是截图类或者插画类素材,会切到动漫模型,否则容易出现莫名的“油画感”或过度平滑的皮肤。
5.2 用命令行批量处理的标准流程
开源方案通常以命令行工具或独立程序形式发布。以Real-ESRGAN的Vulkan版命令行为例,最基础处理一张图的命令类似下面这样:
# 1. 尽可能把原始JPEG先无损转成PNG,避免额外压缩干扰 ffmpeg -i input.jpg -y prep.png # 2. 调用Real-ESRGAN做4倍超分辨率重建 realesrgan-ncnn-vulkan -i prep.png -o output_4x.png -n realesrgan-x4plus -s 4-n参数指定模型,-s参数指定放大倍数。假设输入图只有800像素宽,输出会变成3200像素宽。如果临时只要2倍结果,可以改-s 2。一些版本还提供了人脸增强开关,处理合影照片或人脸特写时会自动对人脸区域做额外优化。注意不要盲目对风景图也开启人脸增强,这会浪费算力,有时还会在非人脸区域产生奇怪的变化。
如果源图质量很差,尤其是带有明显年代感的老照片,建议把处理顺序排成:先手动修一下明显污点和划痕,再做超分。否则算法会把裂纹误当作细节放大,最终画面会有一种“伤痕累累”的厚重纹路。
5.3 参数选择背后,我的一套管用手法
想要让AI超分的效果真正可控,不能拿到软件就默认4倍猛拉。我一般会先问自己一个问题:最终这张图要用在哪?
这就涉及倍率选择的实际逻辑。如果图片最终只是发布到屏幕,通常不需要超过2倍或4倍的数字游戏。很多模型默认输出4倍,但把一张1080P截图直接拉到8K,视觉上未必比拉到2K更好,反而将模型“脑补”能力放大,产生了过多不存在的纹理。如果是在电脑上大屏看,2到3倍通常已经足够。
放大完成后,我先以100%比例检查局部:皮肤是否出现塑料感、叶片边缘是否有彩色噪点、建筑线条是否变成波浪状。如果发现问题,一般不是整套流程重来,而是切换成更保守的模型重跑一次,或用较低倍率输出后再用传统双三次补到目标尺寸。这个“多模型叠用”的思路,我试下来比单一模型硬拉到底要好。
让一个经验丰富的模型去重建大量高频细节,输出文件尺寸会显著增大,但也别看到一个500KB的PNG就怀疑失败了。AI生成的高频细节文件确实比传统插值的输出大很多,这是正常现象。
5.4 纹理真实度的调整心得
谈到GAN模型,就绕不开过度平滑这个痛点。早期我用某些模型处理完人像,皮肤的细纹和毛孔几乎全部被抹光,整张脸就像蒙了一层塑料膜。原因是模型在几十万训练数据里看到的人像,大多偏向于后期精修的“美颜感”,所以注意力全放在“生成一张好看的脸”上,而不是“还原皮肤的物理粗糙度”。
后来我的处理方法是:超分完成后,把输出图放在原图上面,用20%到30%的不透明度叠回去。这样AI生成的细节被保留主体结构,但原始采样里的颗粒和噪点也能透出来一点,视觉上更自然。又或者在最终输出前做一个轻微的颗粒添加,把过度干净的色块打散。这类方法能不能用,取决于你追求“锐利清晰”还是“真实质感”,但没有绝对对错。
6. 常见问题与排查技巧实录
6.1 快速定位问题的排查表
做图像处理的时间一长,遇到的问题归纳起来无非那么几类。我给它们列了一个速查表,遇到情况先照这个方向找原因:
| 现象 | 可能的根因 | 优先处理方式 |
|---|---|---|
| 放大后整体发糊 | 插值算法过于平滑 / 输入源本身分辨率太低 | 换用AI超分;控制放大倍率 |
| 边缘出现白色光晕 | 锐化过度 / Lanczos振铃 | 降低锐化数量,改用双三次或AI模型 |
| 皮肤像塑料 | GAN模型过度美颜 | 叠回原图提高颗粒感;切换通用模型 |
| 文字和数字轮廓错乱 | 小字号文字信息缺失 | 不用AI硬拉;回源重排或转矢量 |
| 颜色鲜艳度严重下降 | 色域转换或模型色彩偏好 | 处理后做一次白平衡和饱和度微调 |
| 老照片修复后太“干净” | 模型把颗粒噪声和划痕一并清掉了 | 分层控制降噪强度,适度保留颗粒 |
6.2 为什么有些图“越修越假”
判断一张超分图是否“假”,最有效的办法不是看清晰度,而是看纹理尺度。真实照片的边缘不是平滑到极致的,总有一些不规则扰动;而AI模型输出中,某些频率的成分会消失,看起来过度纯净。
有一回我处理一张胶片扫描老照片,整个画面做完后颜色鲜亮、边缘锐利,但那种胶片颗粒感完全消失了,照片反而失去了时代感。后来我重新处理时,把胶片颗粒单独提取出来叠回画面,整体观感才恢复。这说明AI超分不能无脑用,最终目标仍是“服务观看体验”,而不是“追求技术指标”。
6.3 打印场景中的超分辨率预期管理
你可能见过一些攻略说“低分辨率图片也能打印大海报”,这话有前提:视觉观看距离足够远。打印本质上需要足够多的物理墨点来构成细节,一般建议300DPI左右。一张分辨率只有800乘600的图要打印成A4尺寸,物理DPI远低于300,无论AI超分重建得多漂亮,近距离观看依然能看出合成痕迹。
在这个场景,我的建议是把超分当作“辅助提升视觉平滑度”的手段,而不是让模糊照片变成高质量印刷作品的魔法。AI能让草稿显影清晰一点,但不要拿重要客户的物料去做这种赌注,回源找高分辨率文件永远是最优先的事。
6.4 批量处理时要警惕的“模型惯性”
做大量老照片处理时,最容易忽略的问题是模型每张图的反应可能不一致。因为噪声分布、色彩偏移、画面内容各有差异,同一套参数跑下来,某些图效果极好,某几张却会出现奇怪颜色带或边缘过冲。
所以即使有批量处理条件,也必须先抽样抽取十张以上不同场景的图测试,确认没有明显翻车再跑全集。更好的习惯是保留原文件和处理参数记录,用户觉得哪张不合适时,能快速定位到“用的哪套模型、哪个倍率、什么预处理”,方便复现和重处理。这个操作起来前期略麻烦,但整体项目落地的效率反而提升不少。
最后再分享一个小习惯:无论是传统插值还是AI超分,放大操作都应该尽量往最终输出尺寸做,不要先放大五倍、再缩到目标大小,白白损失两次质量。处理完的图片存一个PNG或TIFF无损格式作为中间层,等所有工序结束再统一导出JPEG。这些细节看似不起眼,但对画质的影响非常实在。做图这行,多数差距不是来自“哪套算法更高级”,而是来自每一步是否都留有余地,是否理解工具背后的原理。