作者:屈剑峰 2011年4月3日 在flex中可使用ColorMatrixFilter滤镜给组件着色,该滤镜属性matrix是一个4*5的矩阵,Flex在显示组件时各像素新的颜色计算公式如下: 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]
现在,我的需求是给图片着色,参数为:
1、混合颜色;
2、混合比例
我们称原图片中某像素的颜色值为源source,称混合色为目标target,设混合比例为k。那么处理得到的新颜色中红色分量的值为: r=rs×(1-k)+rt×k 其中为原红色分量值,为混合色中的红色分量值。
同理,新颜色中绿色与蓝色分量的值分别为: g=gs×(1-k)+gt×k b=bs×(1-k)+bt×k 上述公式就是给图片着色的原理。
那么,现在为了使用ColorMatrixFilter滤镜,构造一个能到达上述公式计算效果的矩阵如下: 最后一行是alpha通道的混合设置,此处"0 0 0 1 0"表示不改变原图像的透明度。
按照此矩阵实现的着色程序效果如下: 原图:
指定混合色为FF0000,混合比例为50%后的显示效果为:
源码: > 16) & 0xFF; var g:Number = (mixedColor >> & 0xFF; var b:Number = mixedColor & 0xFF; var array:Array=new Array( 1-mixedValue,0,0,0,r*mixedValue, 0,1-mixedValue,0,0,g*mixedValue, 0,0,1-mixedValue,0,b*mixedValue, 0,0,0,1,0//透明度不变 ); return array; } protected function miexedColorPicker_changeHandler(event:ColorPickerE vent):void { refreshImageFilter(); } private function refreshImageFilter():void{ var matrix:Array=getMatrix(mixedColor.selectedColor,mi xedValue.value/100); var filter:spark.filters.ColorMatrixFilter = new spark.filters.ColorMatrixFilter(matrix); var filters:Array = new Array(); filters.push(filter); starImage.filters=filters; } protected function mixedValueSlider_changeHandler(event:Event):void { refreshImageFilter(); } ]]-->
发表评论
-
awk数组下标的字符串化
2012-07-06 09:52 576 好好努力,有一个好的将来! ... -
awk用法
2012-07-06 09:46 735awk用法 通用格 ... -
PHP作为Flex程序的数据源
2012-07-02 13:27 639Adobe Flash Builder 4 简体中文正式版 ... -
Flex 拖拽范例
2012-07-02 13:26 617Flex由于在其Framwork里加入了DragDrop管 ... -
java与flex通信
2012-07-02 13:26 585一、准备: ... -
Flex中button按钮的例子
2012-07-02 13:26 405本源代码来源于flex完全自学手册 flex/spark ... -
FLEX ComboBox绑定JAVA返回的数据源
2012-07-02 13:26 613万万没有想到会在一个小小的ComboBox上碰这么大钉子, ... -
使用Validator.validateAll对所有验证控件进行验证的例子
2012-07-01 10:54 814调用 validators 数组中的所有验证程序。返回一个 ... -
C#命名规范
2012-07-01 10:53 753本文的结构为:(1)C ... -
Using the Microphone capabilities in Adobe AIR 2
2012-07-01 10:53 660AIR 2 introduces the ability ... -
ActionScript 3.0综合应用案例(图像识别+位图滤镜+Molehill)
2012-07-01 10:53 729本文是对ActionScript 3.0的一个综合应用案例 ... -
Using the Adobe AIR 2 NativeProcess API to create a screen recorder
2012-07-01 10:53 1527With the release of AIR 2, Ad ... -
采用数据库为Flex Tree组件的提供数据-Java与LCDS
2012-06-30 17:15 638采用数据库为Flex Tree组件的提供数据-Java与LCD ... -
Flex air 中调用com组件的方法
2012-06-30 17:15 774Flex air 中调用com组件的方法 2011年03月3 ... -
Flex4 在组件Component中注册事件Event并进行指派dispatch的例子
2012-06-30 17:15 718Flex4 在组件Component中注册事件Event并进行 ... -
flex中给图片(或任意组件)着色的方法
2012-06-30 17:15 547flex中给图片(或任意组件)着色的方法 2011年04月0 ... -
采用数据库为Flex Tree组件的提供数据-FlexTree组件
2012-06-30 17:15 581采用数据库为Flex Tree组件的提供数据-FlexTree ...
相关推荐
flex中给图片或任意组件着色的方法。希望我写的这段程序可以满足大家的项目需求。
Flex 组件Flex 组件Flex 组件Flex 组件Flex 组件
flex 组件 保存为图片flex 组件 保存为图片flex 组件 保存为图片flex 组件 保存为图片flex 组件 保存为图片flex 组件 保存为图片flex 组件 保存为图片
flex组件保存为图片,弹出保存对话框,更改保存路径,图片名。
flex 图片缩放移动组件 以封装成包 通过鼠标操作对图片进行放大、缩小、移动位置等
Flex中获取组件快照的ByteArray,然后调用JavaServlet将ByteArray导出成图片。
这个在使用的时候可以自己加,另外一个问题就是由于这个库是FLEX3的,所以在FLEX4.0或以上的版本(使用的spark主题)的时候,需要修改类里面的Canvas为Group或者其他的显示容器,如果有什么问题可以发邮件给我。...
很通用的Flex 分页组件,经过本人测试,可以应用到项目中,很方便
Flex相册 Flex图片
在Flex中如何使用按钮Button组件进行开发
flex做拓扑图的组件flex做拓扑图的组件flex做拓扑图的组件
Flex3组件拖放教程,该组件是flex组件中最有特色的
Flex3组件介绍,包含flex3的所有组件介绍并有例子
flex 重写组件
研究Flex 组件声明周期,了解组件的生成步骤
flex组件的所有源文件 flex组件的所有源文件 flex组件的所有源文件 flex组件的所有源文件
flex组件之数据可视化组件实例源码 包括多种chart,共27个实例
flex 背景图片重复的组件库 类似HTML的CSS样式表中的背景重复
flex 高级自定义组件 需要重写的方法,以及为什么要重写,何时调用等。
详解Flex4的系统组件与基本组件。让你在应用的时候知道用什么.