C 2048x2032原始图像数据大小?
我需要将一个24位的原始图像直接从ram中转储到一个文件中,但我一直在处理大量的垃圾数据。因此,我想计算我的参数,尝试并转储字面上只有图像…内存块将分配给只有图像,因此它将始终从我的指针开始。 所以我认为,因为C 2048x2032原始图像数据大小?,c,image,ram,C,Image,Ram,我需要将一个24位的原始图像直接从ram中转储到一个文件中,但我一直在处理大量的垃圾数据。因此,我想计算我的参数,尝试并转储字面上只有图像…内存块将分配给只有图像,因此它将始终从我的指针开始。 所以我认为,因为WRITE()(在C中)函数与字节大小一起工作,我在这里进行的计算将帮助我解决这个问题。但是我对整个图像数据都是新手,所以我不太确定它的100%和12毫克每幅图像看起来是否有点小 假设在2048x2032(24位)原始图像中,总像素计数为 2048x2032 = 4161536*24
WRITE()
(在C中)函数与字节大小一起工作,我在这里进行的计算将帮助我解决这个问题。但是我对整个图像数据都是新手,所以我不太确定它的100%和12毫克每幅图像看起来是否有点小
假设在2048x2032(24位)原始图像中,总像素计数为
2048x2032 = 4161536*24 = 99876864/8 = 12484608 ?
(bits per pixel) (bytes) (bytes in total)
是的,没错
但是,您应该知道,有些图像在每行末尾都有“填充”,这意味着理论上一行可以是2048*24位加上几个字节长。关于图像中有多少位包含实际数据的计算是正确的。但实际文件大小取决于像素格式。其中有很多:
- RGB(1字节==1颜色)
- 32位RGB(1 32位int==1像素,8位被浪费或用于alpha通道)
- 32位RGBA(3x8位彩色+8位alpha通道)
- 16位彩色RGB(每种颜色16位)
仅举几个例子。如果这是每像素24位(3字节),那么您的计算是正确的。@Mansuro的格式很好:)谢谢大家的快速回复!