Sean's Note: BMP 的 imagesize 怎麼算?

2009年10月9日 星期五

BMP 的 imagesize 怎麼算?

在BMP檔案裡,22H~25H的位置用 4 bytes 表示了 imagesize,

很直覺的會認為 BMP = height * width * bits / 8,
但事實上在一般電腦裡每次存取 4 bytes 的速度是較快的,
所以BMP來說,就會自動補 0 來至能夠讓 4 整除的大小,
例如:
有一張 BMP 的大小
width = 90
height = 30
bits = 24
imagesize = 8160
照理說應該會是 90 * 30 * 24 / 8 = 8100 (無法被4整除)
所以都會在 width 的右邊補 0 至能讓 4 整除,
90 * 3 / 4 = 67...2
(67+1) * 4 = 272 ( 每行多補了 2 bytes )
結果,272 * 30 = 8160

沒有留言:

張貼留言