我正在阅读Python中的24 bpp位图图像。我正在使用struct模块,并逐字节地读取我的文件并将BGR元素存储在我的多维数组中。请参阅以下代码:
char = fileObject.read(1)
self.blue[w][h] = struct.unpack('=B', char)[0]
char = fileObject.read(1)
self.green[w][h] = struct.unpack('=B', char)[0]
char = fileObject.read(1)
self.red[w][h] = struct.unpack('=B', char)[0]
这需要很长时间(2732 x 1536像素图像需要10秒)。
我想加快速度,但我不确定如何。我在想这样的事情:
threeChar = fileObject.read(3)
self.blue[w][h] = ((threeChar >> 8) << 8) #knock of not-needed bits
self.green[w][h] = ((threeChar >> 4) << 8)
self.red[w][h] = (threeChar << 8)
我不确定如何在这里加快速度。你能给我任何建议吗?什么是缓慢的,为什么它慢?我如何加快速度?