在python中加速bmp图像加载

2024-05-15 15:53:11 发布

您现在位置: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]

这需要很长时间(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)

我真的不知道该怎么加快速度。你能给我一些建议吗?什么东西慢?为什么慢?如何加快速度?你知道吗


Tags: 模块文件图像selfreadgreenbluered