2012-04-10 9 views
0

PNG画像を保持するカスタムファイル画像フォーマットを作成したいと思います。私はどうやってそれを行うことができるかを調査してきましたが、どこから始めたらいいのかわかりません。 - 最初のバイトには、フォーマットのバージョンが含まれています - 次の2バイトには、ファイルが保持するファイルの数が含まれています - 残りのファイルの内容は、次々とコピーされるpngファイルですJavaでカスタム画像フォーマットを作成する

ファイルを読み込むためにストリームを使用することはできますが、ImageIOがフルストリームを読み込むので、各pngをどのようにBufferedImageに変換できるか分かりません。 これは、すべて私がしてきたたものである:

public static void main(String[] args) throws IOException { 
    DataInputStream input = new DataInputStream(new FileInputStream("C:\\a.spr")); 
    byte version = input.readByte(); 
    short imagenum = input.readShort(); 
    System.out.printf("version:%s\nimagenum:%s",version,imagenum); 
    BufferedImage[] images = new BufferedImage[imagenum]; 
    for(int i=0;i<imagenum;i++) 
    { 
     BufferedImage img; //TODO: Read the image 
     images[i] = img; 
    } 
} 
+1

なぜこれをやろうとしていますか? gzipストリームを使用していますか?なぜカスタムファイル形式を作成するのですか? – ControlAltDel

+0

ちょうど学習のためのpurporses –

答えて

1

あなたはspecification for PNGを調査する必要があります。

最も簡単な言葉では、IEND(0x73 0x69 0x78 0x68)が見つかるまで、4バイトのチャンクを配列に読み込みたいとします。その後、それをjavax.imageio.ImageIO.read()に送ります。

関連する問題