使用Pyimgur通过API将大图像上传到Imgur(> 1mb)

时间:2015-01-14 11:43:22

标签: python imgur

是否可以上传大型PNG图像而不转换为较小的JPG?我注意到有一个"上传大图片" imgur帐户的选项,API会让你使用吗?

我没有任何API经验,因此我只使用pyimgur,而且我只需要上传功能。

uploadedImage = pyimgur.Imgur( imgurID ).upload_image( imageLocation, title=imageTitle )

我必须将上传图片的大小与原始图片的大小进行比较,因为如果代码转换后代码将无法正常工作,并且根据经验,它是1mb标记。< / p>

我更喜欢不需要帐户,因为我必须在代码中指定一个帐户,这样可以让任何人访问通过我的脚本创建的每个图像,而且我也绝对不会#39; t希望人们必须登录。

1 个答案:

答案 0 :(得分:0)

我在重写旧代码时又回到了这一点,并设法弄明白了(再次搜索问题并发现我的旧问题哈哈)。匿名用户无论如何都无法上传超过1MB的内容,所以我只需要对用户进行身份验证。

在没有显示我自己的客户端ID和密码的情况下,这就是让pyimgur.Imgur类充当登录用户的方式,显示上传图像的简单示例仍然是相同的。

import pyimgur, webbrowser
def imgur_log_in():
    client = pyimgur.Imgur(CLIENT_ID, CLIENT_SECRET)
    auth_url = client.authorization_url('pin')
    webbrowser.open(auth_url)
    pin = raw_input('Please enter the pin number shown... ')
    print pin
    try:
        client.exchange_pin(pin)
    except requests.HTTPError:
        print 'Error: Invalid pin number'
        return None
    return client

client = imgur_log_in()
im = client.upload_image(path)
webbrowser.open(im.link)

会话在一小时后过期,但您可以使用client.refresh_access_token()续订。也可以对client进行腌制和编码,因此您也不需要在下一个会话中进行身份验证。