PIL 或者 OpenCV 的图像数据不保存到磁盘上而获取到它的原始编码数据——Convert PIL or OpenCV Image to Bytes without Saving to Disk

PIL 或者 OpenCV 的图像数据不保存到磁盘上而获取到它的原始编码数据


背景知识

有时,我们可能想要一个内存中的jpg或png图像,该图像表示为二进制数据。但通常,我们得到的是OpenCV(Numpy ndarray)或PIL图像格式的图像。在这篇文章中,我将分享如何在不将底层映像保存到磁盘的情况下将Numpy映像或PIL映像对象转换为二进制数据。

如果图像文件保存在磁盘上,我们可以通过open()方法 设置 rb 模式直接读取二进制格式的图像文件:

with open('test.jpg', 'rb') as f:
    byte_im = f.read()

现在,图像将从磁盘读取到内存,并且仍然是二进制格式。
如果我们想调整原始图像的大小并将其转换为二进制数据,而不保存调整大小的图像并从硬盘上重新读取,该怎么办?

考虑一个现实场景:

我们通过深度学习算法,判别一个场景是否有危险,如果有危险立即截图,通过邮件或者网络消息进行即时发送,那么我们发送的肯定是一个内存中的数据,很少是保存到本地后再发送。

但是有的发送邮件接口,或者消息的发送接口是只支持 文件字节码数据或者 编码后的字节数据


将图像数据转换为字节码数据

我们来看看两种常用的图形处理库,如何将内存中的图像数据转换为字节码数据

OpenCV

This is how to achieve tha

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

shiter

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值