一:图片转字符
过程:DisplayObject>bitmapData>
ByteArray>Base64>String
把图片转化为二进制或字符,使用AS3自带的JPEGEncoder和PNGEncoder,其中JPEG格式就算使用100%的品质在还原时还是失真得比较严重.
下面是把位图的bitmapData数据转化为二进制数据,再输出成字符串形式.
As代码
ar bitmapData:BitmapData
=
new BitmapData(image.width,image.height);
bitmapData.draw(image);
//
转化为BitmapData数据
var
encoder:PNGEncoder
=
new PNGEncoder();
//
也可以使用JPEG格式 new JPEGEncoder(
100
)
var
bytes:ByteArray
=
encoder.encode(bitmapData);
//
转化为二进制数据
var
Base64:Base64Encoder
=
new Base64Encoder;
//
将字符串或 ByteArray 编码为 Base64 编码的字符串。
var
imageStr:String
=
Base64.toString();
//
输出为字符串
二:字符转图片
过程:String>Base64>
ByteArray>Bitmap>DisplayObject
还原时,先使用Base64Decoder转为Base64编码的ByteArray,再用Loader对象来读取为Bitmap,完成还原过程.
As代码
var
spr:Sprite
=
new Sprite;
var
Base64:Base64Decoder
=
new Base64Decoder;
Base64.decode(imageStr);
//
读取字符串
var
bytes:ByteArray
=
Base64.toByteArray();
//
转化为ByteArray数据
var
load:Loader
=
new Loader();
load.loadBytes(bytes);
//
读取ByteArray
load.contentLoaderInfo.addEventListener(Event.COMPLETE, complete);
function
complete(event:Event):void
{
var bitMap:Bitmap=event.target.content as Bitmap;//读取Bitmap
spr.addChild(bitMap);
}
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
10(可回看)【C语言 & 趣味算法】数制转换(常见,二进制、八进制、十进制、十六进制之间任意转换)
w(8)位有符号的值范围为 -2(w - 1) ~ 2(w - 1) - 1 = -128 ~ 127;
w(8)位无符号的值范围2(w) - 1 = 255;
2(w) / 2(w - 1) = 2
2(5) / 2(5 - 1) = 2(5) / 2(4) = (2 * 2...