Java 如何创建新的图像格式?

Java 如何创建新的图像格式?,java,image,file,header,format,Java,Image,File,Header,Format,我一直在玩java中的一些图像处理工具,想知道如何创建自己的图像格式(具有自己的文件扩展名和标题) 假设我正在尝试将2个jpeg图像存储到扩展名为.abcde的新文件中 我将如何处理此问题并修改文件头? 我做了一些研究,发现了这一点,但它没有任何例子。 任何建议/参考/例子都会很好,谢谢 好的。在这里你应该问自己一个问题-什么是二进制文件?它是一种包含8位值(0-255范围)的“框”。图像究竟是什么?相同的。但图像中的数据是专门存储的。例如,如果查看位图(*.BMP文件),您将看到它包含RGB

我一直在玩java中的一些图像处理工具,想知道如何创建自己的图像格式(具有自己的文件扩展名和标题)

假设我正在尝试将2个jpeg图像存储到扩展名为.abcde的新文件中

我将如何处理此问题并修改文件头? 我做了一些研究,发现了这一点,但它没有任何例子。


任何建议/参考/例子都会很好,谢谢

好的。在这里你应该问自己一个问题-什么是二进制文件?它是一种包含8位值(0-255范围)的“框”。图像究竟是什么?相同的。但图像中的数据是专门存储的。例如,如果查看位图(*.BMP文件),您将看到它包含RGB值(它实际上取决于颜色深度,但我们现在讨论的是24位颜色)。那么,这意味着什么?这意味着每个像素存储有3个字节(24位)的红绿色和蓝色值。 例如:0x00 0x00 0x00-这是十六进制表示的黑色像素 0xFF 0xFF 0xFF-白色。 但以这种方式存储图像数据效率很低。例如,1024x1024图像将是1024*1024*3=3145728字节!!或3兆字节。这还不包括alpha通道,它也存储了一个字节。 因此,数据压缩可以是有损的,也可以是无损的。例如,如果在十六进制编辑器中打开一个PNG文件,您将看到一个DEFLATE压缩数据(LZ77+Huffman编码)。它是无损的。 GIF文件是用LZW压缩的,这在当今是非常低效的。有很多非常好的图像格式,比如FLIF或BPG,它们比PNG和JPEG更好地压缩图像。 所以,如果你想创建自己的文件格式,你可以创建一个原始的像素容器文件(比如BMP或PCX),或者压缩的像素文件(这里你应该编写一个自定义的数据压缩算法,C或C++适合这个目的)。