背景引入:<br>幻影坦克——说实话~楼主表示也不懂这是什么梗,不懂为什么这种效果有个这样的名字。<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" >只是很多人这么叫。用大白话说就是“QQ聊天中,有人发了一张图A,但是你点击放大的一瞬间,马上莫名其妙变成了另外一张图B”,这么说可能还是很苍白,这样~来张效果图吧——请看:<br> <img class="BDE_Image" pic_type="0" width="560" height="560" src="
" ><br><br>上面那张图,你试着点击,百度贴吧会使用黑色背景供用户查看详情,这时候你会发现,之前的图片经过点击放大会变成另一幅图。这大概就是传说中的幻影坦克效果了~<br>其实~这效果要是精心设计一番的话,真的很美妙~于是乎,所有人都在刨根问底想知道是如何做的。这实际上涉及到了图层混合模式的运用,和一般的教程不太相同。因为涉及到了一些公式的推导,最终PS的操作命令步骤。那么接下来我们就看下:<br>如题,这是个精简版教程。意思就是……我不会对所有的混合模式进行公式和原理等等的分析,我觉得在座的各位,没有多少人想去看那些大篇幅铺天盖地、天花烂坠的原理解释。而且读这篇文章之前,应该也多少了解了一点原理,但是非战斗人员都希望直接了解制作步骤,既然这种图片效果涉及到混合模式,我还是会从公式上入手,来讲解制作过程中涉及到的图层混合模式应用的原理根据,这样理解了这些公式,自己操作的时候,就不会死记硬背——但是同时,这教程又是超详细的~该讲出来的,我绝对不会缺省,这点众小白放心。<br> <br> OK,废话不多说,在正式开始我们操作之前,先介绍几个混合模式及像素表达式,以及一些必备的图像基础,没有这些基础的,就当是补补课,有基础的,就当做是复习:<br>① 线性减淡(添加):<br>Img输出 = Img上+ Img下;<br>② 划分:<br>Img输出 = Img下/ Img上;<br>③ 反相:<br>Img输出 = 1 – Img ;<br>这些是什么意思呢?首先,既然两种背景(黑色与白色)下有两种显示效果,那么必须准备两张图片,这两张图片在一个PSD里面有图层顺序上下之分,我们用Img上和 Img下区分。这里有个问题,我们现在讨论的是图像的色彩值,所谓色彩值,就是某像素的像素值除以255得到的一个大于0小于1的值。所以,我们这里就用Img代表这个色彩值,比如Img上,就代表“上层图像的色彩值”,Img输出——代表最终输出的图像的色彩值。那么毋庸置疑,黑色图像的色彩值为0,白色为1.<br>完了再看一个问题:两张图层,调整上层图像的不透明度opacity,从100%直到0%,画布上输出的图像肯定也经历了“Img上——混合——Img下”这样的变换。用不透明度混合公式来表达,设Img上的不透明度为O,那么:<br>Img输出 = Img上 * O + Img下 * (1 - O);<br>O为0%时,Img输出 = Img下,这时候完全显示下层图像;O为100%时,Img输出 = Img上,这时候完全显示上层图像;而O介于0~100%之间,将显示上下层的混合图像。而在QQ聊天或者贴吧这样的环境下,没有像PS里面那种混合模式的处理,我们之所以能看到不同的图像,也无非就是在黑色白色两种背景下,图像的透明度起到的作用而已,明白了这一点,那么OK——<br>现在,我们假设最终制作出的图像为ImgR,这ImgR在白色背景下显示图像ImgA,点击放大进入黑色背景,马上变成图像ImgB~ 再假设ImgR的不透明度为O,加上前面交代的那些基础知识,我们是不是就可以列方程了呢?来——<br>① 白色背景下 :ImgA = ImgR * O + 1*(1 - O);<br>② 点击放大(黑色背景):ImgB= ImgR * O + 0*(1 - O);<br>不知道这两个公式大家是不是看懂了~简单解释下①,白色背景下,由前面不透明度混合公式可得:ImgR乘以其不透明度O,与白色背景混合~ 白色的透明度显然就是1-O,白色色彩值为1,那么我们会看到A图像,即:Img输出 = ImgA.同理可得公式②.<br>解这两个方程式,由①-②得:<br>③ ImgR = imgB / O ;<br>④ O = 1 – ImgA + ImgB ;<br> <br>推到这里其实已经得到PS操作步骤了,反应过来了吗?我们现在的目的是拿到ImgR,就要先知道O. 由④可知,要想知道O就需要计算1-ImgA+ImgB的值,根据前面介绍的混合模式公式,很容易转化为PS操作命令:首先计算图像A的反相,之后再和B做线性减淡(添加),接着由③可知,此时得到的O,需要做ImgB/O的操作得到最终结果ImgR~ 而根据前面的混合模式计算公式,ImgB/O即:将图像B与O做划分处理(注意划分有个图层顺序的问题,分母图层在PS中要置于上层).<br>好了,有了这些东西~我们马上就可以整理PS操作思路了~在这之前,还有个小细节要交代,因为在白色背景下显示ImgA,黑色背景下显示ImgB~这就意味着:构成A图像的所有像素点的明度值,必将大于构成B图像的所有像素点的明度值。只有这样,在黑白背景下,不透明度才能发挥作用。<br>OK~综上所述,我们可以整理我们的制作步骤了:<br>① 首先准备图像ImgA与图像ImgB(可任意发挥设计);<br>② 通过明度值、亮度或者色阶等手段,将ImgA提亮,ImgB置暗,当然,这要先对A和B做灰度处理(Ctrl+Shift+U去色);<br>③ ImgA做Ctrl+I反相处理,然后与ImgB做线性减淡处理,得到O;<br>④ 将O置于上层,ImgB置于下层,O做划分处理;得到ImgR;<br>⑤ 最后,别忘了将ImgR设置透明度为O.<br>嗯,有了这几个清晰的步骤,那么我们到PS中来一步一步的实现它吧~<br>首先,准备图片ImgA和ImgB:<br> <img class="BDE_Image" pic_type="0" width="560" height="177" src="
" ><br><br>在PS中打开这两张图,根据步骤②,分别对A、B进行提亮和置暗处理,注意:此处调色是关键,尽量符合“B图的所有像素点的色彩值小于A图”,当然也不需要绝对小于,只是为了追求完美的效果。我这里使用色阶调整图层,大家因人而异,结果理想即可:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>最后,将调整好的图层与AB分别合并~得到提亮后的ImgA与置暗后的ImgB:<br> <br><img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>来到步骤③,对ImgA做反相处理,得到ImgA反相=1-imgA:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>之后将图层“ImgA反相”与ImgB做线性减淡处理,注意工作区大概是这个样子:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>此时,新建一图层,按Shift+Ctrl+Alt+E,将线性减淡处理后得到的图像盖印一下,重命名为“O= 1-ImgA+ImgB”,也就是说,我们得到了O图层,注意O图层此时的混合模式为正常:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>接着第④步,我们按照要求调整图层的顺序,让“划分处理公式”中的分母位置的O位于上层,分子位置的ImgB位于下层,然后对O进行“划分”模式处理:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>嗯~然后同理,新建图层,将当前工作区显示的图像盖印一下,重命名为“ImgR= ImgB/O”,这就是ImgR图层:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>之后~我们来到最后一步,还记得吧~这个ImgR我们是假设过有一个透明度O的~ 但是这里可能有基础不太好的童鞋就要问了……这个算是什么透明度?O不是一个图层吗?对,O在公式中,一直被当做图层来用的,可是它也是ImgR的透明度,这和平时填写数值的那种透明度不一样~这个要做通道透明蒙版。也就是说,我们要对ImgR做一个O的通道蒙版~好让ImgA和ImgB透射出来。(不知道懂了没有,我就假装各位听懂了吧~)<br> <br>那么OK——先将除了O以外的图层隐藏掉,选中O,切换到通道面板~在红绿蓝通道下(这里我尝试过,RGB图层生成的选区不完整,我这里使用的红色通道),按住Ctrl,左键单击缩略图,生成O透明度选区:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>回到图层面板,这时候点开ImgR的小眼睛,选中ImgR,按蒙版按钮,即可得到带有不透明度为O的最终成果ImgR !!!大概长成这样儿:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>来~我们新建个背景图层“测试BG”~ 先填充为纯白。看下工作区的输出:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>呶~输出为ImgA,符合之前的预期~接着选中“测试BG”,Ctrl+I反相变为纯黑色,再次查看工作区的输出:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="
" ><br><br>嗯~输出为ImgB~同样符合公式推导前的假设。<br> <br>最后,将背景层小眼睛关掉~将当前ImgR另存为PNG,重命名一下导出即可。<br><img class="BDE_Image" pic_type="0" width="560" height="619" src="
" ><br><br>There!做完这些,你就可以把自己的成果拿到贴吧或者手机QQ上去骗(划掉)<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" >…啊呸!…去炫了~ 秀出自己的设计灵感~但是不要恶搞过度哦~ 我听说,这“幻影坦克”的名字,是之前有人用这种手段,在贴吧飙车~针对这个还是想啰嗦几句:<br>技术分享固然重要,但是还是要维持良好的网络社交环境为妙。希望大家多做一些有意境、有品位的正能量作品~就跟那个蜗居斗室的小男孩一样,点开立马变成一片浩瀚星空。这酸爽,才正宗!<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" ><br>最后——感谢大家耐心看到这里,至少我自己觉得,我写的够详细的了~详细到啰嗦的地步……如果仍然有问题,欢迎评论留言~我看到会第一时间回复<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" >。<br> <br>【PS:特别感谢石雨同学很久前提出这个问题,才有了今天这篇“不知道算不算是教程”的教程<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" >,提问——永远是分享的原动力!大家加油——<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="
?t=20140803" >】<br> <br> <br> <br> <br>

