为什么放大之后颜色看起来不一样了
一半是眼睛的问题,一半是像素的问题。小块被周围的深色轮廓压暗,同时它在屏幕上本来就已经被和轮廓混过一次了。
你填完一小块,觉得颜色偏深,跟调色板上那一格对不上。放大之后再看,它又对了。没有任何东西改变过——变的是它到达你眼睛之前经历了什么。这件事有两个独立的原因,一个在屏幕里,一个在你脑子里。
原因一:屏幕真的把颜色混掉了
当一幅画被完整地放进屏幕时,图像被缩小了。Numbrush 的画布长边是 1536 像素,而它可能被显示在一个宽度小得多的区域里。这意味着一个屏幕像素要代表原图上好几个像素,显示时会把它们平均起来。
关键在于,那几个被平均进来的像素里,往往包含轮廓。轮廓是接近黑色的细线,而小区域的周长相对面积很大——一块只有几个像素宽的区域,它的边界像素在总数里占的比例非常高。于是这一块最终画到屏幕上的那个颜色,是它本身的颜色和黑色按某个比例混合出来的结果。它确实变深了,这不是错觉。
放大之后,一个图像像素占据了好几个屏幕像素,不再需要平均,轮廓也退回到边上去了。你这时看到的才是那个颜色本身。
顺带说一个相关的技术细节。Numbrush 用来记录「每个像素属于哪个区域」的那张编号图,采样方式是最近邻的、关掉了 mipmap,上传时也不带任何色彩空间标记——因为它承载的是编号,不是颜色,任何平滑或者色彩转换都会把编号本身改掉。原画则是用无抗锯齿的纯色多边形绘制的,好让区域能干净地量化。所以上面说的那种混合发生在最终显示这一步,不发生在编号数据里。
原因二:同时对比
第二个原因在视觉系统里。人眼判断一个颜色的明暗,很大程度上是相对于它周围的东西来判断的,而不是绝对判断。同一块灰色,放在黑底上看起来浅,放在白底上看起来深。这是同时对比,是视觉里最稳固的现象之一。
填色图恰好是这个效应的极端案例:每一块都被深色轮廓完整地包围着。一小块被一圈黑边围住时,黑边在它周围视野里占的比例很大,会把它的表观明度往上推——也就是看起来比实际浅一点;但同时上一节说的像素混合又在把它实际画出来的颜色往下压。这两个方向相反的效应叠在一起,结果就是小块的颜色很难被准确判断,而且判断误差因块而异。
还有一个相关的效应:同一个颜色,在一块大面积里和在一条细缝里看起来会不一样,通常细缝里显得更暗更不饱和。所以一幅画里同一个编号的区域,明明是同一个颜色,在不同大小的块里给人的感觉就是不同的。这没有办法消除,只能知道它存在。
原因三:屏幕自己在动
除了以上两条,还有一批变化来自设备本身,而它们通常悄无声息。
- 自动亮度。环境光变了,屏幕亮度就跟着变,而这个变化是渐进的,你几乎察觉不到。填了二十分钟之后颜色「不太一样了」,很可能只是屋里的光变了。
- 色温自适应。有些设备会根据环境光调整整块屏幕的白点,让画面偏暖或偏冷。它的目的正是让你不察觉,所以它成功的时候你只会觉得颜色怪。
- 深色模式。界面背景从浅变深,等于把整幅画的外围环境换掉了,而根据同时对比,环境换了颜色的观感就会跟着换。同一幅画在浅色主题和深色主题下确实看起来不同。
- 视角。很多 LCD 屏幕在偏离正面观看时明度和色相都会漂移。手拿着设备时角度一直在小幅变化,所以颜色也一直在小幅变化。
实用的几条
- 要判断一个颜色的时候先放大。这一条覆盖了上面第一个原因的全部,成本只有一次双指操作。
- 判断颜色时看大块,不要看细缝。同一编号在大面积里的表现更接近它真实的样子。
- 尽量让房间的光保持稳定,尤其是在一次比较长的填色里。变化的是光的时候,人总以为变化的是画。
- 别在浅色和深色主题之间反复横跳之后去纠结颜色。跟随系统、浅色、深色三种主题都会改变画面的外围环境,选一个就用下去。
- 不要拿手机上的颜色去和印出来的东西比。屏幕是发光的,纸是反光的,两者的色域和白点都不一样,这个比较本身就不成立。
一个常见的误解
有人会以为这些差异说明 App 里的颜色不准,或者填进去的和调色板上的不是同一个颜色。不是这样。一个区域被填上之后,它的颜色就是调色板里那一格的值,中间没有任何调整、没有混合、没有透明度。
差异全部发生在这个值被画到屏幕上之后:显示时的缩小平均、你的视觉系统对周围环境的补偿、以及设备自己的亮度和色温调节。把画放大,这些里面最大的一个就消失了,剩下的也会小很多。
顺带一提,缩放范围是从整幅完整显示一直到 12 倍,所以你想看多近都可以。要确认一块颜色到底对不对,推到很大看一眼,是最省事的办法。
常见问题
为什么小区域的颜色看起来比调色板上深?
两个原因叠加。一是缩小显示时一个屏幕像素平均了好几个图像像素,而小块周长占比大,深色轮廓被混了进去;二是同时对比,被深色包围会改变一个颜色的表观明度。放大能去掉第一个原因。
放大之后颜色变了,是 App 的 bug 吗?
不是。填进去的就是调色板里那一格的值,中间没有混合也没有透明度。变化发生在显示阶段和你的视觉系统里,不发生在数据里。
深色模式会影响颜色观感吗?
会。界面背景是整幅画的外围环境,环境换了,同时对比就变了,同一幅画在浅色和深色主题下确实看起来不同。三种主题(跟随系统、浅色、深色)选一个用下去比来回切好。
为什么屏幕上的颜色和打印出来的对不上?
屏幕是发光的,纸是反光的,色域和白点都不一样,这个比较本身不成立。再加上自动亮度和色温自适应一直在小幅改变屏幕,所以不要去追这个匹配。
同一个颜色在大块和细缝里为什么不一样?
这是视觉系统的常见现象,细长的形状里同一个颜色通常显得更暗更不饱和。要判断颜色就去看这个编号在画面里最大的那一块。
拿真画布试一遍
Numbrush 是给成年人的数字填色:曼陀罗、玫瑰花窗和几何纹样,每幅十二色,窄的地方有放大镜,点错了没有任何代价。免费、离线、无广告、无账号。