2012-08-26 19 views
2

我正在使用python編寫位圖文件。我的代碼來創建位圖標題是:python結構,不需要的額外字節

pack('bblll', 66, 77, fileLength, 0, 122) 

除非我的數學是錯誤的,(其中,這不是)這應該創造一個14個字節長字節的字符串。

B = CHAR(1個字節) L =長(4個字節)

1 + 1 + 4 + 4 + 4 = 14

但是,問題是,我接收2個額外的字節;說我有142一個文件長度,我會收到以下(在十六進制):在偏移0X2和0x3

42 4D 00 00 8E 00 00 00 00 00 00 00 7A 00 00 00 

的2個額外的比特被空值。他們來自哪裏?我該如何擺脫它們?它正在腐蝕我的圖像。

回答

5

它填充到四字節(字)邊界,因此long以自然偏移(即偏移量爲四的倍數)開始,使用前綴(或任何其他可能的字節順序前綴)來防止這個。

More info on this documentation page.

+0

你是我的英雄。我一定已經看清楚了;前一陣子,我不得不使用一個'<'來使用小端,不敢相信我錯過了。 –