Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 2048x2032原始图像数据大小?_C_Image_Ram - Fatal编程技术网

C 2048x2032原始图像数据大小?

C 2048x2032原始图像数据大小?,c,image,ram,C,Image,Ram,我需要将一个24位的原始图像直接从ram中转储到一个文件中,但我一直在处理大量的垃圾数据。因此,我想计算我的参数,尝试并转储字面上只有图像…内存块将分配给只有图像,因此它将始终从我的指针开始。 所以我认为,因为WRITE()(在C中)函数与字节大小一起工作,我在这里进行的计算将帮助我解决这个问题。但是我对整个图像数据都是新手,所以我不太确定它的100%和12毫克每幅图像看起来是否有点小 假设在2048x2032(24位)原始图像中,总像素计数为 2048x2032 = 4161536*24

我需要将一个24位的原始图像直接从ram中转储到一个文件中,但我一直在处理大量的垃圾数据。因此,我想计算我的参数,尝试并转储字面上只有图像…内存块将分配给只有图像,因此它将始终从我的指针开始。 所以我认为,因为
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的格式很好:)谢谢大家的快速回复!