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

标签 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;
    }
}

最佳答案

您应该调查specification for PNG .

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

关于java - 在java中创建自定义图像格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10093692/

相关文章:

java - 如何在JPanel中设置背景图片

java - 是否可以将 COUNT 与 DISTINCT JPA 投影一起使用?

java - MediaStorage.Images.Thumbnails 在 API29 中已弃用。如何使用loadThumbnail()?

ios - 自适应阈值 OpenCV IOS

html - 带有 HTML 和 CSS 的无限滚动照片横幅在悬停时暂停动画

安卓开发 : Using Image From Assets In A WebView's HTML

java - jar 文件无法在 java 7 中运行,但可以在 java 6 中运行

java - 如何导入和使用指定路径中的类?

java - XPath 查询 : How to refer to the 'current node' (Java/Saxon)

css - 水平导航菜单中的垂直对齐图像