flex 里怎样改变image控件里图片的 颜色
image里的图片是网络上的,我用一个source属性引用的,怎样让那张图片变成灰色呢?请问我这样用对吗?<mx:Imagefilters="{newColorMatri...
image里的图片是网络上的,我用一个source属性引用的,怎样让那张图片变成灰色呢?
请问我这样用对吗?
<mx:Image filters="{new 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])}"> 展开
请问我这样用对吗?
<mx:Image filters="{new 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])}"> 展开
展开全部
as3代码 滤镜 灰度
使用灰度矩阵创建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
下面的例子应用了灰度效果:
sampleSprite.filters = [new 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])];
也可使用ascb.filters.ColorMatrixArrays.GRAYSCALE常量:
sampleSprite.filters = [new ColorMatrixFilter(ColorMatrixArrays.GRAYSCALE)];
10.12.改变饱和度
问题
我想改变对象的饱和度
解决办法
使用饱和度矩阵创建ColorMatrixFilter对象
讨论
饱和度矩阵:
a b c 0 0
d e f 0 0
g h i 0 0
0 0 0 1 0
具体计算公式看下面,i是饱和度值:
a = (1 value) * red + value
b = (1 value) * green
c = (1 value) * blue
d = (1 value) * red
e = (1 value) * green + value
f = (1 value) * blue
g = (1 value) * red
h = (1 value) * green
i = (1 value) * blue + value
当饱和度值为0时,这个矩阵就是灰度矩阵。
我们可使用ascb.filters.ColorMatrixArrays.getSaturationArray( )方法构造一个饱和度矩阵数组,只需要传递饱和度值即可。
sampleSprite.filters = [new ColorMatrixFilter(ColorMatrixArrays.getSaturationArray(2))];
使用灰度矩阵创建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
下面的例子应用了灰度效果:
sampleSprite.filters = [new 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])];
也可使用ascb.filters.ColorMatrixArrays.GRAYSCALE常量:
sampleSprite.filters = [new ColorMatrixFilter(ColorMatrixArrays.GRAYSCALE)];
10.12.改变饱和度
问题
我想改变对象的饱和度
解决办法
使用饱和度矩阵创建ColorMatrixFilter对象
讨论
饱和度矩阵:
a b c 0 0
d e f 0 0
g h i 0 0
0 0 0 1 0
具体计算公式看下面,i是饱和度值:
a = (1 value) * red + value
b = (1 value) * green
c = (1 value) * blue
d = (1 value) * red
e = (1 value) * green + value
f = (1 value) * blue
g = (1 value) * red
h = (1 value) * green
i = (1 value) * blue + value
当饱和度值为0时,这个矩阵就是灰度矩阵。
我们可使用ascb.filters.ColorMatrixArrays.getSaturationArray( )方法构造一个饱和度矩阵数组,只需要传递饱和度值即可。
sampleSprite.filters = [new ColorMatrixFilter(ColorMatrixArrays.getSaturationArray(2))];
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询