making things move as3 阅读笔记---绘图API 续

1. 滤镜:import flash.filters.*包中,

如果对显示对象应用滤镜,则该显示对象的 cacheAsBitmap 属性值将设置为 true。 如果清除所有滤镜,将恢复 cacheAsBitmap 的原始值。如果结果图像的宽度或高度超过 2880 像素,则不应用滤镜。此滤镜支持舞台缩放。 但是,它不支持常规缩放、旋转和倾斜。 如果对象本身进行了缩放(如果将 scaleXscaleY 设置为除 1.0 以外的其它值),滤镜将不进行缩放。 只有用户在舞台上进行放大时它才会缩放。

■ Drop shadow(投影滤镜)

类名DropShadowFilter

DropShadowFilter(distance:Number = 4.0, angle:Number = 45, color:uint = 0, alpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1.0, quality:int = 1, inner:Boolean = false, knockout:Boolean = false, hideObject:Boolean = false)

    distance:Number (default = 4.0) — 阴影的偏移距离,以像素为单位。

    angle:Number (default = 45) — 阴影的角度,0 到 360 度(浮点)。

    color:uint (default = 0) — 阴影颜色,采用十六进制格式 0xRRGGBB。 默认值为 0x000000。

    alpha:Number (default = 1.0) — 阴影颜色的 Alpha 透明度值。 有效值为 0.0 到 1.0。 例如,.25 设置透明度值为 25%。

    blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255.0(浮点)。

    blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255.0(浮点)。

    strength:Number (default = 1.0) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且阴影与背景之间的对比度也越强。 有效值为 0 到 255.0。

    quality:int (default = 1) — 应用滤镜的次数。 使用 BitmapFilterQuality 常数:

  •       BitmapFilterQuality.LOW
  •       BitmapFilterQuality.MEDIUM
  •       BitmapFilterQuality.HIGH

       inner:Boolean (default = false) — 表示阴影是否为内侧阴影。 值 true 指定内侧阴影。 值 false 指定外侧阴影(对象外缘周围的阴影)。

    knockout:Boolean (default = false) — 应用挖空效果 (true),这将有效地使对象的填色变为透明,并显示文档的背景颜色。 (使原对象为透明)

    hideObject:Boolean (default = false) — 表示是否隐藏对象。 如果值为 true,则表示没有绘制对象本身,只有阴影是可见的。

 

■ Blur(模糊滤镜) ,模糊效果可以柔化图像的细节。

类名BlurFilter

BlurFilter(blurX:Number = 4.0, blurY:Number = 4.0, quality:int = 1)

   blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255.0(浮点值)。

   blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255.0(浮点值)。

   quality:int (default = 1) — 应用滤镜的次数。 您可以使用 BitmapFilterQuality 常数来指定品质:

  •       flash.filters.BitmapFilterQuality.LOW
  •       flash.filters.BitmapFilterQuality.MEDIUM
  •       flash.filters.BitmapFilterQuality.HIGH
  • 高品质接近高斯模糊。 对于大多数应用,这三个值已足够了。 虽然您可以使用不超过 15 的其它数值来达到不同的效果,但是请注意,值越高,呈现速度越慢。

■ Glow(发光滤镜) ,可以对显示对象应用发光效果。

类名GlowFilter

GlowFilter(color:uint = 0xFF0000, alpha:Number = 1.0, blurX:Number = 6.0, blurY:Number = 6.0, strength:Number = 2, quality:int = 1, inner:Boolean = false, knockout:Boolean = false)

color:uint (default = 0xFF0000) — 光晕颜色,采用十六进制格式 0xRRGGBB。 默认值为 0xFF0000。

alpha:Number (default = 1.0) — 颜色的 Alpha 透明度值。 有效值为 0 到 1。 例如,.25 设置透明度值为 25%。

blurX:Number (default = 6.0) — 水平模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

blurY:Number (default = 6.0) — 垂直模糊量。 有效值为 0 到 255(浮点)。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

strength:Number (default = 2) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255。

