2014-03-04 84 views
0

有什么例子可以帮助从Bitmapdata生成基于Base64的图像? 我知道我必须在bitmapdata中使用编码,但我不知道如何使用它?它需要(rect:flash.geom.Rectangle,compressor:flash.utils.Object,?byteArray:flash.utils.ByteArray):flash.utils.ByteArray; flash.utils.ByteArray;如何将Bitmapdata转换为Base64格式?

如何填充压缩机incase我想用jpeg压缩?

另外,byteArray的输入是什么? 有什么帮助吗?

回答

0

有一个在AS3 doc of BitmapData.html#encode()一个例子:

// Compress a BitmapData object as a JPEG file. 
var bitmapData:BitmapData = new BitmapData(640,480,false,0x00FF00); 
var byteArray:ByteArray = new ByteArray(); 
bitmapData.encode(new Rectangle(0,0,640,480), new flash.display.JPEGEncoderOptions(), byteArray); 

要生成的Base64字符串,可以使用haxe.crypto.Base64(3.0.1后加入)。在OpenFL中,ByteArray扩展为Bytes。所以你可以简单地把它送到Base64.encode

+0

谢谢,至于AS3,byteArray传递给编码方法,为什么在openFL编码中返回byteArray?它不是通过参考发送的吗? – simo

+0

哦,确实,看着[BitmapData.html#encode()](https://github.com/openfl/openfl-native/blob/master/flash/display/BitmapData.hx#L163)的方法签名OpenFL,似乎总是为你创建ByteArray,而不是让你传递一个byteArray来写入。肯定它应该遵循AS3的签名。随意报告问题。 –

+0

那么......另外,OpenFL中的格式参数只接受''png“'或'”jpg“',但不包含'JPEGEncoderOptions'或其他任何... –