Python中使用Chevereto图床的小伙伴快进来,有福利~
嗯,今天本来想好好学习别人的代码的,突然看到 requests 模块,想想貌似这模块很常用的说,我竟然没用过,于是我就找了下文档看了下,嗯,光看不练是不对的,然后我就想做点什么,突然想到我每次写 hexo blog 的时候,每次要把图片截取保存到本地,然后上传到我的图床,然后拷贝链接, OMG 好烦啊,于是发现这篇文档 , 是时候造个轮子了。
下面是代码
#coding=utf-8
import requests
import json
import mimetypes
from PIL import ImageGrab
import datetime
def upload(files):
APIKey = “YOUR API KEY”
format = “json”
url = “http://domain.com/api/1/upload/?key=”+ APIKey + “&format=” + format
#files =
r = requests.post(url , files = files)
return json.loads(r.text)
def formatSource(filename):
imageList = []
type = mimetypes.guess_type(filename)[0]
imageList.append((‘source’ , (filename , open(filename , ‘rb’) , type)))
print imageList
return imageList
if name == “main”:
print “将图片截图或复制到剪切板中即可~~, ctrl+z 结束”
recentVal = None
while(True):
tmpValue = ImageGrab.grabclipboard()
if recentVal != tmpValue:
recentVal = tmpValue
now = datetime.datetime.now()
now = now.strftime("%Y-%m-%d %H:%M:%S")
filename = ‘IMG’+ now + ‘.png’
if recentVal is not None:
recentVal.save(filename, ‘png’)
#filenames.append(filename)
#recentVal = None
print filename
jsonData = upload(formatSource(filename))
if jsonData['status_code'] != 200:
print "error: " , jsonData['error']['message']
print "status code : " , jsonData['status_code']
else:
print "orignal url: " , jsonData['image']['display_url']
print "thumb url: " , jsonData['image']['thumb']['url']
运行示例

有点慢啊,因为我的服务器在国外~~
使用方法
将你的 chevereto 的 API key 拷贝到对应位置,替换 domain.com 为你自己的域名,嗯,就这样,这只是练习代码,难免有些 bug ,你懂得
其实讲道理用curl就可以弄的,但是我不会把本地的图片传到服务器上,据说要base64编码~~~sad
嗯,开年第一个轮子,大家新年快乐!
Python中使用Chevereto图床的小伙伴快进来,有福利~
可以加上 sm.ms 图床嘛 嘻嘻
我无法理解你的问题。
挺有意思的,赞一个
等我有了图床
py<br>#coding=utf-8<br>import requests<br>import json<br>import mimetypes<br>from PIL import ImageGrab<br>import datetime<br><br>def upload(files):<br> APIKey = "YOUR API KEY"<br> format = "json"<br> #url = "<a target="_blank" href="http://domain.com/api/1/upload/?key=" rel="nofollow noopener">http://domain.com/api/1/upload/?key=</a>"+ APIKey + "&format=" + format<br> url = "<a target="_blank" href="https://sm.ms/api/upload?ssl=False&format=json" rel="nofollow noopener">https://sm.ms/api/upload?ssl=False&format=json</a>"<br> #files = <br> r = <a target="_blank" href="http://requests.post" rel="nofollow noopener">requests.post</a>(url , files = files)<br><br> return json.loads(r.text)<br><br>def formatSource(filename):<br> imageList = []<br> type = mimetypes.guess_type(filename)[0]<br> imageList.append(('smfile' , (filename , open(filename , 'rb') , type)))<br> print imageList<br> return imageList<br><br>if __name__ == "__main__":<br> print "将图片截图或复制到剪切板中即可~~, ctrl+z 结束"<br> recentVal = None<br> while(True):<br> tmpValue = ImageGrab.grabclipboard()<br> if recentVal != tmpValue:<br> recentVal = tmpValue<br> now = datetime.datetime.now()<br> now = now.strftime("%Y-%m-%d %H:%M:%S")<br> filename = 'IMG'+ now + '.png'<br> if recentVal is not None:<br> recentVal.save(filename, 'png')<br> #filenames.append(filename)<br> #recentVal = None<br> print filename<br> jsonData = upload(formatSource(filename))<br><br> if jsonData['code'] != "success":<br> print "error: " , jsonData['msg']<br> print "status code : " , jsonData['code']<br> else:<br> print "url: " , jsonData['data']['url']<br> #print "orignal url: " , jsonData['image']['display_url']<br> #print "thumb url: " , jsonData['image']['thumb']['url']<br>
临时改了改,亲测可以用
回复不支持 markdown 吗。。。。
666
好东西,研究下
nice
怎么实现的呢,怎么可以上传到别的网站上面呢,我现在发现上传到自己网站图片太大了
看来要别人的 api 给你
emmm 没有 mac
windows 上有 sharex 可以直接配置,linux 的 Mac 的方式一样
#13 咦,你居然在呢,这个…chevereto 你知道怎么自定义图片的尺寸吗?
自定义图片尺寸?不是上传一张图片就可以得到这张图片的多个尺寸的链接吗?如果是自定义这个尺寸的话“仪表盘”的“图片上传”里可以定义
路径不都是默认上传到 images 目录下吗?我还是没理解你图片自定义的意思,你的意思是 chevereto 的“图片上传”里自定义图片尺寸这个功能不能用吗?
能用但是不适合我的需求


