0

我有一个应用程序,我可以通过 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 并将其转换为我认为的位图数据,以便我可以通过加载器加载它。但这就是我卡住的地方。

我也有可能保存错误,所以如果是这种情况,欢迎所有帮助和更正。

谢谢。

4

1 回答 1

0

如果我正确理解你的问题。您想要字节数组的字符串表示形式。您可以通过对其进行 base64 编码来实现这一点。您可以在此处下载库

然后你会有这样的事情:

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);
于 2012-05-09T12:15:08.863 回答