第18章--位图和滤镜

上传人:F****n 文档编号:99549224 上传时间:2019-09-19 格式:DOCX 页数:9 大小:238.58KB
返回 下载 相关 举报
第18章--位图和滤镜_第1页
第1页 / 共9页
第18章--位图和滤镜_第2页
第2页 / 共9页
第18章--位图和滤镜_第3页
第3页 / 共9页
第18章--位图和滤镜_第4页
第4页 / 共9页
第18章--位图和滤镜_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《第18章--位图和滤镜》由会员分享,可在线阅读,更多相关《第18章--位图和滤镜(9页珍藏版)》请在金锄头文库上搜索。

1、第18章 位图和滤镜在ActionScript 3.0中加入了对位图的支持,可以实现创建位图图像,也可以把外部的位图图像加载到Flash中利用滤镜类,可以对Flash元件和位图增加各种滤镜效果。结合位图和滤镜类,可以实现访问和更改各个像素值的功能,也可以创建自己的滤镜式图像效果并使用内置杂点功能创建纹理和随机杂点。1位图计算机系统中支持的图像主要分为两类:矢量图形和位图图像。本节将介绍位图的基础知识,以及在ActionScript 3.0中所提供的位图处理包的相关内容。1)位图基础矢量图形由以数学方式生成的几何形状,如直线、曲线和多边形等基本图形组成,在Adobe Flash CS3中创作的图

2、像属于矢量图形。位图图像也称为光栅图像,由排列为矩形网格形式的小方块,也就是像素组成,在Adobe PhotoShop CS3中创作的图像属于位图图像。位图图像是用图像的宽度和高度来定义,以像素为量度单位。其中像素是指位图图像中的最小信息单位,表示在屏幕中显示的单个不同颜色的点。每个像素由对应的颜色值来表示。在使用RGB颜色表示的位图图像中,像素由红、绿和蓝三个字节组成,每个字节包含一个0到255之间的数字。将三个字节合并成为一个颜色值,应用于显示对象,就能够产生与绘画颜色相似的颜色。2)Bitmap类Bitmap类用来表示位图图像的显示对象。这些图像可以是使用显示对象的Loader类加载的外

3、部图像,也可以是使用Bitmap()构造函数创建的图像。Bitmap类创建的图像,其信息可以使用其BitmapData属性来引用并处理。Bitmap对象是一种显示对象,因此可以使用显示对象的属性和方法来进行操作和控制。此外,Bitmap对象还有两个常用的属性:PixelSnapping象素贴紧和smoothing平滑。PixelSnapping象素贴紧属性用于控制Bitmap对象是否贴紧至最近的像素。PixelSnapping属性包括以下可能值:PixelSnapping.NEVER:不进行像素贴紧。PixelSnapping.ALWAYS:图像始终与最近的像素贴紧,与变形无关。PixelSn

4、apping.AUTO:如果绘制图像时未应用旋转或倾斜效果,并且图像是以99.9%到100.1%的缩放系数绘制的,则图像将与最近的像素贴紧。3)BitmapData类BitmapData类用于处理Bitmap对象的像素数据,也可以使用BitmapData类的方法创建任意大小的透明或不透明位图图像,并在运行时采用多种方式操作这些图像。此类还可以访问使用显示对象的Loader类加载的位图图像的BitmapData值。BitmapData类的表18-1 BitmapData类属性属性数据类型说 明heightint位图图像的高度,以像素为单位。只读属性。rectRectangle定义位图图像大小和位

5、置的矩形。只读属性。transparentBoolean定义位图图像是否支持每个像素具有不同的透明度。只读属性。widthint位图图像的宽度,以像素为单位。z属性有4个,如表所示:属性 数据类型 说 明 height int 位图图像的高度,以像素为单位。只读属性。 rect Rectangle 定义位图图像大小和位置的矩形。只读属性。 transparent Boolean 定义位图图像是否支持每个像素具有不同的透明度。只读属性。 width int 位图图像的宽度,以像素为单位。 4)创建位图创建位图,需要把Bitmap类和BitmapData类结合使用。使用Bitmap类创建位图对象,

6、使用BitmapData类创建Bitmap对象的数据信息,最后使用Bitmap对象的构造函数或bitmapdata属性获得BitmapData创建的数据。Bitmap类的构造函数格式如下所示:Bitmap(bitmapData,pixelSnapping,smoothing)参数说明如下:bitmapData:被引用的BitmapData对象数据。默认值为null。pixelSnapping:确定Bitmap对象是否贴紧至最近的像素。默认值为“auto”。smoothing:确认在缩放时是否对位图进行平滑处理。默认值为false。5)加载外部图像在ActionScript 3.0中支持加载外部

7、的位图图像到位图中。加载外部的图像,需要使用显示对象的Loader类的load方法来实现。具体实现请参见22.1节。下面的示例使用Loader对象,从外部加载一幅位图图像,并把它加入到Bitmap位图对象上。使用文档类:LoadImage,代码如下所示:2处理像素在ActionScript 3.0中,利用BitmapData类的方法,既可以处理单个像素点,又可以处理像素数组。本节将介绍处理单个和多个像素的方法。1)获取单个像素在使用像素处理位图图像时,首先需要获取要处理区域中所包含的像素的颜色值。在ActionScript 3.0中,可以使用getPixel()方法从指定坐标点(x,y)中获取

