2012-12-25 3 views
0

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

형식 라이브러리가 원하는대로 작동합니다. http://code.google.com/p/hxformat/

이 라이브러리를 설치 사용하여 hxml 파일 형식을

링크를 설치 haxelib : -lib 형식

파일에 이미지 데이터를 작성하려면 다음을 수행하십시오

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를 생성 할 수 있지만 파일을 저장하는 다른 방법이 필요합니다.

+0

고마워, 나는 하루 종일이 질문에 대한 답을 기다리고 있었다. :) –

0

쓰기 쉬운 형식은 PPM입니다. netpbm 도구는 이들을 쉽게 조작 할 수 있으며 PBMPNG을 비롯한 다양한 형식으로 변환 할 수 있습니다.

+0

문서에 Haxe에 대한 언급이 없습니다. 특히 크로스 언어 Haxe 라이브러리 (예 : Sys API)를 사용하여 PPM 파일을 생성 할 수 있습니까? –