Flex 亮度、对比度、饱和度和色相的设置

来源:互联网 发布:c 游戏编程入门 编辑:程序博客网 时间:2024/05/19 03:42

Flex做的视频播放器需要添加一个画面亮度,对比度,饱和度和色相调节的功能,falsh自身已经有相关的类,

其中video是Video的一个实例,(我觉得可以用这个来做一些按钮图片或者其他一些可视化组件的鼠标点击经过变化的一些效果)

在Flex lib中可能没有ColorMatrix,ColorMatrixFilter这两个类,可以从adobe flash软件中导出swc,然后添加到flex工程中

代码如下:

/*** 改变视频的亮度,对比,饱和度和色相值* flag 1亮度,2对比度,3饱和度,4色相值* number 设置的值* */public function setVision(flag:int, value:Number):void{if(video == null){return;}var color:ColorMatrix = new ColorMatrix();var filter:ColorMatrixFilter = new ColorMatrixFilter();switch(flag){case 1:{color.SetBrightnessMatrix(value);  //设置亮度值,值的大小是 -255--255   0为中间值,向右为亮向左为暗。break;}case 2:{color.SetContrastMatrix(value + 127); //设置对比度值,值的大小是 -255--255  127.5为中间值,向右对比鲜明向左对比偏break;}case 3:{color.SetHueMatrix(value); // 设置饱和度值,值的大小是 -255--255   0为中间值,1为灰度值(即黑白相片)。break;}case 4:{color.SetSaturationMatrix(value); // 设置色相值,值的大小是 -255--255  1为中间值,向右向左一试便知。break;}}filter.matrix = color.GetFlatArray();video.filters = [filter];}




0 0