0

我想创建一个包含在 PNG 图像中的自定义文件图像格式。我一直在研究我怎么可能做到这一点,但我不知道从哪里开始。我想以这种方式定义自定义文件格式: - 第一个字节包含格式版本 - 接下来的 2 个字节包含文件包含的文件数 - 其余文件内容是一个接一个复制的 png 文件

我可以使用流来读取文件,但我不知道如何将每个 png 转换为 BufferedImage,因为 ImageIO 读取完整的流。这就是我所带来的一切:

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 的规范

用最简单的术语来说,您希望将 4 字节块读入数组,直到找到IEND(0x73 0x69 0x78 0x68)。然后将其输入javax.imageio.ImageIO.read();

于 2012-04-10T17:50:41.743 回答