2012-04-10 29 views
0

我想创建一个自定义文件图像格式,它保存在PNG图像中。我一直在研究如何可能,但我没有任何想法从哪里开始。我想用这种方式定义自定义文件格式: - 第一个字节包含格式版本 - 接下来的2个字节包含文件保存的文件数 - 其余文件内容是一个接一个复制的png文件在java中创建自定义图像格式

我可以使用流来读取文件,但我不知道如何将每个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

你为什么要这样做?使用gzip流还不够吗?为什么创建自定义文件格式 – ControlAltDel 2012-04-10 17:48:56

+0

只为学习purpours – 2012-04-10 17:58:23

回答

1

您应该调查specification for PNG

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