在java中创建自定义图像格式

时间:2012-04-10 17:40:46

标签: java image

我想创建一个保存在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;
    }
}

1 个答案:

答案 0 :(得分:1)

您应该调查specification for PNG

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