简单开发一个截图保存并返回链接的小工具JingSLink
  JingPic迎来重构版JingSLink
  自用简陋小工具系列


前言

  写markdown文章时,贴图这件事儿真的很麻烦。我需要把图片手动保存到对应文件夹,再手动在文章里引入图片链接。所以很多时候我能不配图就不配图。多年前为了方便插入图床链接,用MFC做了个自用小工具JingPic。但是它是基于保存了的图片进行的操作,将图片转移到需要的位置。后期也没有维护,操作上依然不够简洁。比如我更喜欢直接截图能自动保存到指定位置,这样就减少一步自己保存的操作。

  自己定制还是最爽的,我想要什么功能我自己开发好了。而且这个小工具开发起来也很简单,几十行很快就写完了。

  首先,要起个名字,以前的叫JingPic,这个重构版就叫JingSLink(Jinger Screenshot for Link)吧。

需求

  • 能够截图
  • 截图能保存到指定文件夹中
  • 截图完成后,自动将图片相对路径复制到剪贴板
  • 有exe可执行文件

技术

  语言:Python
  用到的库:tkinter, PIL, keyboard, pyperclip

实现

  一开始我是想自己实现截图操作的,后来一想,我平日用QQ截图最多,它功能齐全,那我直接调用它的截图不就好了。
  所以,大体实现思路如下:

  • 监听键盘,捕捉QQ截图快捷键ctrl+alt+a,并设置一个结束键ctrl。
  • 使用PIL库的ImageGrab读取截图。
  • 弹出一个输入框,输入图片名称。
    输入框
    输入框
  • 拼凑出图片完整链接,将图片保存到该地址。
  • 拼凑出hexo博文中所需的图片插入相对地址,复制到剪贴板。
      当然,为了不每次都打开pycharm编译器,得导出一个exe文件。

  打包exe:
  安装pyinstaller。
  在pycharm中,

1
2
3
4
pyinstaller -F main.py
pyinstaller -F -w main.py#(-w是取消dos窗口)
pyinstaller -F -w --icon=ico main.py
# (ico为图标的文件名,与dist目录为同目录)

  最后生成的exe文件在dist文件夹下。

代码

https://github.com/hubojing/JingSLink

后期优化

  如有必要:

  • 一些异常情况的提示
  • 右下角有最小化托盘,右键有设置和退出菜单
  • 可扩展性:可以更改文件夹路径
  • 可扩展性:可以更改图片路径格式(绝对路径/相对路径)
  • 换pyqt框架

参考资料

http://tkdocs.com/tutorial/index.html