2014-07-22 113 views
0

我需要将一张24位原始图像直接从内存中转储到一个文件中,但我一直在获取大量垃圾数据。所以编号喜欢计算我的参数来尝试转储文字只图像... RAM的块将被分配为只有图像,所以它总是会开始我的指针开始的地方。 所以我认为,因为WRITE()(在C)函数与字节的大小,这个计算在这里做将帮助我。但即时通讯新的整个图像数据,所以我不太确定,如果它的100%和12Meg每个图像似乎有点小。2048x2032原始图像数据大小?

是正确的假设,在2048x2032(24位)原始图像的总像素数会

2048x2032 = 4161536*24  = 99876864/8 = 12484608 ? 
      (bits per pixel)  (bytes)  (bytes in total) 
+0

如果这是每像素24位(3字节),则您的计算是正确的。 – rostok

+1

@Mansuro为漂亮的格式:) – BaddaBoompshhh

+0

感谢您的快速回复大家! – BaddaBoompshhh

回答

1

是的,那是正确的。

但是,您应该知道,某些图像在每行末尾有“填充”,意思是理论上一行可能是2048 * 24位加上几个字节长。

0

关于图像中有多少位包含实际数据,计算是正确的。但实际的文件大小取决于像素格式。还有那些吨:

  • RGB(1个字节== 1色)
  • 32位RGB(1个32位的int == 1个像素,8位被浪费或用于alpha通道)
  • 32位RGBA(3×8位彩色+ 8位alpha通道)
  • 16位色彩RGB(每种颜色16位)

仅举几例。

相关问题