将像素数组保存到文件中

时间:2012-12-25 23:15:15

标签: haxe

在Haxe编程语言中,是否有任何跨语言的方法将像素数据数组保存到文件中(例如,以BMP或PNG格式)?

class SavePixelsToFile {
  static function main(){
    //how can I save this array of pixel data to a file? It is a simple 2D array of RGB arrays, with the red, green, and blue components in the respective order.
    var arr = [
      [[0, 0, 0],[255, 255, 255]],
      [[255, 255, 255],[0, 0, 0]]
      ];
  }
}

2 个答案:

答案 0 :(得分:2)

格式库可以满足您的需求。 http://code.google.com/p/hxformat/

安装此库:haxelib安装格式

使用以下命令将其链接到hxml文件中:-lib format

要将图像数据写入文件,请执行以下操作:

function writePixels24(file:String, pixels:haxe.io.Bytes, width:Int, height:Int) {
    var handle = sys.io.File.write(file, true);
    new format.png.Writer(handle)
        .write(format.png.Tools.build24(width, height, pixels));
    handle.close();
}

var bo = new haxe.io.BytesOutput();
for (pixel in pixels)
    for (channel in pixel) 
         bo.writeByte(channel);
var bytes = bo.getBytes();
writePixels24("Somefile.png", bytes);

这适用于具有sys。*包(非闪存)的目标。你仍然可以在没有sys。*包的情况下生成png,但是需要另一种保存文件的方法。

答案 1 :(得分:0)

易于编写的格式为PPM。 netpbm工具可以轻松操作这些工具,还可以转换为多种格式,包括PBMPNG