3

我目前正在开发一个小脚本来截取屏幕截图并使用 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编码方法可能已经关闭,但我很茫然。

4

1 回答 1

0

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

from base64 import b64encode

(...)

data = urllib.urlencode({"key":'MY_API_KEY', "image":urllib.quote(b64encode(open(dir,'rb').read()))})
于 2011-07-31T04:51:27.717 回答