我有一个简单的图像,存储宽度,高度,像素格式和其他一些我不确定的事情,然后是像素数据。使用RGBA32像素格式计算图像像素阵列的尺寸
我已经被告知像素格式是RGBA32,而其余的数据只是像素数据。
计算它的公式是什么? 根据我的理解,每个RGBA颜色需要8位,因此每个像素需要4个字节。
那么我会得出像素数组的大小是宽*高* 4,但这还不够。
我有一个简单的图像,存储宽度,高度,像素格式和其他一些我不确定的事情,然后是像素数据。使用RGBA32像素格式计算图像像素阵列的尺寸
我已经被告知像素格式是RGBA32,而其余的数据只是像素数据。
计算它的公式是什么? 根据我的理解,每个RGBA颜色需要8位,因此每个像素需要4个字节。
那么我会得出像素数组的大小是宽*高* 4,但这还不够。
64px乘64px BMP和RGBA32通常是16440字节(假设BITMAPV3INFOHEADER)。头部56字节,像素数据16384字节(64 * 64 * 4)。 header size can vary though并且假定标准BMP为124字节(BITMAPV5HEADER)。
我猜想,你有一个或多个以下的要占你的额外〜5376(21760 - 16384)字节:
在任何情况下,我会先检查最后 16384(64×64×4)字节的数据中的哪一个有可能其中图像数据是(如果这种格式在所有需要后BMP格式,并且没有一些尾随元数据或ICC配置文件或完整性检查)。在旁注中,RGBA数据通常首先与alpha字节一起存储(ARGB)。
为了熟悉一个常见的图像格式的结构,可能需要看看这个diagram of the BMP file format。
你怎么知道这是不够的?你为什么不发布你拥有的额外数据? – Gabe 2012-02-21 04:24:44
谁给了你这张图片?如果这是一种特定的图像格式,我猜测可能有某种标题或校验和或元数据或注释。 – userx 2012-02-21 04:28:41
我的宽度和高度为64 * 64,总像素数据大小为21760.当我读取21760字节并显示它时,它看起来很好。当我只读64 * 64 * 4时,这是错误的。 – MxyL 2012-02-21 04:31:46