?t=20140803" >只是很多人这么叫。用大白话说就是“QQ聊天中,有人发了一张图A,但是你点击放大的一瞬间,马上莫名其妙变成了另外一张图B”,这么说可能还是很苍白,这样~来张效果图吧——请看:<br> <img class="BDE_Image" pic_type="0" width="560" height="560" src="

" ><br><br>上面那张图,你试着点击,百度贴吧会使用黑色背景供用户查看详情,这时候你会发现,之前的图片经过点击放大会变成另一幅图。这大概就是传说中的幻影坦克效果了~<br>其实~这效果要是精心设计一番的话,真的很美妙~于是乎,所有人都在刨根问底想知道是如何做的。这实际上涉及到了图层混合模式的运用,和一般的教程不太相同。因为涉及到了一些公式的推导,最终PS的操作命令步骤。那么接下来我们就看下:<br>如题,这是个精简版教程。意思就是……我不会对所有的混合模式进行公式和原理等等的分析,我觉得在座的各位,没有多少人想去看那些大篇幅铺天盖地、天花烂坠的原理解释。而且读这篇文章之前,应该也多少了解了一点原理,但是非战斗人员都希望直接了解制作步骤,既然这种图片效果涉及到混合模式,我还是会从公式上入手,来讲解制作过程中涉及到的图层混合模式应用的原理根据,这样理解了这些公式,自己操作的时候,就不会死记硬背——但是同时,这教程又是超详细的~该讲出来的,我绝对不会缺省,这点众小白放心。<br> <br> OK,废话不多说,在正式开始我们操作之前,先介绍几个混合模式及像素表达式,以及一些必备的图像基础,没有这些基础的,就当是补补课,有基础的,就当做是复习:<br>① 线性减淡(添加):<br>Img输出 = Img上+ Img下;<br>② 划分:<br>Img输出 = Img下/ Img上;<br>③ 反相:<br>Img输出 = 1 – Img ;<br>这些是什么意思呢?首先,既然两种背景(黑色与白色)下有两种显示效果,那么必须准备两张图片,这两张图片在一个PSD里面有图层顺序上下之分,我们用Img上和 Img下区分。这里有个问题,我们现在讨论的是图像的色彩值,所谓色彩值,就是某像素的像素值除以255得到的一个大于0小于1的值。所以,我们这里就用Img代表这个色彩值,比如Img上,就代表“上层图像的色彩值”,Img输出——代表最终输出的图像的色彩值。那么毋庸置疑,黑色图像的色彩值为0,白色为1.<br>完了再看一个问题:两张图层,调整上层图像的不透明度opacity,从100%直到0%,画布上输出的图像肯定也经历了“Img上——混合——Img下”这样的变换。用不透明度混合公式来表达,设Img上的不透明度为O,那么:<br>Img输出 = Img上 * O + Img下 * (1 - O);<br>O为0%时,Img输出 = Img下,这时候完全显示下层图像;O为100%时,Img输出 = Img上,这时候完全显示上层图像;而O介于0~100%之间,将显示上下层的混合图像。而在QQ聊天或者贴吧这样的环境下,没有像PS里面那种混合模式的处理,我们之所以能看到不同的图像,也无非就是在黑色白色两种背景下,图像的透明度起到的作用而已,明白了这一点,那么OK——<br>现在,我们假设最终制作出的图像为ImgR,这ImgR在白色背景下显示图像ImgA,点击放大进入黑色背景,马上变成图像ImgB~ 再假设ImgR的不透明度为O,加上前面交代的那些基础知识,我们是不是就可以列方程了呢?来——<br>① 白色背景下 :ImgA = ImgR * O + 1*(1 - O);<br>② 点击放大(黑色背景):ImgB= ImgR * O + 0*(1 - O);<br>不知道这两个公式大家是不是看懂了~简单解释下①,白色背景下,由前面不透明度混合公式可得:ImgR乘以其不透明度O,与白色背景混合~ 白色的透明度显然就是1-O,白色色彩值为1,那么我们会看到A图像,即:Img输出 = ImgA.同理可得公式②.<br>解这两个方程式,由①-②得:<br>③ ImgR = imgB / O ;<br>④ O = 1 – ImgA + ImgB ;<br> <br>推到这里其实已经得到PS操作步骤了,反应过来了吗?我们现在的目的是拿到ImgR,就要先知道O. 由④可知,要想知道O就需要计算1-ImgA+ImgB的值,根据前面介绍的混合模式公式,很容易转化为PS操作命令:首先计算图像A的反相,之后再和B做线性减淡(添加),接着由③可知,此时得到的O,需要做ImgB/O的操作得到最终结果ImgR~ 而根据前面的混合模式计算公式,ImgB/O即:将图像B与O做划分处理(注意划分有个图层顺序的问题,分母图层在PS中要置于上层).<br>好了,有了这些东西~我们马上就可以整理PS操作思路了~在这之前,还有个小细节要交代,因为在白色背景下显示ImgA,黑色背景下显示ImgB~这就意味着:构成A图像的所有像素点的明度值,必将大于构成B图像的所有像素点的明度值。只有这样,在黑白背景下,不透明度才能发挥作用。<br>OK~综上所述,我们可以整理我们的制作步骤了:<br>① 首先准备图像ImgA与图像ImgB(可任意发挥设计);<br>② 通过明度值、亮度或者色阶等手段,将ImgA提亮,ImgB置暗,当然,这要先对A和B做灰度处理(Ctrl+Shift+U去色);<br>③ ImgA做Ctrl+I反相处理,然后与ImgB做线性减淡处理,得到O;<br>④ 将O置于上层,ImgB置于下层,O做划分处理;得到ImgR;<br>⑤ 最后,别忘了将ImgR设置透明度为O.<br>嗯,有了这几个清晰的步骤,那么我们到PS中来一步一步的实现它吧~<br>首先,准备图片ImgA和ImgB:<br> <img class="BDE_Image" pic_type="0" width="560" height="177" src="

