python从二维数组制作位图数据

时间:2018-08-18 11:00:45

标签: python arrays numpy bitmap bmp

我有一个接受位图二进制数据的设备。我想将一个numpy 2d数组转换为位图并将其发送到此设备。当前,我要做的是将2d数组保存到位图文件,然后将其读取到变量中并将其发送到设备。我想跳过写入磁盘的步骤。有没有简便的方法可以在Python中做到这一点?

1 个答案:

答案 0 :(得分:1)

您可以使用https://stackblitz.com/edit/angular-9nkrgd作为内存缓冲区来存储位图并发送它而无需写入磁盘。

例如,假设您使用PIL或Pillow保存位图文件:

import io
from PIL import Image

image = Image.fromarray(numpy_array)
if image.mode != 'RGB':
    image = image.convert('RGB')

with io.BytesIO() as f:
    image.save(f, format='BMP')
    send_to_device(f)