我有一个应用程序可以通过URLLoader加载图像并将其弹出到影片剪辑中并显示该影片剪辑。
然后我需要能够将该图像写入xml文件,以便我可以在需要时重新加载图像。
我目前正在加载图像,然后通过以下内容将其存储为BitmapData:
var decodedBitmapData:BitmapData = Bitmap(image).bitmapData;
backgroundImageBitmapData = decodedBitmapData;
然后我按照以下几行执行操作将其写入xml文件。数据存储在一个对象中,该对象存储在名为aRooms的数组中。 (以上是“backgroundImageBitmapData”。)
var tempImage:Bitmap = new Bitmap(aRooms[i].backgroundImageData);
var bytes:ByteArray = tempImage.bitmapData.getPixels(tempImage.bitmapData.rect);
var roomBG:XML = new XML( <bg> { String(bytes) } </bg>);
然后将roomBG(XML)变量附加到我要导出的完整XML文件中。
从那里开始,我需要读取xmllist并将其转换为bitmapdata,以便我可以通过加载器加载它。但那就是我被困住的地方。
我可能也将其保存错误,所以如果是这样的话,欢迎所有帮助和更正。
感谢。
答案 0 :(得分:0)
如果我理解你的问题。您想要一个字符串表示 字节数组。你可以通过base64编码实现这一点。 You can download the libs here
然后你会有这样的事情:
var rect:Rectangle = new Rectangle(0,0,myImage.width,myImage.height);
var byteArray:ByteArray = myImage.bitmapData.getPixels(rect);
//to encode to a string
var encoded:String = Base64.encodeByteArray(byteArray);
//to decode the string
var decoded:ByteArray = Base64.decodeToByteArray(encoded);
decoded.position = 0;
var newBitmapData:BitmapData = new BitmapData(rect.width,rect.height,true,0xFFFFFFFF);
newBitmapData.setPixels(rect, decoded);
var newImage:Bitmap = new Bitmap(newBitmapData, "auto", true);