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

小编 2026-06-24 阅读:1324 评论:0
更新于2018年2月做了以下改动:1.修复了一个bug,把服务器区域做成可配:七牛有华北,华东,...

更新于2018年2月

做了以下改动:

1.修复了一个bug,把服务器区域做成可配:

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

七牛有华北,华东,华南以及美国三个服务器区域,根据自己的情况进行相应的选择即可。

2.把插件打包进了exe安装包中,下载链接:

链接: 密码: 1749
因此不要再使用本文的替换方法进行安装了,直接安装即可,七牛插件是默认安装的。

对应文章更新:

重新打包用户量过亿的开源截图软件——加入图片自动上传到图床的功能(2018-02-09 07:04)

如何使用:

除了正确配置Zone之外,其余配置查阅本文的6.2节。

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/
  • 如果不想重新编译源码,直接到下面的网盘链接下载插件(2017-12-12,又改了下代码,保存在七牛云上的图片只能保留一天时间,把这个限制去掉了,自己重新编译一下源码吧):
    链接: https://pan.baidu.com/s/1sloCA53 密码: 2pv5

压缩包中包含5个文件,一个gsp插件,两个xml语言文件,两个DLL,拷贝到对应的目录下:
写markdown博客如何将截图快速上传到图床——记一个工具插件的实现
写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 ,将剪贴板中的图片链接拷贝到你的博客中,大功告成!如果有任何问题,请告知楼主,谢谢。

7. 总结

通过使用GreenShot插件,上传图片到七牛云只需要点击4下鼠标即可,节省了时间。


作者:HarlanC

博客地址:http://www.cnblogs.com/harlanc/
个人博客: http://www.harlancn.me/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接

如果觉的博主写的可以,收到您的赞会是很大的动力,如果您觉的不好,您可以投反对票,但麻烦您留言写下问题在哪里,这样才能共同进步。谢谢!

版权声明

本文仅代表作者观点,不代表百度立场。
本文系作者授权百度百家发表,未经许可,不得转载。

热门文章
  • 机房智能化温湿度解决方式之POE供电以太网温湿度传感器

    机房智能化温湿度解决方式之POE供电以太网温湿度传感器
    机房智能化温湿度解决方式之POE供电以太网温湿度传感器 北京盈创力和电子科技有限公司 智能型TCP网口温湿度记录仪 北京IP网络温湿度记录仪厂家,北京盈创力和 北京智能型TCP网口温湿度记录仪IP网络温湿度记录仪是一种新型的基于TCP/IP协议双绞线以太网标准温湿度采集模块,利用它可以实现现场温度值、相对湿度值的采集,同时利用其自身的RJ45通信接口可以方便地和机房监控主机或交换机集线器进行联网。 工作于-40℃~85℃工业级带...
  • Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering

    Sequential Monte Carlo Methods (SMC) 序列蒙特卡洛/粒子滤波/Bootstrap Filtering
    Problem Statement 我们考虑一个具有马尔可夫性质、非线性、非高斯的状态空间模型(State Space Model):对于一个时间序列上的观测结果{yt,t∈N}\\{ y_t , t \\in N \\}{yt​,t∈N},我们认为每个观测结果yty_tyt​的生成依赖于一个无法直接观察的隐变量xt∈{xt,t∈N}x_t \\in \\{x_t , t \\in N \\}xt​∈{xt​,t∈N},即:p(...
  • HTTP状态保持的原理

    HTTP状态保持的原理
    a)在用户登录之后,浏览器返回响应的时候会在响应中添加上cookieb)浏览器接收到cookie之后会自动保存c)当用户再次请求同一服务器中的其他网页的时候,浏览器会自动带上之前保存的cookied)服务接收到请求之后可以请 request 对象中取到cookie 判断当前用户是否登录  Http是无状态的,就是连接时数据互通,关闭后...
  • Hive 系统函数及示例

    Hive 系统函数及示例
    查看所有系统函数 show functions; 函数分类 内置函数【系统函数】 数学函数: floor、round、ceil、cos、log2等 字符串函数: length、reverse、trim、lower、get_json_object、repeat等 收集函数: size 转换函数: cast 日期函数: year、month、datediff、date、date_add等 条件函数: coalesce、case…w...
  • CSRF的原理和防范措施

    CSRF的原理和防范措施
    a)攻击原理:i.用户C访问正常网站A时进行登录,浏览器保存A的cookieii.用户C再访问攻击网站B,网站B上有某个隐藏的链接或者图片标签会自动请求网站A的URL地址,例如表单提交,传指定的参数iii.而攻击网站B在访问网站A的时候,浏览器会自动带上网站A的cookieiv.所以网站A在接收到请求之后可判断当前用户是登录状态,所以...
标签列表