`
ch_kexin
  • 浏览: 899306 次
  • 性别: Icon_minigender_2
  • 来自: 青岛
社区版块
存档分类
最新评论

ColorMatrixFilter--颜色矩阵滤镜

 
阅读更多

ColorMatrixFilter--颜色矩阵滤镜(flash.filters.ColorMatrixFilter) 在颗粒等级上提供给你更好的控制方法。ColorMatrixFilter为 4行5列的多维矩阵(20个元素的数组)。图1是与ColorMatrixFilter等同的矩阵:

图1. 与ColorMatrixFilter等同的矩阵

    红,绿,蓝通道的值由如下所示计算方法所决定:
    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都会被强制到该区间内。我来举些例子说明它的原理。
    如果你想在红色通道加100(偏移量),将a[4]设置为100,如图2:

 

图2. 红色值增加100

    如果想使绿色通道加倍,将a[6]设为2,如图3:

图3. 绿色加倍

    如果你要使结果图像中的蓝色与原图的红色数量相等,将a[10]设为1, a[12]设为0 ,如图4:

图4. 红色决定蓝色值

    改变图像的亮度,你需要在每个颜色通道的值改变同样的数量。最简单的途径是在每个通道都设置相同的偏移量。偏移量为正时可以增加亮度为负时可以减小亮度。图5是一个增加亮度的例子:

图5. 增加亮度

    你也可以通过将每个颜色通道与一个值相乘按比例的改变亮度,大于1的增加亮度小于1减小亮度。
按照原理,将图像转换为灰度图,你需要将每个通道的部分设为等值。因为有三个通道,你可以将每个通道乘以0.33并将它们相加得到结果值。如图6:

图6.灰度图矩阵

    由于不同颜色通道的相对屏幕发光度,但是确实有特殊的提供更加真实的灰度图的“亮度系数”值。例如在PS里创建一个纯绿色块然后把它放在一个纯蓝色块,然后将图像灰度化,你会看到原来绿色的地方的灰色会比原来蓝色的区域要亮。
    在Flash里使用这些矩阵,创建一个ColorMatrixFilter的实例然后将它加入到一个影片剪辑(MovieClip)实例上。下面是一个使绿色加倍的例子:
    CODE:

 

import flash.filters.ColorMatrixFilter;
var mat:Array = [ 1,0,0,0,0,
                  0,2,0,0,0,
                  0,0,1,0,0,
                  0,0,0,1,0 ];
var colorMat:ColorMatrixFilter = new ColorMatrixFilter(mat);
mc.filters = [colorMat];

 

    ColorMatrixFilter与一个已知的矩阵使用,你可以完成除了亮度和灰度之外复杂的颜色调整。调整对比度,饱和度和色相等。

分享到:
评论

相关推荐

    as3的颜色矩阵滤镜ColorMatrixFilter的使用

    在ActionScript 3 (AS3)中,颜色矩阵滤镜(ColorMatrixFilter)是一种强大的工具,用于对显示对象上的像素进行复杂色彩变换。这个滤镜允许开发者通过调整一个5x4的颜色矩阵来改变图像的色彩、亮度、对比度、饱和度等...

    适用于iOS和Android的各种基于颜色矩阵的图像滤镜.zip

    在压缩包中的“react-native-color-matrix-image-filters-master”项目,我们可以看到这是一个React Native库,它为开发者提供了一种跨平台的方式来应用颜色矩阵滤镜。React Native是一个流行的JavaScript框架,允许...

    AS3][Matrix][利用颜色矩阵进行颜色变换

    下面是一段简单的AS3代码,演示了如何使用`ColorMatrixFilter`类实现颜色矩阵的变换: ```as import flash.filters.ColorMatrixFilter; // 创建颜色矩阵 var colorMat:Array = [1, 0, 0, 0, 100, 0, 1, 0, 0, 0, ...

    AS3 调节ColorMatrixFilter参数的应用

    这个滤镜允许我们通过一个5x4的矩阵来改变图像的颜色、亮度、对比度、饱和度等属性。本文将深入探讨如何利用ColorMatrixFilter调整参数并应用于实际项目。 首先,ColorMatrixFilter的矩阵由20个浮点数组成,它们是...

    使用filters中的ColorMatrixFilter

    `ColorMatrixFilter`通常在ActionScript 3(AS3)和Flex中使用,允许开发者通过调整颜色矩阵来改变舞台上显示对象的颜色、亮度、对比度、饱和度等属性。在给定的示例中,我们有一个名为`ColorMatrixFilterSample....

    flash as 3利用滤镜变换位图颜色

    这种滤镜通过修改像素的颜色矩阵来改变图像的色彩。颜色矩阵是一个5x5的浮点数组,其中每个元素对应于颜色通道的调整值。默认情况下,这个矩阵是单位矩阵,意味着它不会改变图像的颜色。但是,通过改变矩阵中的值,...

    imageView滤镜

    颜色矩阵滤镜(ColorMatrixFilter)是Android提供的一种常用滤镜,它通过一个5x4的浮点数矩阵来改变图像的颜色。这个矩阵可以用来调整图像的亮度、饱和度、色调、对比度等属性,甚至可以实现色彩转换。例如,我们...

    Flex中的各种滤镜

    5. **ColorMatrixFilter(颜色矩阵滤镜)** 这是一个强大的滤镜,允许开发者通过改变像素的颜色值来实现复杂的颜色转换。例如,你可以使用它来调整亮度、对比度、饱和度,甚至进行色彩平衡调整。 6. **...

    flash透明效果

    - **颜色矩阵滤镜**:更高级的透明效果可以通过颜色矩阵滤镜(ColorMatrixFilter)实现,可以对整个显示对象应用复杂的透明和颜色变化。 2. **图形层的透明设置** - **图层透明度**:在Flash的时间轴上,可以直接...

    As3 开源图片特效类

    2. **ColorMatrixFilter**:颜色矩阵滤镜,允许你通过自定义4x5颜色矩阵来精确调整图像的颜色和亮度。 3. **DropShadowFilter**:阴影滤镜,可以在对象后面添加一个或多个阴影,控制阴影的颜色、模糊度、角度和距离...

    前端项目-pixi-filters.zip

    1. **颜色调整滤镜**:包括ColorMatrixFilter,允许你通过调整RGBA矩阵来改变图像颜色。这对于色调调整、饱和度、亮度和对比度控制非常有用。 2. **模糊滤镜**:如BlurFilter和FastBlurFilter,可以为元素添加模糊...

    [心得] AS3)灰化显示对象(DisplayObject)的方法 / 图片灰化

    默认情况下,`ColorMatrixFilter`对象会应用一个全灰度的矩阵,将所有颜色转换为灰度。 2. **应用滤镜到DisplayObject**: 假设我们有一个名为`myDisplayObject`的DisplayObject实例,我们可以这样做: ```...

    as3 Image effect源代码

    2. **ColorMatrixFilter**:这个滤镜允许你对图像的颜色进行精细控制,可以通过调整4x5的颜色矩阵来改变亮度、对比度、饱和度等。例如,增加图像的饱和度: ```actionscript var colorMatrix:ColorMatrixFilter = ...

    AS3_显示对象结构图.pdf

    * ColorMatrixFilter:是一个颜色矩阵滤镜,用于对显示对象进行颜色矩阵变换。 * ConvolutionFilter:是一个卷积滤镜,用于对显示对象进行卷积运算。 V. Error 类 AS3 显示对象结构图中还定义了一些错误类,例如:...

    flash模糊函数的应用

    同时,它也常与其它滤镜结合使用,如颜色矩阵滤镜(ColorMatrixFilter),以实现更复杂的图像处理。 在游戏开发中,模糊滤镜可以用来创建粒子系统中的雾化效果,或者在角色移动时模拟运动模糊,提升游戏的视觉体验...

    AS3 让一张图片变成火焰特效的代码

    我们可以使用渐变工具或者颜色矩阵滤镜来改变粒子的颜色,使其看起来像火焰。例如,粒子靠近“源头”时可能是较冷的蓝色,随着远离“源头”,颜色逐渐变为黄色和红色。 ```actionscript var colorMatrix:...

    as3 图片处理,以及控件对其方式的控制

    通过`ColorMatrixFilter`类,可以创建一个颜色矩阵,调整其中的元素来改变图像的亮度。例如,增加矩阵的[0][4](红色亮度)、[1][4](绿色亮度)和[2][4](蓝色亮度)值可以增加整体亮度。 2. **灰度转换**: 转换...

    Android 图像柔化美白特效源码.zip

    4. **滤镜与特效**:Android提供了多种滤镜特效,如ColorMatrixFilter可以调整色彩矩阵,实现色调、饱和度和亮度的改变;BlurFilter可以实现模糊效果;而ColorFilter则可用于实现颜色转换。 5. **图像处理库**:...

    flash image处理类库

    Flash的Filter类提供了一系列图像特效,如模糊、渐变发光、颜色矩阵等。可以将这些滤镜应用于BitmapData对象,然后更新显示对象,以实现各种视觉效果。 5. 图像裁剪与缩放: BitmapData的`draw()`方法可以用于绘制...

Global site tag (gtag.js) - Google Analytics