首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

惯用ColorMatrixFilter收集

2012-12-20 
常用ColorMatrixFilter收集黑白0.3086, 0.6094, 0.0820, 0, 00.3086, 0.6094, 0.0820, 0, 00.3086, 0.6094

常用ColorMatrixFilter收集

黑白
0.3086, 0.6094, 0.0820, 0, 0
0.3086, 0.6094, 0.0820, 0, 0
0.3086, 0.6094, 0.0820, 0, 0
0??? , 0??? , 0??? , 1, 0

对比度(N取值为0到10)
N,0,0,0,128*(1-N)
0,N,0,0,128*(1-N)
0,0,N,0,128*(1-N)
0,0,0,1,0

亮度(N取值为-255到255) 注:一般取值为-100到100(这里是PS中的取值宽度)
1,0,0,0,N
0,1,0,0,N
0,0,1,0,N
0,0,0,1,0

颜色反相
-1, 0, 0, 0, 255
0 , -1, 0, 0, 255
0 , 0, -1, 0, 255
0 , 0, 0, 1,?? 0

阈值(N取值为-255到255)
0.3086*256,0.6094*256,0.0820*256,0,-256*N
0.3086*256,0.6094*256,0.0820*256,0,-256*N
0.3086*256,0.6094*256,0.0820*256,0,-256*N
0, 0, 0, 1, 0

色彩饱和度(N取值为0到255) 注:一般取值为0到100(这里是PS中的取值宽度)
0.3086*(1-N)+ N, 0.6094*(1-N)??? , 0.0820*(1-N)??? , 0, 0
0.3086*(1-N)?? , 0.6094*(1-N) + N, 0.0820*(1-N)??? , 0, 0
0.3086*(1-N)?? , 0.6094*(1-N)??? , 0.0820*(1-N) + N, 0, 0
0??????? , 0??????? , 0??????? , 1, 0

设置颜色通道(RGB均为0-2,A为0-1)
R,0,0,0,0
0,G,0,0,0
0,0,B,0,0
0,0,0,A,0

?

?

把bitmap格式的图片放在一个sprite中,然后设置sprite的filter。1、变成黑白的。spr.filters = [new ColorMatrixFilter(
??????? ???? [1,0,0,0,0,???
??????????????????????? 1,0,0,0,0,???
??????????????????????? 1,0,0,0,0,???
??????????????????????? 0,0,0,1,0?
?????????????????????? ])];ColorMatrixFilter功能十分强大,他所在的包是:import flash.filters.ColorMatrixFilter;2、变成高亮的。spr.filters = [new ColorMatrixFilter(
??????? ???? [1,0,0,0,50,???
??????????????????????? 0,1,0,0,50,???
??????????????????????? 0,0,1,0,50,???
??????????????????????? 0,0,0,1,0?
?????????????????????? ])];在flash中可以用矩阵方便的操作颜色。在flash8以前的版本,操作颜色的唯一途径就是通过修改颜色对象中红,绿,蓝三个通道的值,在Flash8,"颜色矩阵滤镜" ColorMatrixFilter (flash.filters.ColorMatrixFilter) 在颗粒等级上提供给你更好的控制方法。"颜色矩阵滤镜"为 4行5列的多维矩阵(20个元素的数组)。图 4 是 与"颜色矩阵滤镜"等同的矩阵。

红,绿,蓝通道的值由如下所示计算方法所决定:

CODE:

redResult = a[0] * srcR + a[1] * srcG + a[2] * srcB + a[3] * srcA + a[4]
greenResult = a[5] * srcR + a[6] * srcG + a[7] * srcB + a[8] * srcA + a[9]
blueResult = a[10] * srcR + a[11] * srcG + a[12] * srcB + a[13] * srcA + a[14]
alphaResult = a[15] * srcR + a[16] * srcG + a[17] * srcB + a[18] * srcA + a[19]

可以看出,第一行的值决定了红色值,第二行决定绿色,第三行蓝色,第四行是透明(Alpha)通道值。同样可以看出首四栏值是与红,绿,蓝,alpha通道值的乘积,而第五栏的值分别是和(偏移量)。注意每行的源值和结果值都是在0到255的区间内。因此即使各个通道的值小于0或大于255都会被强制到该区间内。

热点排行