第八章 认识Alpha通道(1)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第八章 认识Alpha通道(1)相关的知识,希望对你有一定的参考价值。
参考技术A 8.1关于通道通道是 存储颜色与选区 的一个后台空间。存储颜色的通道称为 颜色通道 ;存储选区的通道称为 Alpha通道 。
RGB复合通道严格来说不是通道,是"图像”;
Ctrl+3 红通道 Ctrl+4 绿通道 Ctrl+5 蓝通道 Ctrl+2 返回RGB复合通道;
8.2Alpha通道抠图的原理
通道中的图像是以灰度图显示的,只有黑白灰三色,而且Alpha通道中的白色代表选区,黑色代表非选区,灰色代表被选中的程度(半透明区域);
本例:复制红通道,画笔涂抹,色阶/曲线/画笔/渐变填充等处理;载入选区;
点击RGB返回正常显示模式,Ctrl+J.
8.3通道的基本操作
复制通道(Alpha通道) 、 新建通道 (创建一个Alpha通道,此时通道内被填充为 黑色 ;如果图像中存在选区, 将选区存储为通道 命令,可将选区转换为Alpha通道,此时的Alpha通道内,选区被填充为 白色 ,非选区被填充为 黑色 )、 删除通道 (如果删除的是颜色通道,则图像将变为多通道模式)。
通道的显示控制 单击某一个Alpha通道时,图像窗口会显示该通道中的灰度图像,如果希望观察到图像,可以单击复合通道前的眼睛图标,这是选择的Alpha通道以淡红色显示(如果选择的是颜色通道,再单击复合通道前的眼睛图标,则显示图像本身,但是编辑操作时,只编辑选择的通道。)
8.4利用通道的差异性抠图
分析其颜色通道可以看出,在不同的颜色通道中,图像某一部分与背景之间反差比较大,利用这种差异性,通过“加选”的方式在不同的颜色通道中做选择,就可以将整个对象选择出来,从而实现抠图的目的。
本例: 图像--模式--CMYK颜色
实际是多个通道+快速选择工具(套索工具),将反差明显的图像从不同的通道中抠出,最终形成一个完整的玩具。
JAVA-初步认识-第八章-继承-子父类中成员变量的特点-覆盖的应用
一.
覆盖讲解了好几节,看来确实是个很重要的知识点。
其实我们最关心的不是覆盖的特点和覆盖的注意事项,这些小东西只要稍加注意,不写错就可以了。我们要注重什么,什么时候使用覆盖操作,这是我们开发时,使用最频繁的。
先不管什么覆不覆盖了,先用一个案例演示一遍。
先描述一个小事物,手机。手机有个功能就是来电显示,早期的手机,显示的只有num。编译后,一运行,发现没有任何问题。
接下来,遇到一些问题。现在手机出来很多新的版本,来电显示功能发生了一些变化,有显示姓名和照片。我们要将这些东西加进来,
直接在原有的基础上,加上一些新的内容。编译运行没有问题。
但是有一些小问题,无论是name,还是picture都是后来的,把它们写在一起,合适么?不太合适,因为添加的name和pic相当于升级,这也是后期维护中的一部分。如果每次升级,都是修改源代码的话,如果发现升级的不对,还得该回去,这就会造成修改成本。这样就不利于该程序的扩展。而且,一升级就去修改代码的话,往往修改的不是一处,是多处,就会给你的升级带来灾难,甚至是毁灭性的,等你改完,不一定能改回去。所以,一般情况下,我们不建议对源代码进行修改,这样最危险。因此,在设计的时候就变得很重要,如果设计不好,后面全都出现不行。
因此,我们可以这么做,可以搞一个新类,newphone,它也是电话中的一种,让它去继承以前的phone就可以了,创建新的显示方法,来显示后期添加的东西。
(这里为什么会有number的重复出现,是不是显得有点多余?)
一样是产生变化,但我们不准备去修改原来的类,直接通过一个类去继承它。用继承的方式来进行扩展。如果单独设计个类,和之前的一点关系都没有,会显得很麻烦,因为这个phone类中还有其他功能是不需要修改的,比如说通话,从以前到现在,通话功能一直都是一样的。也就是phone类中还有call()方法,你觉着newphone类中还需要重新定义么?就不需要了,而且我们知道新的东西,就是老的类中的一种,为什么不直接继承call(),拿来用呢?只是show()方法变了。因此,用继承就可以提高程序的扩展性。
DOS结果显示,没有任何问题。看样子是解决了问题,但是还有不爽。这个newphone继承了phone,相当于继承了父类中的两个方法,意味着它也可以调用show(), 结果显示是可以的,
但是爽吗?不爽了。子类出现以后,无非是为了改良父类中的来电显示功能,但是它有必要更改来电显示声明吗(这里是说show的名字)?父类本身就有来电显示的功能,子类只要继承过来就可以了,但是呢?子类想说,这个功能,我可以保留,但是我想改变功能的内容(保留show方法声明,但是里面的执行内容要发生变化)。这该怎么操作?没必要定义新方法,新方法定义完以后,老方法一样可以拿来用,而我要做的,就是把已有的来电显示功能改良。
想改良做的最简单的动作就是覆盖,保留父类原有功能,创建子类特有内容。以前有来电显示,我不喜欢,但是功能还得要,因为我也需要来电显示,只是我的来电显示的内容和你不一样。
只要创建的是子类的对象,那么既能用show(), 也能用call(),p走的是子类的来电显示,和phone走的不一样,但也能走phone的call()。
这里还有一点要注意,子父类的方法中num写了两遍,
为什么不直接省略num这个语句呢?因为是覆盖,如果省略了num语句,那么调用子类的show()方法时,就没有num输出了。
以上是关于第八章 认识Alpha通道(1)的主要内容,如果未能解决你的问题,请参考以下文章