gpt4 book ai didi

png - PNG 文件中的 Adler-32 校验和

转载 作者:行者123 更新时间:2023-12-01 23:04:44 28 4
gpt4 key购买 nike

我目前正在编写一个 C 程序,该程序从另一个生成的数据文件构建 PNG 图像。图像是调色板类型。

Adler-32 校验和是针对...的未压缩数据计算的吗

a) IDAT 数据 block 中的每个压缩 block ?

b) IDAT 数据 block 中的所有压缩 block ?

c) 跨越所有 IDAT 数据 block 的所有压缩 block ?

来自 http://www.w3.org/TR/PNG/ 的文档, https://www.rfc-editor.org/rfc/rfc1950和 rfc1951(与 previuos 在同一地址)我认为它是上面的情况“c”,允许一个人的 deflate 实现切碎和改变每个 block 的数据压缩方式,而忽略压缩 block 如何在连续的之间分割IDAT block 。

这是正确的吗?

最佳答案

一个 PNG 文件中只能有一个压缩图像数据流,这是一个单独的 zlib 流,最后有一个 Adler-32 检查,即所有未压缩 数据(由过滤器和隔行扫描预处理)。该 zlib 流可能会也可能不会被分解成多个 IDAT block 。每个 IDAT block 都有自己的 CRC-32,它是 block 类型代码“IDAT”的 CRC-32 和其中的压缩数据。

我不确定您所说的“允许一个人的 deflate 实现来分割和更改每个 block 的数据压缩方式”是什么意思。有效 PNG 文件的 deflate 实现必须将所有过滤后的图像数据压缩为单个 zlib 流。

将其压缩为单个 zlib 流后,您可以根据需要将该流分解为一系列 IDAT block ,或分解为单个 IDAT block 。

关于png - PNG 文件中的 Adler-32 校验和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33914640/

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