位圖文件大小的精准計算方法


位圖文件大小的精准計算方法
發布時間:2011-11-20 5:27:00
 

      8位(bit)位圖:彩色版中有2^8=256種顏色,具體哪256種顏色可由調色板靈活規定,因此每個像素點最多有256種情況(顏色),故剛好可用兩位十六進制碼(16^2=256)表示,占1字節。一幅512×512的8位位圖大小計算方法:位圖文件頭(14字節)+位圖信息頭(40字節)+調色板(256×彩色表4字節)+實際像素點占內存(512×512×1字節)=263 222字節(Byte)。

      24位位圖:又名RGB真彩色圖,含2^24=16 777 216=16M色,沒有彩色表,原因上文已說明。每個像素點由3個字節(十六進制碼6位)表示,每個字節負責控制一種顏色,分別為藍(Blue)、綠(Green)、紅(Red)。為什么每種顏色用1個字節控制呢?我們知道,圖像中任何顏色都是由藍、綠、紅混合而成,而在24位位圖中這三種顏色的跨度(深度)分別為256=2^8,占二進制8bit=1字節,故藍、綠、紅剛好可用1個字節表示。那么每個像素點可能的顏色就有256×256×256=2^24種。一幅256×256的24位位圖大小計算方法:位圖文件頭(14字節)+位圖信息頭(40字節)+實際像素點占內存(256×256×3字節)=196 662字節(Byte)。     需要注意的是,Windows有“補零”的習慣!即要求位圖的每一行像素所占字節數必須被4整除。若不能倍4整除,則在該位圖每一行的十六進制碼末尾“補”1至3個字節的“00”。例如:一幅寬253×高256的24位位圖,微軟在生成該圖為實際文件時,計算每一行像素所占字節=寬253×3字節=759字節,檢驗其被4除余1,則在每行的十六進制碼末尾加1個字節,補“00”,變為760字節。因此我們計算該圖大小時應先判斷是否“補零”,再得出算法:該圖大小=位圖文件頭(14字節)+位圖信息頭(40字節)+實際像素點占內存(高256×每行760字節)=194614字節(Byte)。     有趣的是,“補零”只針對位圖的寬進行檢驗,一幅寬256×高253的24位位圖,其大小=位圖文件頭(14字節)+位圖信息頭(40字節)+實際像素點占內存(高253×每行768字節)=194358字節(Byte)< 196 662字節(Byte)。這樣,只是把此圖像的寬和高顛倒,圖像所占內存竟然變小了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM