Re: [理工] 請問數位圖片佔的大小
※ 引述《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
03/25 22:11, 1F
→
03/26 00:21, , 2F
03/26 00:21, 2F
→
03/26 00:21, , 3F
03/26 00:21, 3F
→
03/26 00:22, , 4F
03/26 00:22, 4F
推
03/26 11:02, , 5F
03/26 11:02, 5F
推
03/27 23:07, , 6F
03/27 23:07, 6F
討論串 (同標題文章)