写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

时间:2023-12-15 17:00:02

1. 背景

写博客有一个自己的图床是不错的选择,如果不借助工具,在markdown博客中添加图片的步骤如下:

  • 截取图片,保存到本地(得来回点对话框,选择保存路径,选择文件类型,输入文件名)。
  • 上传到图床服务器(打开网页,跳转到上传页面,点击browse,选择本地文件,upload...)
  • 获取图片链接(为了确保无误,可以在浏览器中打开图片,并复制link)
  • 将链接添加到markdown博客中(Ctrl+v 复制到博客中)

还是很繁琐的,那么可不可以自己实现一个工具来做这些繁琐的事情呢?

2. 分析

首先要确定使用哪家的图床服务,网上搜了一下,都说七牛云比较靠谱(这里不是打广告。。),提供的SDK也比较全,我们这里就用七牛云,接下来确定该如何实现一个截图工具来实现截图+图片upload功能,从头实现一个工具不太现实,找一个开源的截图工具比较靠谱,博主目前正在用的是greenshot,发现这正好是一个开源的工具,好了,就是它了。

3. 需求

为greenshot添加一个插件,初步实现以下功能:

  • 针对七牛云SDK接口,添加配置对话框,可以配置accesskey,secretkey,scope,default domain来支持上传,并能将这些配置保存到本地(为了简单,将access key和secret key保存成明文)
  • 可以为图片名字添加前缀
  • 支持选择文件类型,支持bmp,gif,png,jpg等格式
  • 上传文件后可以自动将图床中的文件link复制到剪贴板

4. 准备

开发工具 visual Studio 2017
原材料 七牛云SDK源码+greenshot源码
其它 申请一个七牛云账号,开通图床服务(可以百度或者google...)

5. 实现

过程省略,实现比较简单,大部分实现花在熟悉greenshot代码架构和代码调试上,直接上源码:
https://github.com/harlanc/greenshot

6. Demo

6.1 安装

  • 首先安装GreenShot:
    http://getgreenshot.org/

  • 如果不想重新编译源码,直接到下面的网盘链接下载插件:

链接: https://pan.baidu.com/s/1b5LQHo 密码: 33z8

压缩包中包含三个文件,一个gsp插件,两个xml语言文件,拷贝到对应的目录下:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

6.2 配置

打开GreenShot,首先我们验证一下插件是否加载成功,邮件单击GreenShot图标,单击Preference...

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

如果看到插件列在了Plugins中,说明加在成功:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

打开配置主界面:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

序号1到4必须填正确,这些都该填写什么呢?

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

见下图,登陆七牛云,点击个人中心->密钥管理,即可看到AK和SK:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

序号3对应着存储空间名称,你可以新建存储空间,把对应的名字填写到Scope里:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

序号4对应着域名,这个域名是用于拼写复制到剪贴板的图片link的,不知道有没有更好的方法。目前楼主用的是测试域名:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

序号5是图片格式,序号6为图片名字前缀,方便管理图片。
好了,配置好之后,点击OK,这些配置信息都会保存到本地的配置文件中,注意AK和SK在这里是明文保存,小心不要泄露。。

6.3 使用

看一下如何使用,右键单击GreenShot图标,点击Capture region,或者其他的截图方式:

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

如果去边编辑图片,你可以选择Open in image editor,如果你想直接上传,单击Upload to Qiniu即可。

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

编辑完图片之后,单击七牛图标。

写markdown博客如何截图并快速上传到图床——记一个工具插件的实现

最后一步,Ctrl+V ,将剪贴板中的图片链接拷贝到你的博客中,大功告成!