首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

flash as2怎么将byte转化为图片

2012-02-12 
flash as2如何将byte转化为图片如题[解决办法]/*** @link http://www.klstudio.com* @author Kinglong* @v

flash as2如何将byte转化为图片
如题

[解决办法]
/**
* @link http://www.klstudio.com
* @author Kinglong
* @version 0.5
*/

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类只是一个静态类!");
}

}

}

热点排行