使用imgur的API时获取空白图像

时间:2011-07-31 03:04:16

标签: python urllib2 imgur

我目前正在开发一个小脚本来截取屏幕截图并使用Python将它们上传到imgur。

代码如下所示:

import time
import os
import ImageGrab
import urllib
import urllib2

time.sleep(1)
shot = ImageGrab.grab()
dir = os.path.join(r'C:\SAMPLE\PATH', 'Screen ' + time.strftime(r'%Y-%m-%d %H-%M-%S') + '.png')
shot.save(dir)

data = urllib.urlencode({"key":'MY_API_KEY', "image":urllib.quote(open(dir,'rb').read().encode("base64"))})

site = urllib2.Request("http://imgur.com/api/upload.json", data)
s = urllib2.urlopen(site)

print s.read()

我得到了imgur的回复,但当我打开链接时,我得到一张空白图片(虽然它的分辨率是正确的)。我认为base64编码方法可能会关闭,但我不知所措。

1 个答案:

答案 0 :(得分:0)

您应该使用b64encode模块中的base64。我不知道为什么,但它给出了不同的结果:

from base64 import b64encode

(...)

data = urllib.urlencode({"key":'MY_API_KEY', "image":urllib.quote(b64encode(open(dir,'rb').read()))})