`
sjkgxf7191
  • 浏览: 257063 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Flash Player 10 处理位图(二)Bitmap 和 BitmapData 类

阅读更多

 

像素贴紧和平滑

Bitmap 类的 pixelSnapping 属性可确定 Bitmap 对象是否贴紧最近的像素 。此属性接受 PixelSnapping 类中定义的三个常量之一:ALWAYSAUTO NEVER

myBitmap.pixelSnapping = PixelSnapping.ALWAYS;

通常,缩放位图图像时,图像会变得模糊或扭曲。若要帮助减少这种扭曲,请使用 BitmapData 类的 smoothing 属性。如果将该布尔值属性设置为 true ,当缩放图像时,可使图像中的像素平滑消除锯齿 。它可使图像更加清晰、更加自然。

 

了解 BitmapData 类

BitmapData 类位于 flash.display 包中,它可以看作是加载的或动态创建的位图图像中包含的像素的照片快照。此快照用对象中的像素数据数组表示

var myBitmap:BitmapData = new BitmapData(width:Number, height:Number, transparent:Boolean, fillColor:uinit);

transparent 参数指定位图数据是 (true) 否 (false) 包括Alpha 通道 。fillColor 参数是一个 32 位颜色值,它指定背景颜色和透明度值 (如果设置为 true)。

var myBitmap:BitmapData = new BitmapData(150, 150, true, 0x80FF3300);

 

处理单个像素

getPixel() 方法:从作为参数传递的一组 x, y (像素)坐标中检索 RGB 值。相对应的是setPixel()

getPixel32() 方法:返回的值包含表示所选像素的 Alpha 通道(透明度)值的附加数据 。相对应的是setPixel32()

var red:uint = 0xFF0000;
myBitmapData.setPixel(50, 50, red);

var pixelValue:uint = myBitmapData.getPixel(50, 50);
trace(pixelValue.toString(16));

getPixels() 方法:从作为参数传递的矩形像素数据区域 中生成字节数组 。字节数组的每个元素(即像素值)都是无符号的整数(32 位未经相乘的像素值)。相对应的是setPixels()

var bitmapDataObject1:BitmapData = new BitmapData(100, 100, false, 0x006666FF);
var bitmapDataObject2:BitmapData = new BitmapData(100, 100, false, 0x00FF0000);
var rect:Rectangle = new Rectangle(0, 0, 100, 100);
var bytes:ByteArray = bitmapDataObject1.getPixels(rect);
bytes.position = 0;
bitmapDataObject2.setPixels(rect, bytes);

 

复制位图数据

  • clone ():允许您将位图数据从一个 BitmapData 对象克隆或采样 到另一个对象。
  • copyPixels ():将像素从一个 BitmapData 对象复制到另一个 BitmapData 对象的快速且简便的方法。该方法会拍摄源图像的矩形快照 (由 sourceRect 参数定义),并将其复制到另一个矩形区域 (大小相等)。
  • copyChannel ():法从源 BitmapData 对象中采集预定义的颜色通道值 (Alpha、红、绿或蓝),并将此值复制到目标BitmapData 对象的通道中。调用此方法不会影响目标 BitmapData 对象中的其它通道
  • draw ():将源 sprite影片剪辑 或其它显示对象中的图形内容绘制或呈现在新位图上 。使用 Flash Player 和 AIR 中的矢量渲染器生成数据

滚动位图

scroll () 方法可以复制屏幕上的位图,然后将它粘贴到由 (x, y) 参数指定的新偏移位置

var myBitmapDataObject:BitmapData = new BitmapData(1000, 1000, false, 0x00FF0000);
myBitmapDataObject.scroll(1, 1);

 

利用 mipmap 处理

“MIP map” (也称为“mipmap”)是组合在一起并与纹理关联位图 ,可改善运行时呈现品质和性能。

  • MIP map 不适用于应用滤镜对象缓存位图影片剪辑
  • Flash Player 和 AIR 的 mipmap 处理是自动执行 的。
  • 对于视频播放,请将 Video 对象的 smoothing 属性设置为 true
  • 对于位图,不一定 要将 smoothing 属性设置为 true,但当位图使用平滑处理时品质的改善更为显著
  • 对于二维 图像,请使用可被 4 或 8 整除 的位图大小。
  • 对于三维 纹理,请使用 2^n 的位图大小。
  • 当 Flash Player 或 AIR 遇到宽或高为奇数 的位图时,会停止 Mipmap 处理。
分享到:
评论

相关推荐

    flash图片马赛克

    ActionScript 3.0是Adobe Flash Professional和Flash Player支持的脚本语言,它是一种面向对象的语言,具有强大的性能和丰富的API。在AS3中,我们主要通过DisplayObject类的子类(如BitmapData)来处理图像数据。 ...

    flash as3.0基于八个点的图像变型类

    在Flash AS3.0中,图像...总的来说,"基于八个点的图像变型类"是一个涉及AS3.0编程、图形变形、矩阵变换、事件监听等多个知识点的实践项目,对于深入理解ActionScript 3.0和Flash的图形处理能力具有很高的学习价值。

    网页flash图片查看

    网页中的Flash图片查看技术主要基于Adobe Flash Player插件,它是一种广泛应用于网页设计、多媒体创作和互动内容展示的平台。在网页上实现Flash图片查看功能,可以为用户提供更丰富的交互体验,比如动态缩放、平移等...

    2013 Adobe ActionScript 3.0 开发人员指南

    开发者可以使用Bitmap和BitmapData类来处理像素数据,实现位图的复制、压缩和异步解码。通过创建和应用滤镜,还可以为显示对象添加视觉效果,如模糊、阴影等。 利用PixelBender着色器,开发者可以执行高级的像素级...

    AS3开发指南

    11. **使用位图**:探讨位图使用的基础知识,包括Bitmap和BitmapData类、像素处理、位图数据复制、杂点功能和mipmap处理。 12. **过滤显示对象**:介绍过滤显示对象的基础知识,创建和应用滤镜的技巧,以及...

    Flash网络游戏开发入门经验共享.doc

    3. **位图操作**:Bitmap和BitmapData对象允许开发者在游戏过程中动态处理图像,如裁剪、合并和滤镜效果,这对于游戏的视觉表现至关重要。 4. **层次管理**:在MMORPG中,对象层次关系管理是必要的。学会如何组织...

    flash 图片解析

    总结,Flash图片解析涵盖了对不同图像格式的理解,如BMP的像素结构和GIF的动画机制,以及ActionScript的文件读取、二进制数据处理等技术。`BmpReader.as`文件可能只是这一过程的一部分,专门处理BMP图像的解析。深入...

    AS3的常用类和函数大全

    - **`flash.display.BitmapData`**:提供了一个用于创建、绘制和操作位图数据的方法集。 - **`flash.display.DisplayObject`**:这是所有显示对象的基类,如图形、文本字段和影片剪辑等。 - **`flash.display....

    类似qq截图功能

    `BitmapData`是Flex图形库中的核心类,用于处理位图数据。它提供了一系列的方法和属性,使开发者能够读取、修改和创建位图。在类似QQ截图的实现中,`BitmapData`扮演着至关重要的角色。 首先,我们需要创建一个可...

    flash 卡马克算法

    例如,使用`flash.display.BitmapData`类进行位图操作,`flash.geom.Matrix`类进行变换,以及`flash.display.Graphics`类绘制图形。 总结起来,Flash卡马克算法是一种集成了双缓冲、位图操作、图片压缩、分块加载和...

    ActionScript 3.0 开发人员指南中文官网上下的

    - **Bitmap和BitmapData类**:`Bitmap` 类用于显示位图,而 `BitmapData` 类则提供了更多关于位图数据的操作。 - **处理像素**:通过 `getPixel()` 和 `setPixel()` 方法可以直接操作像素。 - **复制位图数据**:...

    Flex 修改图片主色调

    在Flex中,我们可以使用`flash.display.Bitmap`类来加载和显示图像。`Bitmap`对象允许我们对像素级别的图像数据进行操作,包括改变图片的主色调。首先,我们需要将图像加载到`BitmapData`对象中,这样就可以访问和...

    flex 截图并上传到服务器中

    服务器端需要读取请求体中的二进制数据,将其保存为图片文件,并可能进行一些验证和处理。例如,在Servlet中,你可以这样处理上传: ```java protected void doPost(HttpServletRequest request, ...

    flex在线拍照示例

    7. **兼容性和性能**:由于Flex依赖Flash Player,因此需要注意浏览器和设备的兼容性。随着HTML5和WebRTC的普及,Flex在某些场景下可能不再是最佳选择。对于现代浏览器,可以考虑使用WebRTC API来实现类似功能,以...

    wavewarp_flash源码_源码

    此外,源码中可能还包括了一些优化技巧,比如缓存AsBitmap或使用位图数据(BitmapData)进行绘图,以提高性能。如果源码使用了DisplayObject的cacheAsBitmap属性,那么在动画运行过程中,只有首次绘制时会消耗计算...

    Flash优化技巧整理

    - **Vector类**: 在Flash Player 10中引入了`Vector`类,相比于传统的`Array`类,它提供了更快的读写速度。例如: ```actionscript var coordinates:Array = new Array(); var started:Number = getTimer(); for...

    ActionScript开发人员指南中文版

    Bitmap和BitmapData类 处理像素 复制位图数据 使用杂点功能制作纹理 滚动位图 利用mipmap处理 位图示例:带动画效果的旋转的月亮 位图图像的异步解码 第章:过滤显示对象 过滤显示对象的基础知识 创建和应用滤镜 可用...

    as3 等比切割图片,一键切割图片保存+自动命名图片

    ActionScript 3是Adobe Flash Professional和Flash Player中用于创建交互式内容的主要编程语言,它提供了强大的图形处理能力,使得处理图片任务变得简单。 首先,我们要了解等比切割的概念。等比切割是指按照图片...

    flex-图片保存-本地磁盘-单个ui截屏-整个框架截屏

    BitmapData对象可以表示一个位图,用于绘制、操作像素和创建Bitmap对象。对于单个UI组件的截图,可以先获取组件的DisplayObject实例,然后利用BitmapData的draw()方法绘制到位图上。对于整个框架的截图,可以使用...

Global site tag (gtag.js) - Google Analytics