`
- 浏览:
103186 次
- 性别:
- 来自:
北京
-
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类只是一个静态类!");
}
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
- `blendMode`:可选参数,定义了源对象和目标BitmapData之间的混合模式,可以创建各种视觉效果。 - `smoothing`:可选参数,如果为true,将使绘制的图像变得平滑,适用于放大图像时防止锯齿。 这个方法可以用于...
BitmapData是ActionScript 3(AS3)中的一个核心类,它是处理像素数据的主要工具,广泛应用于游戏开发、图像处理和动画制作等场景。在AS3中,BitmapData类允许我们创建、读取、修改和操作位图数据,这些位图数据可以...
BitmapData提供了一些方法来读取和修改单个像素,如`getPixel()`和`setPixel()`,以及更高效地处理多像素的`getPixels()`和`setPixels()`。例如: ```actionscript var pixelColor:uint = bitmapData.getPixel(10, ...
BitmapData.pas 和 kbKernel.pas 这两个文件在IT领域中主要涉及到图像处理和自动化操作,特别是游戏或图形应用中的找图找色功能。在本文中,我们将深入探讨这两个关键概念及其在实际编程中的应用。 首先,...
2. 将BitmapData编码为ByteArray:使用BitmapData的`encode`方法将BitmapData对象转换为JPEG或PNG格式的ByteArray。 ```actionscript var byteArray:ByteArray = bitmapData.encode(bitmapData.rect, ...
在C#中,`BitmapData`类是用于高效地访问和操作位图图像像素的核心类。这个类在处理大量像素操作时尤其有用,因为它允许直接访问图像数据的内存缓冲区,而无需通过昂贵的属性访问。`BitmapData`提供了一种优化的方法...
对于 Delphi 开发者,理解 BitmapData 单元的内部工作原理和使用方式,可以通过阅读源代码、参考文档或在线教程来进一步学习。同时,实践是提升技能的关键,尝试使用这个单元在自己的项目中进行图像处理,可以加深...
delphi 找图找色 BitmapData.pas 使用方法请到原作者yeye55的blog查看, http://yeye55blog.blog.163.com/blog/static/19724102120111043252016/
BitmapData类提供了对图像数据的低级别访问,包括设置和获取像素颜色、转换图像格式等操作。这个类通常用于创建、修改或分析图像。在SWT中,Image对象是一个抽象的概念,而BitmapData则代表了Image的内存表示,包含...
在本文中,我们将深入...通过理解BitmapData类和相关API,你可以实现各种复杂的图像处理任务,如等比切割图片,并且能够一键保存和自动命名图片。这个功能在网页设计、游戏开发、图像编辑等多个领域都有广泛的应用。
BitmapData是ActionScript 3(AS3)中的一个核心类,它是Adobe Flash Professional和Flex开发中的重要组成部分。这篇心得分享了关于使用BitmapData的一些高级技巧,以及如何利用它来提升图形绘制的效率和效果。...
同时,为了处理图像数据,我们需要`BitmapData`类和`JPEGEncoder`类。在你的AS3代码顶部添加以下导入语句: ```as3 import flash.media.Camera; import flash.display.BitmapData; import flash.utils....
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"显然包含了关于如何在AS3中使用BitmapData的CopyPixel方法来创建或修改位图的示例和教程。 BitmapData对象是AS3中表示位图图像的数据结构,它可以...
var byteArray:ByteArray = bitmapData.encode(bounds, new JPEGEncoderOptions()); ``` 接下来,我们需要在JavaServlet中处理这个ByteArray,将其解码并保存为图片。为了实现这一点,我们需要以下步骤: 1. 在...
as2.0 模拟火焰 import flash.display.*...var blueSpot: BitmapData = new BitmapData( clipBounds.xMax, clipBounds.yMax, true, 0 ) blueSpot.draw( blueSpotClip, new Matrix() ) blueSpotClip.removeMovieClip()
除了基本的图片保存功能,`JPEGEncoder`还支持自定义编码参数,如质量设置,这可以在编码时调整以控制文件大小和图像质量之间的平衡。在某些情况下,比如在资源有限的环境中或为了优化加载速度,可能会牺牲一些质量...
王者找图对比程序,delphi制作,设定一个图,找另一个图上是否有这个图!
首先,我们需要了解Flash中的两种主要的图片加载方式:使用Loader类和使用BitmapData类。Loader类是ActionScript 3.0中用于加载图形内容的主要工具,包括图片、SWF文件等。BitmapData类则用于处理位图数据,它可以...
### Flex 中使用 `FileStream` 和 `ByteArray` 实现图片另存 #### 1. **基础知识简介** - **Flex**:一种用于构建跨平台桌面应用程序和移动应用程序的技术。它基于Adobe Flash Player运行时环境,并使用MXML...