0

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

ファイルを読み取るためにストリームを使用できますが、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;
    }
}
4

1 に答える 1

1

PNGの仕様を調査する必要があります。

最も簡単に言えば、IEND(0x73 0x69 0x78 0x68) が見つかるまで、4 バイトのチャンクを配列に読み込む必要があります。javax.imageio.ImageIO.read()次に、それを;にフィードします。

于 2012-04-10T17:50:41.743 に答える