我目前正在开发一个小脚本来截取屏幕截图并使用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编码方法可能会关闭,但我不知所措。
答案 0 :(得分:0)
您应该使用b64encode
模块中的base64
。我不知道为什么,但它给出了不同的结果:
from base64 import b64encode
(...)
data = urllib.urlencode({"key":'MY_API_KEY', "image":urllib.quote(b64encode(open(dir,'rb').read()))})