2014-07-22 141 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位)

僅舉幾例。

相關問題