Re: [理工] 請問數位圖片佔的大小

看板Grad-ProbAsk作者 (~口卡口卡 修~)時間11年前 (2013/03/25 14:05), 編輯推噓3(303)
留言6則, 3人參與, 最新討論串2/2 (看更多)
※ 引述《lwhs (lwhs)》之銘言: : 今有 800x600 像素的灰階數位圖片 每個象素均以一個byte表示之 : 試問 以bitmap(bmp)格式存之 此圖片將佔去多少記憶體空間? : sol: : 每一pixel佔 3bytes 共佔3x800x600=1440000bytes記憶體空間 : 小弟想請問 bmp每一pixel佔 3bytes 這是對的嗎? : 那不就表示bmp也是全彩共24bits? 還是bmp是灰階? : 雖然我剛測試儲存bmp檔後也是全彩 所以表示他是佔24bits? : 因為大部分的書都沒提到bmp佔多少位元 : 謝謝了 --- 我用回文 bmp 圖檔主要分三部分: <1> header <2> palette <3> raw data <1> header 共佔 54 bytes 用來定義整張 image 的 spec <2> 若只要儲存 256色 (以下) 的影像 每個 pixel 都用 24 bits 來儲存, 儲存量過於浪費 所以才有 palette 這個東西 簡單說,它是用來定義一組 color map: <index> => <color> 00 => R1 G1 B1 A1 01 => R2 G2 B2 A2 ... 一旦定義好這個 map, 後面的 raw data 就不需要花 3bytes 來記錄 pixel 而只需要 1 byte (index) 來儲存 因此,一張 256色的 800x600 bmp 圖檔大小 = 54 + 256*4 + 800*600 (bytes) Note: <1> 若是存成 2/4/8/16 色的圖檔, 儲存量會更小 因為 index 所需的 bits 數表示不需要那麼多 (1 byte) <2> 若 image width 非 4 的倍數, 需做 zero pending 只是以原po例子而言, 800 為 4 的倍數 因此不須理會此 case -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.98.124.34

03/25 22:11, , 1F
....好專業@@ 謝謝你^^ 這樣看來bmp他不是佔24bits了
03/25 22:11, 1F

03/26 00:21, , 2F
要看是哪種儲存格式。 若是24位元的bmp圖檔,每個 pixel
03/26 00:21, 2F

03/26 00:21, , 3F
就真的是用 24bits 來記憶
03/26 00:21, 3F

03/26 00:22, , 4F
其實你可以用小畫家的另存新檔來驗證答案 XD
03/26 00:22, 4F

03/26 11:02, , 5F
doom大會的東西還真多 真強
03/26 11:02, 5F

03/27 23:07, , 6F
太專業了 謝謝你 我剛試一下WIN7的BMP檔還有分好幾種位元選擇
03/27 23:07, 6F
文章代碼(AID): #1HJ-aglC (Grad-ProbAsk)
文章代碼(AID): #1HJ-aglC (Grad-ProbAsk)