【发布时间】:2020-12-18 11:17:18
【问题描述】:
有问题
我有一个 PIL 图像,我想将其转换为字节数组。我无法将图像保存在硬盘上,因此无法使用默认的open(file_path, 'rb') 功能。
我尝试了什么
为了解决这个问题,我正在尝试使用io 库来执行此操作:
buf = io.BytesIO()
image.save(buf, format='JPEG')
b_image = buf.getvalue()
将图像视为功能性 PIL 图像。
“b_image”将用作 Microsoft Azure 认知服务函数read_in_stream()的参数
如果我们查看文档,我们可以看到这个函数图像参数必须是:
图片 外部参照:生成器
必填
图像流。
提供文档here
问题
当我执行它时,我得到了错误:
文件“C:...\envs\trainer\lib\site-packages\msrest\service_client.py”,第 137 行,在 stream_upload 块 = data.read(self.config.connection.data_block_size)
AttributeError: 'bytes' 对象没有属性 'read'
客户端身份验证或其他方面没有错误,因为当我将使用此行导入的图像作为参数提供时:
image = open("./1.jpg", 'rb')
一切正常..
来源
我还看到了 this 帖子,它准确地解释了我想要做什么,但在我的情况下它不起作用。任何想法将不胜感激。
【问题讨论】:
标签: python azure azure-cognitive-services bytesio