transform是flash.Display.DisplayObject的属性之一,而colorTransform又是transform的属性,这也就意味着几乎所有对象都可以使用colorTransform属性
这是官方的解释:
当 ColorTransform 对象应用于显示对象时,将按如下方法为每个颜色通道计算新值:
新红色值 = (旧红色值 * redMultiplier) + redOffset
新绿色值 = (旧绿色值 * greenMultiplier) + greenOffset
新蓝色值 = (旧蓝色值 * blueMultiplier) + blueOffset
新 Alpha 值 = (旧 Alpha 值 * alphaMultiplier) + alphaOffset (注:本人测试下来,好象这一行公式没啥作用)
如果计算后任何一个颜色通道值大于 255,则该值将被设置为 255。 如果该值小于 0,它将被设置为 0。
用这个东西可以改变几乎任何对象的R,G,B颜色分量以及透明度,说得通俗点:可以把红车换成绿车,或者把黑脸变白脸.下面是示例代码:
txtRedMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
txtGreenMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
txtBlueMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
txtAlphaMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
txtRedOffset.addEventListener(Event.CHANGE,ChangeHandler);
txtGreenOffset.addEventListener(Event.CHANGE,ChangeHandler);
txtBlueMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
txtAlphaMultiplier.addEventListener(Event.CHANGE,ChangeHandler);
function
ChangeHandler(e:Event) {
var
redMultiplier:
Number
=txtRedMultiplier.value;
var
greenMultiplier:
Number
=txtGreenMultiplier.value;
var
blueMultiplier:
Number
=txtBlueMultiplier.value;
var
alphaMultiplier:
Number
=txtAlphaMultiplier.value;
var
redOffSet:
Number
=txtRedOffset.value;
var
greenOffSet:
Number
=txtGreenOffset.value;
var
blueOffSet:
Number
=txtBlueOffset.value;
var
alphaOffSet:
Number
=txtAlphaOffset.value;
//trace("redMultiplier=" + redMultiplier);
//trace("greenMultiplier=" + greenMultiplier);
//trace("blueMultiplier=" + blueMultiplier);
//trace("alphaMultiplier=" + alphaMultiplier);
var
color:ColorTransform =
new
ColorTransform(redMultiplier,
greenMultiplier,
blueMultiplier,
alphaMultiplier,
redOffSet,
greenOffSet,
blueOffSet,
alphaOffSet);
R.transform.colorTransform =
G.transform.colorTransform =
B.transform.colorTransform =
RGB.transform.colorTransform =
img.transform.colorTransform = color;
}
ChangeHandler(
null
);
stop();
从该示例中也可以看出,如果要消除一张图片颜色中的红色分量,只要将redMultiplier设置为0即可,不过红色分量消除后,其值变为0,即原来红色的部分会变成黑色,如果想把纯红换成纯绿,还要再把greenOffSet设置为255
分享到:
相关推荐
组件 ColorPicker的应用。ColorTransform改变颜色。
var cl:ColorTransform=new ColorTransform; cl.color=0xffffff*Math.random(); myMc_mc.transform.colorTransform=cl; ...
随机生成16进制的颜色,改变元件的颜色 // 将更改应用于显示对象 mc.transform.colorTransform=colorInfo;
private var _colourTransform:ColorTransform; private var _origin:Point; private var _source:DisplayObject; private var _defData:BitmapData; private var _expandFilter:ConvolutionFilter; private ...
绘制图形,ColorTransform,滤镜,Bitmapdata,3D绘图API,等等…………
用QT写的一个简单的可视化界面,包含Reinhard、Welsh和FCM色彩迁移算法及测试图片。。。。。。
颜色变换 流式图像色彩空间变换 安装 npm install color-transform 例子 var ColorTransform = require ( 'color-transform' ) ; // Convert a buffer (list of supported transforms below) var rgb = ...
colortransform.c rgb2gray gray2rgb (2) datatypechange.c uchar short float int 等图像数据类型转换 (3) filter.c 滤波函数 (4) imageprocess.c 高光谱图像处理,格式转换bil2bsq。 (5) mathprocess.c 数学处理,...