`
NewTamato
  • 浏览: 103179 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

bitmapData和ByteArray之间的装换

阅读更多
  • 这是我工作中遇到的一个问题,才发现原来ByteArray和ByteMapData之间存在着这种转换关系,很感谢原创作者的共享。现在把它保存起来便于以后的回顾。
  • package com.klstudio.images {  
  •   
  •     import flash.display.BitmapData;  
  •     import flash.geom.Rectangle;  
  •     import flash.utils.ByteArray;  
  •       
  •     import com.klstudio.util.Base64;  
  •       
  •     public class BitmapBytes {  
  •           
  •         public static function encodeByteArray(data:BitmapData):ByteArray{  
  •             if(data == null){  
  •                 throw new Error("data参数不能为空!");  
  •             }  
  •             var bytes:ByteArray = data.getPixels(data.rect);  
  •             bytes.writeShort(data.width);  
  •             bytes.writeShort(data.height);  
  •             bytes.writeBoolean(data.transparent);  
  •             bytes.compress();  
  •             return bytes;  
  •         }  
  •         public static function encodeBase64(data:BitmapData):String{  
  •             return Base64.encodeByteArray(encodeByteArray(data));  
  •         }  
  •           
  •         public static function decodeByteArray(bytes:ByteArray):BitmapData{  
  •             if(bytes == null){  
  •                 throw new Error("bytes参数不能为空!");  
  •             }  
  •             bytes.uncompress();  
  •             if(bytes.length <  6){  
  •                 throw new Error("bytes参数为无效值!");  
  •             }             
  •             bytes.position = bytes.length - 1;  
  •             var transparent:Boolean = bytes.readBoolean();  
  •             bytes.position = bytes.length - 3;  
  •             var height:int = bytes.readShort();  
  •             bytes.position = bytes.length - 5;  
  •             var width:int = bytes.readShort();  
  •             bytes.position = 0;  
  •             var datas:ByteArray = new ByteArray();            
  •             bytes.readBytes(datas,0,bytes.length - 5);  
  •             var bmp:BitmapData = new BitmapData(width,height,transparent,0);  
  •             bmp.setPixels(new Rectangle(0,0,width,height),datas);  
  •             return bmp;  
  •         }  
  •           
  •         public static function decodeBase64(data:String):BitmapData{              
  •             return decodeByteArray(Base64.decodeToByteArray(data));  
  •         }         
  •           
  •         public function BitmapBytes() {  
  •             throw new Error("BitmapBytes类只是一个静态类!");  
  •         }  
  •           
  •     }  
  •       
  • }
  • 分享到:
    评论

    相关推荐

      BitmapData.draw方法

      - `blendMode`:可选参数,定义了源对象和目标BitmapData之间的混合模式,可以创建各种视觉效果。 - `smoothing`:可选参数,如果为true,将使绘制的图像变得平滑,适用于放大图像时防止锯齿。 这个方法可以用于...

      [转] BitmapData 基础部分2

      BitmapData是ActionScript 3(AS3)中的一个核心类,它是处理像素数据的主要工具,广泛应用于游戏开发、图像处理和动画制作等场景。在AS3中,BitmapData类允许我们创建、读取、修改和操作位图数据,这些位图数据可以...

      ActionScript 3 BitmapData 的例子

      BitmapData提供了一些方法来读取和修改单个像素,如`getPixel()`和`setPixel()`,以及更高效地处理多像素的`getPixels()`和`setPixels()`。例如: ```actionscript var pixelColor:uint = bitmapData.getPixel(10, ...

      BitmapData.pas和kbKernel.pas

      BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...

      flex 上传图像

      2. 将BitmapData编码为ByteArray:使用BitmapData的`encode`方法将BitmapData对象转换为JPEG或PNG格式的ByteArray。 ```actionscript var byteArray:ByteArray = bitmapData.encode(bitmapData.rect, ...

      使用C#的BitmapData

      在C#中,`BitmapData`类是用于高效地访问和操作位图图像像素的核心类。这个类在处理大量像素操作时尤其有用,因为它允许直接访问图像数据的内存缓冲区,而无需通过昂贵的属性访问。`BitmapData`提供了一种优化的方法...

      BitmapData.zip

      对于 Delphi 开发者,理解 BitmapData 单元的内部工作原理和使用方式,可以通过阅读源代码、参考文档或在线教程来进一步学习。同时,实践是提升技能的关键,尝试使用这个单元在自己的项目中进行图像处理,可以加深...

      delphi 找图找色 BitmapData.pas

      delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/

      SWT中的bitmapdata,和自己封装的image工具类

      BitmapData类提供了对图像数据的低级别访问,包括设置和获取像素颜色、转换图像格式等操作。这个类通常用于创建、修改或分析图像。在SWT中,Image对象是一个抽象的概念,而BitmapData则代表了Image的内存表示,包含...

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

      在本文中,我们将深入...通过理解BitmapData类和相关API,你可以实现各种复杂的图像处理任务,如等比切割图片,并且能够一键保存和自动命名图片。这个功能在网页设计、游戏开发、图像编辑等多个领域都有广泛的应用。

      [心得] draw的技巧,说说BitmapData(附源码)

      BitmapData是ActionScript 3(AS3)中的一个核心类,它是Adobe Flash Professional和Flex开发中的重要组成部分。这篇心得分享了关于使用BitmapData的一些高级技巧,以及如何利用它来提升图形绘制的效率和效果。...

      flash as3 调用摄像头 保存为jpg 含源码

      同时,为了处理图像数据,我们需要`BitmapData`类和`JPEGEncoder`类。在你的AS3代码顶部添加以下导入语句: ```as3 import flash.media.Camera; import flash.display.BitmapData; import flash.utils....

      BitmapData_for_EaselJS:用于EaselJS的BitmapData将AS3(例如BitmapData)添加到EaselJS

      EaselJS的位图数据EaselJS的BitmapData将AS3(例如BitmapData)添加到EaselJS。例1 // create BitmapData by HTMLImageElement_bmd01 = new createjs.BitmapData(HTMLImageElement);_bitmap01 = new createjs.Bitmap...

      Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar

      这个压缩包"Flex RIA AS3网页游戏 BitmapData CopyPixel用法.rar"显然包含了关于如何在AS3中使用BitmapData的CopyPixel方法来创建或修改位图的示例和教程。 BitmapData对象是AS3中表示位图图像的数据结构,它可以...

      Flex调用JavaServlet将组件快照导出成图片

      var byteArray:ByteArray = bitmapData.encode(bounds, new JPEGEncoderOptions()); ``` 接下来,我们需要在JavaServlet中处理这个ByteArray,将其解码并保存为图片。为了实现这一点,我们需要以下步骤: 1. 在...

      as2.0amlabfire.zip_BitmapData_True Blue

      as2.0 模拟火焰 import flash.display.*...var blueSpot: BitmapData = new BitmapData( clipBounds.xMax, clipBounds.yMax, true, 0 ) blueSpot.draw( blueSpotClip, new Matrix() ) blueSpotClip.removeMovieClip()

      as3.0 图片保存类 JPEGEncoder类

      除了基本的图片保存功能,`JPEGEncoder`还支持自定义编码参数,如质量设置,这可以在编码时调整以控制文件大小和图像质量之间的平衡。在某些情况下,比如在资源有限的环境中或为了优化加载速度,可能会牺牲一些质量...

      王者找图对比程序.rar_BitmapData.pas_delphi 找图_对比找图_王找找图_王者找图对比程序

      王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!

      flash加载外部图片

      首先,我们需要了解Flash中的两种主要的图片加载方式:使用Loader类和使用BitmapData类。Loader类是ActionScript 3.0中用于加载图形内容的主要工具,包括图片、SWF文件等。BitmapData类则用于处理位图数据,它可以...

      flex 实现图片另存为

      ### Flex 中使用 `FileStream` 和 `ByteArray` 实现图片另存 #### 1. **基础知识简介** - **Flex**:一种用于构建跨平台桌面应用程序和移动应用程序的技术。它基于Adobe Flash Player运行时环境,并使用MXML...

    Global site tag (gtag.js) - Google Analytics