" ><br><br>在PS中打开这两张图,根据步骤②,分别对A、B进行提亮和置暗处理,注意:此处调色是关键,尽量符合“B图的所有像素点的色彩值小于A图”,当然也不需要绝对小于,只是为了追求完美的效果。我这里使用色阶调整图层,大家因人而异,结果理想即可:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>最后,将调整好的图层与AB分别合并~得到提亮后的ImgA与置暗后的ImgB:<br> <br><img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>来到步骤③,对ImgA做反相处理,得到ImgA反相=1-imgA:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>之后将图层“ImgA反相”与ImgB做线性减淡处理,注意工作区大概是这个样子:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>此时,新建一图层,按Shift+Ctrl+Alt+E,将线性减淡处理后得到的图像盖印一下,重命名为“O= 1-ImgA+ImgB”,也就是说,我们得到了O图层,注意O图层此时的混合模式为正常:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>接着第④步,我们按照要求调整图层的顺序,让“划分处理公式”中的分母位置的O位于上层,分子位置的ImgB位于下层,然后对O进行“划分”模式处理:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>嗯~然后同理,新建图层,将当前工作区显示的图像盖印一下,重命名为“ImgR= ImgB/O”,这就是ImgR图层:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>之后~我们来到最后一步,还记得吧~这个ImgR我们是假设过有一个透明度O的~ 但是这里可能有基础不太好的童鞋就要问了……这个算是什么透明度?O不是一个图层吗?对,O在公式中,一直被当做图层来用的,可是它也是ImgR的透明度,这和平时填写数值的那种透明度不一样~这个要做通道透明蒙版。也就是说,我们要对ImgR做一个O的通道蒙版~好让ImgA和ImgB透射出来。(不知道懂了没有,我就假装各位听懂了吧~)<br> <br>那么OK——先将除了O以外的图层隐藏掉,选中O,切换到通道面板~在红绿蓝通道下(这里我尝试过,RGB图层生成的选区不完整,我这里使用的红色通道),按住Ctrl,左键单击缩略图,生成O透明度选区:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>回到图层面板,这时候点开ImgR的小眼睛,选中ImgR,按蒙版按钮,即可得到带有不透明度为O的最终成果ImgR !!!大概长成这样儿:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>来~我们新建个背景图层“测试BG”~ 先填充为纯白。看下工作区的输出:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>呶~输出为ImgA,符合之前的预期~接着选中“测试BG”,Ctrl+I反相变为纯黑色,再次查看工作区的输出:<br> <img class="BDE_Image" pic_type="0" width="560" height="336" src="

