我正在尝试阅读width
文件的height
,color depth
和bmp
,并将值输出为Integers
。我使用.seek
方法跳过不需要的字节,使用.read
方法读取包含所需信息(offsets 18, 22 and 28)
的字节。
def bytes2int(b):
res = 0
for x in b[::-1]:
res = (res << 8) + x
return res
f = open("red.bmp", "rb")
f.seek(18)
print("Width: ", bytes2int(f.read(4)), "px")
print("Height: ", bytes2int(f.read(4)), "px")
f.seek(2, 1)
print("Colordepth: ", bytes2int(f.read(2)), "bmp")
f.close()
所以当我尝试使用mac os终端运行代码时,我收到一个TypeError ...
Traceback (most recent call last):
File "Untitled.py", line 12, in <module>
print("Width: ", bytes2int(f.read(4)), "px")
File "Untitled.py", line 8, in bytes2int
res = (res << 8) + x
TypeError: unsupported operand type(s) for +: 'int' and 'str'
我现在想要解决这个问题好几周了,如果有人抽出时间帮助我,我会非常高兴。