Can read in the BMP data correctly ,but the size is not right?
Peter Otten
__peter__ at web.de
Mon Apr 29 13:57:07 EDT 2013
Jimmie He wrote:
> I'm trying to read in the BMP data by the the code below,and I'm check
> the data array with WINHEX,and it is correct,but which confuse me is
> why the size is 0x180,but the actual picture should be 48*48 = 0x120
> bytes because I use 1-bit BMP not the 24bit BMP,could any one give some
> hints?
According to wikipedia <http://en.wikipedia.org/wiki/BMP_file_format>
"""
The size of each row is rounded up to a multiple of 4 bytes [...]
"""
So 48/8 == 6 will be rounded to 8, and 8*48 == 384 == 0x180.
> handle1=open( bmpfilename ,"rb")
> raw = bytearray(handle1.read( ))
> handle1.close
To actually do something the last line should be handle1.close(). I
recommend
with open(bmpfilename ,"rb") as handle1:
raw = bytearray(handle1.read())
instead which has the additional advantage that the file will be closed if
an exception occurs in the with-suite.
More information about the Python-list
mailing list