【发布时间】:2018-08-18 11:00:45
【问题描述】:
我有一个接受位图二进制数据的设备。我想将一个 numpy 二维数组转换为位图并将其发送到该设备。目前我所做的是将二维数组保存到位图文件中,然后将其读入变量并将其发送到设备。我想跳过写入磁盘的步骤。有没有简单的方法在 Python 中做到这一点?
【问题讨论】:
-
是的,有很多方法;去做吧;如果您遇到困难,请提出问题
标签: python arrays numpy bitmap bmp
我有一个接受位图二进制数据的设备。我想将一个 numpy 二维数组转换为位图并将其发送到该设备。目前我所做的是将二维数组保存到位图文件中,然后将其读入变量并将其发送到设备。我想跳过写入磁盘的步骤。有没有简单的方法在 Python 中做到这一点?
【问题讨论】:
标签: python arrays numpy bitmap bmp
您可以使用io.BytesIO作为内存缓冲区来存储位图并在不写入磁盘的情况下发送。
例如,假设您使用 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)
【讨论】: