如何使用python从街景静态API呈现请求的图像?

如何使用python从街景静态API呈现请求的图像?,python,jpeg,google-street-view,google-street-view-static-api,Python,Jpeg,Google Street View,Google Street View Static Api,我使用了以下请求: 导入请求 url = 'https://maps.googleapis.com/maps/api/streetview?size=400x400&location=40.720032,-73.988354&heading=0&key=[YOUR KEY HERE]' r = requests.get(url) 我在r.contents中得到了这一点(如何将这些字节转换为图像?我尝试了PIL和matplotlib,但无法使其工作): 在“b”级以下的

我使用了以下请求:

导入请求

url = 'https://maps.googleapis.com/maps/api/streetview?size=400x400&location=40.720032,-73.988354&heading=0&key=[YOUR KEY HERE]'

r = requests.get(url)
我在r.contents中得到了这一点(如何将这些字节转换为图像?我尝试了PIL和matplotlib,但无法使其工作):


在“b”级以下的“代码>b”级以下的“b”级以下的“b”级以下的“b”级以下的“b”级以下的“C”级以下的“b”级以下的“b”级以下的“F”级以下的“F”级以下的“F”层\ \ \xF\xF \xF\xF\xF\xF\xF\xF\x0 0 0 0\0 0 0 0 0 0 0\x0 0 0 0 0 0 0 0 0 0\x0 0 0 0 0 0 0 0\x0 0 0 0\0 0 0 0\x0 0\0 0 0 0 0 0 0 0 0 0 0\x0\0 0 0 0\0 0 0 0 0\0\x0 0 0 0 0\0 0 0 0 0\0 0\x0 0 0 0\0 0 0 0\x0 0\0 0 0 0 0 0 0 0\x0 0\0 0 0 0 0 0\x0\x0 0 0\0 0\7),01444\x1f\9=82您可以使用
numpy
加载矩阵:

pixels = np.frombuffer(r.content, dtype=np.uint8)
然后使用以下内容创建PIL图像:

image = Image.fromarray(pixels 'RGB')

我认为解决问题的方法是更改代码的这一部分:

r=requests.get(url)#将只等待一个响应并退出
你应该换成

r=requests.get(url,stream=True)#将流式传输数据,直到完成
我认为问题在于,到目前为止,您的代码在接收到整个imagedata之前过早退出。这也是为什么您的对象对于400x400图像来说显得太小的原因

干杯


丹尼斯

非常感谢您的帮助!我尝试了这个,也尝试了Image.frombuffer('RGB',(400400),r.content),但仍然无法呈现图像。以下是我的标题:{'content-Type':'Image/jpeg',…'content-Length':'27707'…}我认为问题可能与请求的大小有关,比如我应该得到400x400=16k*3,但我得到的数字较小,所以我得到了ValueError:图像数据不足错误。至于使用numpy,我得到了一个一维向量,当它找不到像素时,图像处理崩溃。shape[1]
image = Image.fromarray(pixels 'RGB')