8、RGB颜色值。若需要获得包括透明度Alpha通道信息,则需要使用getPixel32()方法。getPixel()方法用于获取位图指定点的RGB像素值。其用法格式如下所示:getPixel(x:int, y:int)说明:此方法将返回一个整数,表示BitmapData对象中在某个特定点(x, y)处的RGB像素值,如果(x,y)坐标在图像范围之外,则返回0。参数说明如下:x:像素点的x坐标位置。y:像素点的y坐标位置。2)设置单个像素若要想更改位图中包含的某个像素的颜色或透明度,则可以使用setPixel()方法或setPixel32()方法。若要设置像素的颜色,则这两种方法都可以使用。set

9、Pixel()方法用于设置BitmapData对象的单个像素值。此方法会保留图像像素的当前Alpha通道值。其用法格式如下所示:setPixel(x:int, y:int, color:uint)参数说明如下:x:指定要更改的像素点的x坐标位置。y:指定要更改的像素点的y坐标位置。color:指定像素点要改变成的RGB颜色值3)处理像素数组若要获取一个区域的像素而不是单个像素的值,可以使用getPixels()方法来实现。其用法格式如下所示:getPixels(rect:Rectangle)参数rect表示当前BitmapData对象中的一个矩形区域,返回的结果是表示给定矩形对象中的像素的字节

10、数组。字节数组的每个元素,即像素值都是无符号的整数(32位未经相乘的像素值)。相反,若要更改一组像素值,可以使用setPixels()方法来实现。其用法格式如下所示:setPixels(rect:Rectangle, inputByteArray:ByteArray)此方法实现将字节数组转换为像素数据的矩形区域。字节数组中的数据应该是32位ARGB像素值。参数说明如下:rect:指定应用像素设置的BitmapData对象的矩形区域。inputByteArray:字节数组对象,由要在矩形区域中使用的32位未经过相乘的像素值组成。3位图的复制位图复制就是将一个位图的数据复制到另一个位图图像。在Ac

11、tionScript 3.0中,BitmapData类提供了4种位图复制的方法,分别为:clone()方法、copyPixels()方法、copyChannel()方法和draw()方法。1)clone()方法clone()方法用于实现对原位图对象的克隆效果,此方法将产生一个与原位图完全相同的副本。其用法格式如下所示:clone()注意:复制产生的副本的修改并不影响原位图的效果。下面的示例使用clone()方法实现载入一个外部的位图,并进行复制操作。使用文档类:Clone,代码如下所示:2)copyPixels()方法copyPixels()方法用于将目标位图对象的BitmapData数据按照

12、指定的坐标和矩形区域进行复制,并将复制出的数据作用于另一个位图对象。其用法格式如下所示:copyPixels(sourceBitmapData,sourceRect,destPoint,alphaBitmapData,alphaPoint,mergeAlpha)参数说明如下:sourceBitmapData:要从中复制像素的目标位图图像。该图像是一个BitmapData实例,也可以指自身BitmapData实例。也就是可以从自身复制一部分。sourceRect:表示要从目标图像获得区域的矩形。destPoint:表示将在其中放置新像素的矩形区域的左上角。alphaBitmapData:表示Al

13、phaBitmapData对象源。alphaPoint:Point:AlphaBitmapData对象源中与sourceRect参数的左上角对应的点。mergeAlpha:若要使用Alpha通道,请将该值设置为true。3)copyChannel()方法copyChannel()方法实现将一个Bitmapdata对象中某一个通道的数据复制到另一个Bitmapdata对象的某个通道当中。其用法格式如下所示:copyChannel(sourceBitmapData,sourceRect,destPoint,sourceChannel,destChannel)参数说明如下:sourceBitmapD

14、at:要使用的目标位图图像。此图像可以是自身图像,也可以是另一个图像。sourceRect:指定要从源图像中复制的矩形Rectangle对象。最大不能超过源图像。destPoint:获取数据位置的目标Point对象,表示要在其中放置新通道数据的矩形区域的左上角。sourceChannel:源通道。destChannel:uint:目标通道。4)draw()方法draw()方法可以实现使用Flash Player矢量渲染器在位图图像上绘制源显示对象。而且可以指定矩阵颜色转换和混合模式和目标区域参数来控制呈现的执行方式。此外还可以根据需要指定是否应在缩放时对位图进行平滑处理。其用法格式如下所示:d

15、raw(source,matrix,colorTransform,blendMode,smoothing)参数说明如下:source:目标位图,指要绘制到BitmapData对象的显示对象或BitmapData对象。matrix:矩阵对象,用于缩放、旋转位图或转换位图的坐标。默认值为null。colorTransform:颜色转换对象,用于调整位图的颜色值。默认值为null。blendMode:指定要应用于所生成位图的混合模式。默认值为null。clipRect:矩形对象,定义要绘制的源对象的区域。默认值为null。smoothing:用于确定因在matrix参数中指定缩放或旋转而对BitmapData对象进行缩放或旋转以后,是否对该对象进行平滑处理。默认值为false。4使用杂点功能杂点功能用于实现在屏幕上实现类似于电视上“雪花”这样的效果。此类效果一般可以用于背景图像,也可以在动画制作过程中实现动态切换效果。在ActionScript 3.0中有两种方法可以实现此效果,分别为:noise()方法和perlinNoise()方法。1)noise()方法noise()方法可以实现对位图应用杂点效果,实现对位图图像的指定区域中的像素应用随机颜色值。其用法

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号