有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

也许您刷到过这样的图片, 微缩图时呈现的是图像A, 当您点击图片后, 又是别的一幅图像B, 惊奇的您再三确定, 这简直是一张静态图片, 并非GIF格局的单次轮回动图, 即即是进修过图片建造的读者, 估量一时半会也很难说清晰此中的道理, 本文将为您具体阐发此类埋没图的显示道理, 以及介绍一种用Photoshop建造埋没图的最简单方式 。
【有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理】埋没图介绍
下面这张图片就是一张埋没图, 但不是所有读者都能看到两幅图像, 起首您要确定手机系统的夜间模式是封闭的, 然后您阅读本文的平台, 还要撑持点击图片后缩放;又或者有些读者看到的是两张图片的叠加结果, 这是因为您查看图片的布景是灰色, 而不是纯白色或者纯黑色 。

有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

把两张图像提掏出来如下图:
有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

可以看到, 两张图片都是灰色图, 这是因为灰色图中每个像素的R、G、B值都相等, 不包含颜色信息, 这样更轻易实现两张图片在分歧布景下的彼此埋没 。
埋没图的道理
埋没图一般都是利用32位的PNG格局, PNG是一种常用的静态图片格局, 与jpg最大的分歧是, PNG拥有R、G、B和Alpha四个通道, 而jpg只有R、G, B三个通道, 此中Alpha通道是透明通道, 能储存0~255的256(2^8, 32位图)级的透明度 。 埋没图的关头, 就在于透明通道的操纵, 所以不带透明通道的图片格局无法建造埋没图 。
有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

我们想象一张半透明的图片, 显示器在给我们展示这张图片时, 不成能让显示屏变得半透明的, 显示屏必需选择一个布景来展示这张半透明图片, 常作为布景的有网格图案、灰度、白色、黑色等等 。
有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

在绝大部门平台上, 会利用白色或者黑色作为透明图片的布景, 或者在微缩图时用白色做布景, 当您点击图片后换当作黑色布景, 恰是这种布景切换, 才实现了埋没图的结果 。
埋没图的数学道理阐发
这里我们必需要领会图片在屏幕中的显示道理, 假设PNG图片中RGB为一个归并图层A, 透明通道为图层α, 布景图层为B, 显示器要显示的结果为F, 此中布景图层B处于最基层, 那么有公式:
有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

F=α·A+(1-α)·B;
我们的智能设备就是经由过程这个公式来计较的, 最终把图片结果输出到显示屏, 此中透明图层α, 描述了图片和布景之间的加权值 。
对于PNG格局的每个像素, 都有(R, G, B, α)四个量来描述, 灰度图片中R=G=B, α我们理解为透明度的话, 取值规模就是0≤α≤1 。
对于白色布景, 像素值就是(0,0,0,1)
对于黑色布景, 像素值就是(255,255,255,1)
对于一张埋没图X=(R, G, B, α)来说, 我们需要实现的结果是:
有趣的隐藏图,不同背景显示不同图像,详细分析隐藏图的原理

文章插图

与白色布景夹杂获得图像A, 与黑色布景夹杂获得图像B, 图像别离与白色布景或者黑色布景夹杂之后有公式:
A=α·X+(1-α)·白色布景
B=α·X+(1-α)·黑色布景
我们把R、G、B的规模也界说在0~1(对应0~255)之间, 而且同一用R暗示, 那么公式可以暗示当作:

推荐阅读