如何将PNG图像转换为数组?

时间:2011-12-19 05:22:08

标签: arrays actionscript-3 image bytearray

我正在尝试制作一个基于图块的AS3游戏,该游戏使用PNG图像作为地图的基础,从图书馆加载它们并将数据转换为数据,每个数据像素都是一个单独的图块。基本上,如果我有一个128x128像素的PNG,比如说绿色像素在我的数组中被转换为“GRASS”,那么我可以循环遍历数组并相应地将贴图添加到地图movieclip中。

我查看了ByteArray类,我似乎无法将数据解码为可用的格式。如果有人有解决方案,请告诉我。

1 个答案:

答案 0 :(得分:3)

BitmapData课程似乎就像你要找的那样。确保库中的图像具有自己的类名,并且它的基类是Bitmap(在属性中),然后创建图像的实例,并使用getPixel循环遍历其位图像素数据。

这样的事情:

var image:Bitmap = new MyBMP();
var bmd:BitmapData = image.bitmapData;

for(var y:int=0; y < bmd.height; ++y)
{
    for(var x:int=0; x < bmd.width; ++x)
    {
        var pixelValue:uint = bmd.getPixel(x, y);
        trace(pixelValue.toString(16));
        // Test if the pixelValue matches the colour you want.
    }           
}

请注意,如果您使用的是Alpha通道,请务必使用getPixel32