我正在尝试从数据流中提取 PNG 图像的大小
考虑流的起始数据
137 80 78 71 13 10 26 10 0 0 0 13 73 72 68 82 0 0 2 84 0 0 3 74 8 2 0 0 0 195 81 71 33 0 0 0 ...
^ ^ ^ ^ ^ ^
其中包含以下信息
137 80 78 71 13 10 26 10
0 0 0 13
73 72 68 82
0 0 2 84 0 0 3 74 8 2 0 0 0
195 81 71 33
有关图像大小的信息被编码在data块的8个字节中:
0 0 2 84
或以字节为单位 b'\x00\x00\x02T'
0 0 3 74
或以字节为单位 b'\x00\x00\x03J'
。我知道图像的宽度为
596
px,高度为 842
px,但我不知道如何计算图像的实际大小。
PS 这些值在 Python 中给出,这里是二进制形式的数据流
b'\x89PNG\r\n\x1a\n\x00\x00\x00\rIHDR\x00\x00\x02T\x00\x00\x03J\x08\x02\x00\x00\x00\xc3QG!\x00\x00\x00\tpHY'
每个字节都是相应维度的以 256 为基数的数字。所以 0 * 256^3 + 0 * 256^2 + 2 * 256 + 84 = 596,而 0 * 256^3 + 0 * 256^2 + 3 * 256 + 74 = 842。