从urlopen检索的图像

时间:2015-06-25 21:54:05

标签: python google-app-engine python-requests urllib2 telegram-bot

我会将文件发送到Telegram Bot API以发布图片。我在Google App Engine上使用python,我想从URL下载图片并通过Telegram消息发送它,而不在磁盘上创建任何中间文件(我相信在给定平台的情况下甚至不可能)。

我已经成功发送了从磁盘中获取的图像,但无论我尝试什么,我都无法发送从URL中检索到的图片。这是工作代码:

import urllib2
import requests

photo = open('cat.jpg', 'r')
#photo = urllib2.urlopen('http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg')

resp = requests.post(BASE_URL + 'sendPhoto',
    files={'photo' : photo},
    data={'chat_id' : '95297807'},
)

如果我用urlopen拍照,它就不会工作。我尝试使用StringIO,但它也不起作用。有什么想法吗?

1 个答案:

答案 0 :(得分:0)

import urllib2
from StringIO import StringIO
from PIL import Image

url='http://scontent-b.cdninstagram.com/hphotos-xfa1/t51.2885-15/e15/10919672_584633251672188_179950734_n.jpg'

photo=Image.open(StringIO(urllib2.urlopen(url).read()))