Ускорьте загрузку изображений bmp в python
Я читаю в растровом изображении 24 bpp в Python. Я использую модуль 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]
Это занимает много времени (10 секунд для изображения с разрешением 2732 x 1536 пикселей).
Я хочу ускорить это, но я не знаю как. Я думал что-то вроде этого:
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)
Я не совсем уверен, как можно ускорить процесс здесь. Можете ли вы дать мне какой-нибудь совет? Что здесь медленно и почему медленно? Как мне это ускорить?