上次在网上闲逛的时候看到一篇文章
刚好最近也在学习python,看起来好有趣啊,这篇文章讲的是Mac上的,
我没有Mac,只有Windows,文章里面也写了Windows系统的实现思路,既然作者已经给出来了,作为一个python初学者,动动手罢
思路
- 截图(保存在剪贴板中)
- 使用七牛sdk 上传剪切板中的图片
- 获取返回的url,并合成 markdown 贴图语法
应该就可以了吧
实现
准备工作
-
安装 七牛python sdk,我用的是IDE pycharm 方式
- 下载安装 AutoHotKey 软件
- 写 python代码
- 写AutoHotKey脚本
开始动手
写代码
由于技术太渣,搜到又看不懂win32什么的,最后获取剪贴板截图的功能没能写出来,找到了另一个库 PIL
这个库的截图也是在剪切板的,不过不是其他软件接下来的,是系统截下来的 screencapture
AK = 'access_key'
SK = 'secret_key'
bucket_name = "bucket_name"
buckey_url = {
'bucket_name': 'domain_name',
}
上面是一些初始化工作
都是七牛的东西
可以在 七牛的 开发者帐号里面找到
access_key 和 secret_key 就不说了
bucket_name 是 空间名称
domain_name 是 空间域名
继续:获取图片
def save_clipboard_image():
pic = ImageGrab.grab()
saved_path = "img_" + str(time.time()) + ".jpg";
pic.save(saved_path)
return saved_path
获取系统截图,然后保存在一个文件名为当前时间的jpg文件中
返回保存的文件路径
继续:上传图片
class Qiniu():
def __init__(self, ak, sk):
self.access_key = ak
self.secret_key = sk
self._q = qiniu.Auth(self.access_key, self.secret_key)
def upload_file(self, bucket_name, key, file_path):
#生成上传 Token,可以指定过期时间等
token = self._q.upload_token(bucket_name, key, 3600)
ret, info = put_file(token, key, file_path)
print(info)
pic_url = self.get_pic_url(bucket_name, file_path)
add_to_clipboard(pic_url, file_path)
def get_pic_url(self, bucket_name, file_path):
result = buckey_url[bucket_name] + file_path
return result
上传图片的 功能都是 七牛sdk 提供的,sdk demo里面都有,也没什么好说的了
上面有个 add_to_clipboard 方法
def add_to_clipboard(pic_url, file_name):
txt = '[站外图片上传中……(2)]'
print(txt)
command = 'echo ' + txt.strip() + '| clip'
os.system(command)
工作就是把上传完成之后的图片路径 转换成 markdown 语法,并复制到剪贴板
还剩一个入口函数
if __name__ == '__main__':
saved_path = save_clipboard_image()
q = Qiniu(AK, SK)
q.upload_file(bucket_name, saved_path, saved_path)
需要导入的库
from PIL import ImageGrab
import time
from qiniu import Auth, put_file
import os
好像就写完了
运行以下,去七牛空间上看,就会多一张图片,以一串数字命名
然后新建一个 txt 文档,ctrl-v 以下,就能看到一个字符串啦,是在markdown插入图片的语法
继续:设置触发
接下来要上场的是 windows 下的 神器 AutoHotKey,我也是看前面那个文章才知道的
工作主要是 触发这个python文件的执行
那我就偷懒了一下
使用 ctrl+alt+v触发python
^!v::
run,%comspec% /c python D:\python\upload.py
^代表ctrl键
!代码alt键
v代表v键(废话)
工作就是按键之后,执行 cmd 然后输入命令
python D:\python\upload.py
运行起来
执行一下,上传成功,可是每张图片都被 cmd 那个黑框框挡住了
google了以下
答案是
run,%comspec% /c python D:\python\upload.py ,, hide
后面加上一个 hide
就不会出现黑框框了。
到这里应该就是把这个功能的简陋版弄出来了
等之后有时间了,学习更多了,在优化以下,减少硬编码
我的第一个 python 功能就这么完成了。
哈。
试试效果
[站外图片上传中……(3)]
快12点了
早睡早起身体好。
已发布到JIMBRAY