1. 程式人生 > >圖形影象學習心得——bmp影象大小biSizeImage演算法公式由來

圖形影象學習心得——bmp影象大小biSizeImage演算法公式由來

csdn論壇搜尋關鍵字:

biSizeImage

主要連結:

關鍵心得:

biSizeImage=(biWidth*biBitCount+31)/32*4*biHeight其中,biWidth*biBitCount是每一行影象佔用的位數,除以8是每行影象佔用的位元組數,要為4的整數倍,所以除以32再乘以4
31是按整數除法自動取整的原則來的,其保證每行影象位元組數必須是4的整倍數!
舉一個例子,對於2色圖,如果圖象寬是31,則每一行需要31位儲存,合3個位元組加7位,因為位元組數必須是4的整倍數,所以應該是4。所以補齊時需要加上4個位元組數即32位

===================================

1:biWidth = 241 是點陣圖的寬度而不是位元組數目
2:(bits)其實需要輸入:(biWidth * biBitCount),
3:WIDTHBYTES()根據輸入(biWidth*biBitCount)而得出行位元組數,而掃描行位元組數乘以掃描行總數(點陣圖的高度biHeight),就得出位資料的實際位元組數目,估計你是理解錯誤了.
4:那估計是亂寫的,正確是不能把 (xx)/32*4寫成(xx)/8的,在計算機那是不相等的,舉例:
width = 2,bpp = 8那麼行位元組數應該是
(2*8+31)/32*4 得4個位元組.
(2*8+31)/8 得5個位元組.
有少少常識的都知道,上面那個是對的,下面那個是錯的,原因那些傢伙根本不理解"對齊"的意思,片面地把"/32*4"合成為"/8"來誤人誤已. hoho.