quality:int (default = 1) — 应用滤镜的次数。 使用 BitmapFilterQuality 常数:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

有关详细信息,请参阅 quality 属性的说明。

inner:Boolean (default = false) — 指定发光是否为内侧发光。 值 true 指定发光是内侧发光。 值 false 指定发光是外侧发光(对象外缘周围的发光)。

knockout:Boolean (default = false) — 指定对象是否具有挖空效果。 值为 true 将使对象的填充变为透明,并显示文档的背景颜色。

■ Bevel(斜角滤镜) ,斜角效果使对象(如按钮)具有三维外观。

类名BevelFilter

BevelFilter(distance:Number = 4.0, angle:Number = 45, highlightColor:uint = 0xFFFFFF, highlightAlpha:Number = 1.0, shadowColor:uint = 0x000000, shadowAlpha:Number = 1.0, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)

distance:Number (default = 4.0) — 斜角的偏移距离,以像素为单位(浮点)。

angle:Number (default = 45) — 斜角的角度,0 至 360 度。  //可以想象成光线投射过来,光线的角度

highlightColor:uint (default = 0xFFFFFF) — 斜角的加亮颜色,0xRRGGBB

highlightAlpha:Number (default = 1.0) — 加亮颜色的 Alpha 透明度值。 有效值为 0.0 到 1.0。 例如,.25 设置透明度值为 25%。

shadowColor:uint (default = 0x000000) — 斜角的阴影颜色,0xRRGGBB

shadowAlpha:Number (default = 1.0) — 阴影颜色的 Alpha 透明度值。 有效值为 0.0 到 1.0。 例如,.25 设置透明度值为 25%。

blurX:Number (default = 4.0) — 水平模糊量,以像素为单位。 有效值为 0 到 255.0(浮点)。

blurY:Number (default = 4.0) — 垂直模糊量,以像素为单位。 有效值为 0 到 255.0(浮点)。

strength:Number (default = 1) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且斜角与背景之间的对比度也越强。 有效值为 0 到 255.0。

quality:int (default = 1) — 斜角的品质。 有效值为 0 至 15,但是对于大多数应用,可以使用 BitmapFilterQuality 常数:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

这些值越低,滤镜的呈现速度就越快。 可以使用其它可用的数值来实现不同的效果。

type:String (default = "inner") — 斜角类型。 有效值为 BitmapFilterType 常数:BitmapFilterType.INNERBitmapFilterType.OUTERBitmapFilterType.FULL

knockout:Boolean (default = false) — 应用挖空效果 (true),这将有效地使对象的填色变为透明,并显示文档的背景颜色。

■ Gradient bevel(渐变斜角滤镜) ,可以对显示对象应用渐变斜角效果。 渐变斜角是位于对象外部、内部或顶部的使用渐变色增强的有斜面的边缘。 有斜面的边缘使对象具有三维外观。

类名GradientBevelFilter

GradientBevelFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)

distance:Number (default = 4.0) — 偏移距离。 有效值为 0 到 8。

angle:Number (default = 45) — 角度,以度为单位。 有效值为 0 到 360。

colors:Array (default = null) — 渐变中使用的 RGB 十六进制颜色值数组。 例如,红色为 0xFF0000,蓝色为 0x0000FF 等等。

alphas:Array (default = null)colors 数组中对应颜色的 Alpha 透明度值的数组。 数组中每个元素的有效值为 0 到 1。 例如,.25 设置透明度值为 25%。

ratios:Array (default = null) — 颜色分布比例的数组;有效值为 0 到 255。

blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 默认值为 4。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

strength:Number (default = 1) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且斜角与背景之间的对比度也越强。 有效值为 0 到 255。 值为 0 表示未应用滤镜。

quality:int (default = 1) — 滤镜的品质。 使用 BitmapFilterQuality 常数:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

有关详细信息,请参阅 quality 属性的说明。

type:String (default = "inner") — 斜角效果的放置。 可能的值为 BitmapFilterType 常数:

  • BitmapFilterType.OUTER -- 对象外缘上的斜角
  • BitmapFilterType.INNER -- 对象内缘上的斜角
  • BitmapFilterType.FULL -- 对象顶部的斜角

