gpt4 book ai didi

java - 如何创建新的图像格式?

转载 作者:行者123 更新时间:2023-12-01 08:46:23 25 4
gpt4 key购买 nike

我一直在使用 java 中的一些图像处理工具,并且想知道如何创建自己的图像格式(具有自己的文件扩展名和 header )。

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

我该如何处理这个问题并修改文件头?我做了一些研究并发现了这一点,但它没有任何例子。 https://gamedevelopment.tutsplus.com/tutorials/create-custom-binary-file-formats-for-your-games-data--gamedev-206

任何建议/引用/示例都会很棒,谢谢。

最佳答案

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

关于java - 如何创建新的图像格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42889029/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com