前面几篇讲的“非破坏性”,都是把操作和结果分开记。这一篇要讲的智能对象,是同一套思路用在一个更靠底的位置上:这一层里装的是什么,和这一层现在被摆成什么样,分开放。
普通图层缩放时,像素是真的被改掉了
先把“糊”这件事说清楚。图层里存的是一个个固定数目的像素。你用自由变换把它拖大或拖小时,屏幕上要显示的像素数目变了,Photoshop 就得重新算出每个位置该是什么颜色——这一步叫 重采样。它是“改像素”,不是“改显示”。
拿一张 的图举例。缩小到 25%,目标尺寸是 。原始画面里每 个像素围成的一小块,最后只能有一个位置保留一个数值,其余 15 个被合并掉了。按一下回车确认,这一层从此就只剩 个像素,被合并掉的那些信息不是藏起来了,是不存在了。
再拖回 100%,需要 个像素,手上只有 个,多出来的四分之三只能参考相邻像素插值“编”出来。整张图会偏软、边缘发虚,而且回不到原来的锐度5。
更麻烦的是它会叠加。每按一次回车,图层里的像素就被替换成这一次变换算出的结果;下一次变换是在这个 已经被改过一遍 的结果上再算一遍。缩到 25% 确认、拉回 100% 确认、再缩回 25% 确认,来回几趟之后,结果会比一步到位缩到 25% 更差——误差是一层层串起来累积的4。
所以判断很简单:只要你打算反复调这张素材的大小或角度,就别在普通像素图层上做这件事。
智能对象把“内容”和“容器”分开
选中图层,右键选“转换为智能对象”,或者走菜单“图层 > 智能对象 > 转换为智能对象”。转换后,图层缩略图右下角会多一个小图标,这就是它在图层面板里的记号1。
这个图层从此变成了两件东西:
- 内容:一份完整的原始数据,原样存着,尺寸、像素一个不动。
- 容器:这一层在文档里的位置、缩放比例、旋转角度、变形,全都记成参数。
打个比方:内容像一张底片,锁在盒子里;图层在画布上显示的样子,是按当前尺寸“冲印”出来的一张照片。你改尺寸,换的是冲印规格,底片没被碰过。
内容只有一份,所以你把这一层复制几个副本,它们共用同一份内容。双击缩略图,Photoshop 会单开一个文档让你改里面;保存之后,主文档里每个副本一起更新1。也正因为内容被容器包着,你没法拿起画笔直接在智能对象上涂——想改里面的像素,只能进到内容里去改。
为什么改多少次尺寸都不累积损失
关键在渲染方式。普通图层是“在上一次的结果上再算一次”;智能对象是 每一次都从那份没动过的原始数据,直接算到当前的变换状态,中间不留下任何被改过的副本2。所以“缩 25% 确认、拉回 100% 确认、再缩 25% 确认”和只做最后那一次,得到的结果完全一样。
要注意的是,这并不等于“变清楚了”。有三个边界必须分清:
- 屏幕上看到的仍然是重采样结果。 缩到 25% 时,画面上就只有 个像素在承担这一层,放大看会觉得糙。这不是损失,是本来就只需要这么多像素;“底片”还是完整的,拉回去就能重新显示细节5。
- 放大超过原始尺寸,照样糊。 原始素材就是 ,拉到 ,多出来的像素还是得编。智能对象保住的是“原始数据没被动过”,不是“数据变多了”。所以它换来的是 可反悔,不是 更高的分辨率。
- 导出成片时同样要插值一次。 无论中间怎么折腾,最后落到输出尺寸的那一次计算,谁都躲不掉。
滤镜也变成了可以随时改的参数
普通图层上加滤镜,按下确定的那一刻,结果就写进像素了。之后想把强度调轻一点,只能退回历史记录重来,或者在图层上慢慢擦。
智能对象上就不一样:任何加在智能对象上的滤镜都会变成智能滤镜。它不是把结果烧进像素,而是把“用了哪个滤镜、参数是多少”记成一条记录,挂在图层下方那一行“智能滤镜”里,渲染时再照着算3。于是:
- 双击这条记录,滤镜对话框重新打开,参数随便改。
- 点它左边的眼睛,暂时关掉,看看到底值不值。
- 整条拖走就是取消;也可以拖到另一个智能对象上,把同一套效果复制过去。
- 那条记录右边默认有一个白色小方块,就是滤镜蒙版,用法和图层蒙版完全一样:涂黑的地方滤镜不起作用,涂灰是半强度。有一点要注意,这份蒙版管的是这一层上所有的智能滤镜,没法单独给其中一条加蒙版3。
只有智能对象才能挂智能滤镜。普通图层想用,走“滤镜 > 转换为智能滤镜”,Photoshop 会先帮你把它转成智能对象3。
什么时候该先转
打算反复调素材的大小、位置或角度,就先转成智能对象再动它;准备加滤镜、以后可能还想改参数,也先转。不确定转没转成功,看一眼图层缩略图右下角有没有那个小图标就知道了。
成本只有右键一步,而等图糊了再回头,是回不来的。
回头看这一路:蒙版记的是“哪里显示多少”,调整图层记的是“明暗和颜色怎么变”,智能对象记的是“这份内容被摆成什么样”,智能滤镜记的是“用了哪个滤镜、参数多少”。它们偷的是同一份懒——存下“做过什么操作”,而不是存操作的结果。只要记的是操作,就随时能改;一旦烧进像素,就只能重做。