knockout:Boolean (default = false) — 指定是否应用挖空效果。 值为 true 将使对象的填充变为透明,并显示文档的背景颜色。

■ Gradient glow(渐变发光滤镜) ,渐变发光是一种非常逼真的发光效果,您可以控制颜色渐变。

类名GradientGlowFilter

GradientGlowFilter(distance:Number = 4.0, angle:Number = 45, colors:Array = null, alphas:Array = null, ratios:Array = null, blurX:Number = 4.0, blurY:Number = 4.0, strength:Number = 1, quality:int = 1, type:String = "inner", knockout:Boolean = false)

distance:Number (default = 4.0) — 光晕的偏移距离。

angle:Number (default = 45) — 角度,以度为单位。 有效值为 0 到 360。

colors:Array (default = null) — 定义渐变的颜色数组。 例如,红色为 0xFF0000,蓝色为 0x0000FF 等等。

alphas:Array (default = null)colors 数组中对应颜色的 Alpha 透明度值的数组。 数组中每个元素的有效值为 0 到 1。 例如,值 .25 将 Alpha 透明度值设置为 25%。

ratios:Array (default = null) — 颜色分布比例的数组。 有效值为 0 到 255。 该值定义颜色采样率为 100% 之处的宽度百分比。

blurX:Number (default = 4.0) — 水平模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

blurY:Number (default = 4.0) — 垂直模糊量。 有效值为 0 到 255。 如果模糊量小于或等于 1,则表明原始图像是按原样复制的。 2 的乘方值(如 2、4、8、16 和 32)经过优化,呈现速度比其它值更快。

strength:Number (default = 1) — 印记或跨页的强度。 该值越高,压印的颜色越深,而且发光与背景之间的对比度也越强。 有效值为 0 到 255。 值越大,压印越强。 值为 0 意味着未应用滤镜。

quality:int (default = 1) — 应用滤镜的次数。 使用 BitmapFilterQuality 常数:

  • BitmapFilterQuality.LOW
  • BitmapFilterQuality.MEDIUM
  • BitmapFilterQuality.HIGH

type:String (default = "inner") — 滤镜效果的放置。 可能的值是 flash.filters.BitmapFilterType 常数:

  • BitmapFilterType.OUTER -- 对象外缘上的发光
  • BitmapFilterType.INNER -- 对象内缘上的发光;默认值。
  • BitmapFilterType.FULL -- 对象顶部的发光

knockout:Boolean (default = false) — 指定对象是否具有挖空效果。 应用挖空效果将使对象的填充变为透明,并显示文档的背景颜色。 值为 true 将指定应用挖空效果;默认值为 false,即不应用挖空效果。

■ Color matrix(颜色矩阵滤镜) ,该类允许饱和度更改、色相旋转、亮度为 Alpha 以及各种其它效果。

类名ColorMatrixFilter

ColorMatrixFilter(matrix:Array = null)

matrix 此处为4*5矩阵,Flash中的颜色矩阵

红,绿,蓝通道的值由如下所示计算方法所决定:

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)通道值。

如果你想在红色通道加100(偏移量),将a[4]设置为100,如:

Flash中的颜色矩阵
图. 红色值增加100

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

Flash中的颜色矩阵
图. 绿色加倍

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

Flash中的颜色矩阵
图. 红色决定蓝色值

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

Flash中的颜色矩阵
图. 增加亮度

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

Flash中的颜色矩阵
灰度图矩阵

 

■ Convolution(卷积滤镜), 卷积将输入图像的像素与相邻的像素合并以生成图像。通过卷积,可以实现大量的图像效果,包括模糊、边缘检测、锐化、浮雕和斜角。

类名ConvolutionFilter

ConvolutionFilter(matrixX:Number = 0, matrixY:Number = 0, matrix:Array = null, divisor:Number = 1.0, bias:Number = 0.0, preserveAlpha:Boolean = true, clamp:Boolean = true, color:uint = 0, alpha:Number = 0.0)   //绿色部分参数最常用

