2014-03-04 122 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'或其他任何... –