在AS3中将图像输入和输出XML

时间:2012-05-07 23:11:33

标签: xml image actionscript-3

我有一个应用程序可以通过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,以便我可以通过加载器加载它。但那就是我被困住的地方。

我可能也将其保存错误,所以如果是这样的话,欢迎所有帮助和更正。

感谢。

1 个答案:

答案 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);