matrixX:Number (default = 0) — 矩阵的 x 维度(矩阵中列的数目)。 默认值为 0。

matrixY:Number (default = 0) — 矩阵的 y 维度(矩阵中行的数目)。 默认值为 0。

matrix:Array (default = null) — 用于矩阵转换的值的数组。 数组中的项数必须等于 matrixX * matrixY

divisor:Number (default = 1.0) — 矩阵转换中使用的除数。 默认值为 1。 如果除数是所有矩阵值的总和,则可调平结果的总体色彩强度。 忽略 0 值,此时使用默认值。

bias:Number (default = 0.0) — 要添加到矩阵转换结果的偏差。 默认值为 0。

preserveAlpha:Boolean (default = true)false 值表示未保留 Alpha 值,并且卷积适用于所有通道(包括 Alpha 通道)。 值为 true 表示只对颜色通道应用卷积。 默认值为 true

clamp:Boolean (default = true) — 对于源图像之外的像素,如果值为 true,则表明通过复制输入图像给定边缘处的颜色值,沿着输入图像的每个边框按需要扩展输入图像。 如果值为 false,则表明应按照 coloralpha 属性中的指定使用其它颜色。 默认值为 true

color:uint (default = 0) — 要替换源图像之外的像素的十六进制颜色。

alpha:Number (default = 0.0) — 替换颜色的 Alpha。

这里matrix即为要与图像进行卷积操作的矩阵,一般称为模板。matrixX和matrixY指明了模板的大小。简单起见,我们以3*3的模板为例。
运算的公式可以这样表示(对于每个颜色通道):

dst (x, y) = ((src (x-1, y-1) * a0 + src(x, y-1) * a1....src(x, y+1) * a7 + src (x+1,y+1) * a8) / divisor) + bias

a0—a8分别为matrix[0]—matrix[8]
可以简单理解为:
一个3*3大小的模板覆盖在图像上,并在图像上移动。模板中心位置(matrix[4])处图像的像素值为模板下9个像素值与模板各个元素值的加权求和(这里的求和是分别对每个a、r、g、b每个通道进行求和),再除以一个系数divisor防止图像过饱和。最终加上偏移量bias。(边界位置不考虑。)

■ Displacement map(置换图滤镜),实现了图像像素的替换、重组,最直观的理解就是透过水面看下面。

类名DisplacementMapFilter

DisplacementMapFilter(mapBitmap:BitmapData = null, mapPoint:Point = null, componentX:uint = 0, componentY:uint = 0, scaleX:Number = 0.0, scaleY:Number = 0.0, mode:String = "wrap", color:uint = 0, alpha:Number = 0.0)

mapBitmap:BitmapData (default = null) — 包含置换映射数据的 BitmapData 对象。

mapPoint:Point (default = null) — 一个值,它包含目标显示对象的左上角相对于映射图像左上角的偏移量。

componentX:uint (default = 0) — 说明在映射图像中使用哪个颜色通道来置换 x 结果。 可能的值为 BitmapDataChannel 常数。

componentY:uint (default = 0) — 说明在映射图像中使用哪个颜色通道来置换 y 结果。 可能的值为 BitmapDataChannel 常数。

scaleX:Number (default = 0.0) — 用于缩放映射计算的 x 置换结果的乘数。

scaleY:Number (default = 0.0) — 用于缩放映射计算的 y 置换结果的乘数。

mode:String (default = "wrap") — 滤镜模式。 可能的值为 DisplacementMapFilterMode 常数。

color:uint (default = 0) — 指定对于超出范围的替换应用什么颜色。 置换的有效范围是 0.0 到 1.0。如果 mode 设置为 DisplacementMapFilterMode.COLOR,则使用此参数。

alpha:Number (default = 0.0) — 指定对于超出范围的替换应用什么 Alpha 值。 它被指定为 0.0 到 1.0 之间的标准值。例如,.25 设置透明度值为 25%。 如果 mode 设置为 DisplacementMapFilterMode.COLOR,则使用此参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值