" ><br><br>嗯~输出为ImgB~同样符合公式推导前的假设。<br> <br>最后,将背景层小眼睛关掉~将当前ImgR另存为PNG,重命名一下导出即可。<br><img class="BDE_Image" pic_type="0" width="560" height="619" src="

" ><br><br>There!做完这些,你就可以把自己的成果拿到贴吧或者手机QQ上去骗(划掉)<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="

?t=20140803" >…啊呸!…去炫了~ 秀出自己的设计灵感~但是不要恶搞过度哦~ 我听说,这“幻影坦克”的名字,是之前有人用这种手段,在贴吧飙车~针对这个还是想啰嗦几句:<br>技术分享固然重要,但是还是要维持良好的网络社交环境为妙。希望大家多做一些有意境、有品位的正能量作品~就跟那个蜗居斗室的小男孩一样,点开立马变成一片浩瀚星空。这酸爽,才正宗!<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="

?t=20140803" ><br>最后——感谢大家耐心看到这里,至少我自己觉得,我写的够详细的了~详细到啰嗦的地步……如果仍然有问题,欢迎评论留言~我看到会第一时间回复<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="

?t=20140803" >。<br> <br>【PS:特别感谢石雨同学很久前提出这个问题,才有了今天这篇“不知道算不算是教程”的教程<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="

?t=20140803" >,提问——永远是分享的原动力!大家加油——<img class="BDE_Smiley" pic_type="1" width="30" height="30" src="

?t=20140803" >】<br> <br> <br> <br> <br>