Markdown 图片助手-MarkdownPicPicker

title: Markdown 图片助手 v0.1
toc: true
comments: true
date: 2016-06-04 16:40:06
tags: [Python, Markdown]
category: Markdown
---

项目介绍

MarkdownPicPicker 是一个Markdown写作辅助工具。它能将剪贴板中的图片上传到网络图床中,并将markdown格式的图片链接(![]())复制到剪贴板中。

项目地址:https://github.com/kingname/MarkdownPicPicker

功能介绍

第0.1版有以下功能:

  1. 使用七牛云作为图床。
  2. 将图片保存在本地
  3. 图片上传成功后将Markdown格式的图片地址保存到剪贴板中
  4. 全局监听键盘(默认不开启)

使用方法

配置

以下部分需要做对应的修改:

METHOD = 'bat' #设定程序的运行方式,bat为使用bat文件触发,pyHook为全局键盘监听方式
PICTURE_FOLDER = 'pic' #截图的本地保存文件夹,可以根据实际情况修改。
PICTURE_SUFFIX = 'png' #截图的保存格式,可以选择bmp或者png#以下两行来自于七牛云
ACCESS_KEY = 'Q6sS422O05Aw34523M3FqCcCpF36tqvyQ75Zvzw'
SECRET_KEY = '6QtAqqTxoSxZP-25643hhxPLX2CCmoOaB2aLObM'CONTAINER_NAME = 'picturebed' #七牛云的图片储存位置
URL = 'http://7sbpmp.com1.z0.glb.clouddn.com/{}' #七牛云分配的默认域名SHORT_KEY_ONE = 'Lwin' #快捷键第一个按键
SHORT_KEY_TWO = 'C' #快捷键第二个按键

其中ACCESS_KEYSECRET_KEY 可以在七牛云的控制面板中看到,如图:

CONTAINER_NAME 为下图所示内容:

SHORT_KEY_ONESHORT_KEY_TWO 为快捷键的两个按键,默认为左侧windows徽标键(Lwin) 和 字母 C

使用

将程序配置好以后运行,创建一个批处理文件markdownpicpicker.bat, 其内容如下:

@echo off
cmd /k "G:\github\MarkdownPicPicker\venv\Scripts\activate & cd /d G:\github\MarkdownPicPicker & python MarkdownPicPicker.py & deactivate & exit"

路径请根据实际情况修改。

由于我使用了virtualenv, 所以需要在批处理中进入virtualenv的环境才能正常运行程序。对于将requirements.txt里面包含的库直接安装在全局的情况,bat 可以简化:

@echo off
cmd /k "cd /d <MarkdownPicPicker.py脚本所在路径> & python MarkdownPicPicker.py & exit"

然后右键选择批处理,发送到桌面快捷方式。接着右键快捷方式,属性,在“快捷键” 这一栏按下字母Q,它将自动填充为 Ctrl + Alt + Q, 确定。

只需要首先使用QQ截图或者其他截图工具将图片保存到剪贴板中,然后按下设定好的快捷键即可。Markdown格式的图片链接就已经保存到剪贴板中了。在需要使用的地方直接粘贴。

不过这样设定的快捷键,按下以后会有大概一秒钟的延迟。推荐大家使用AutoHotKey来触发这个bat文件。

说明

Pillow bug修正

本程序使用了Pillow库中的 ImageGrab.grabclipboard() 方法来获取剪贴板中的数据,但是由于这个方法有一个bug, 导致可能会爆以下错误:

Unsupported BMP bitfields layout

这个问题从Pillow 2.8.0开始,一直到3.2.0都没有被官方解决。目前有一个间接的解决办法。
请打开Python安装目录下的\Lib\site-packages\PIL\BmpImagePlugin.py文件,将以下代码:

if file_info['bits'] in SUPPORTED:if file_info['bits'] == 32 and file_info['rgba_mask'] in SUPPORTED[file_info['bits']]:raw_mode = MASK_MODES[(file_info['bits'], file_info['rgba_mask'])]self.mode = "RGBA" if raw_mode in ("BGRA",) else self.modeelif file_info['bits'] in (24, 16) and file_info['rgb_mask'] in SUPPORTED[file_info['bits']]:raw_mode = MASK_MODES[(file_info['bits'], file_info['rgb_mask'])]else:raise IOError("Unsupported BMP bitfields layout")
else:raise IOError("Unsupported BMP bitfields layout")

修改为:

if file_info['bits'] in SUPPORTED:if file_info['bits'] == 32 and file_info['rgba_mask'] in SUPPORTED[file_info['bits']]:raw_mode = MASK_MODES[(file_info['bits'], file_info['rgba_mask'])]self.mode = "RGBA" if raw_mode in ("BGRA",) else self.modeelif file_info['bits'] in (24, 16) and file_info['rgb_mask'] in SUPPORTED[file_info['bits']]:raw_mode = MASK_MODES[(file_info['bits'], file_info['rgb_mask'])]'''新增内容开始'''elif file_info['bits'] == 32 and file_info['rgb_mask'] == (0xff0000, 0xff00, 0xff):pass'''新增内容结束'''else:raise IOError("Unsupported BMP bitfields layout")
else:raise IOError("Unsupported BMP bitfields layout")

就能解决本问题。

全局键盘监听

本程序还有一个功能是全局监听键盘,通过特殊的快捷键组合就可以直接触发读取图片上传图片的操作。但是由于这个功能使用到了pyHook这个库。但是这个库在设计上存在缺陷,如果当前窗体的标题包含Unicode字符时,会导致Python崩溃。因此这个功能默认不启动。

获取键盘按键

如果不清楚某个键盘按键对应的字符串是什么样子的,可以运行QueryKey.py这个文件,运行以后按下某个键,控制台上就会显示相应的信息。其中Key就是可以设置到SHORT_KEY_ONESHORT_KEY_TWO的内容。如图为按下键盘左Shift键以后显示的信息。

TODO

  • 支持更多的截图方式
  • 支持更多的图床
  • 窗口隐藏
  • 解决pyHook的问题
  • 适配Linux 和 Mac OS

本文首发于:http://kingname.info/2016/06/04/markdownPicPicker/ 转载请注明出处。

posted on 2016-06-05 08:49 青南 阅读(...) 评论(...) 编辑 收藏

转载于:https://www.cnblogs.com/xieqiankun/p/markdownpicpicker.html

Markdown 图片助手-MarkdownPicPicker相关推荐

  1. markdown 图片居中_Markdown常用语法汇总

    一.Markdown简介 Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档. Markdown 语言在 2004 由约翰·格鲁伯(英语:John Gruber)创建. ...

  2. u-tools图床便捷生成markdown图片

    u-tools 图床 上传图片生成markdown图片非常便捷. 支持的图片服务器有几种,其中搜狗.网易和掘金的加载速度更快些: 也可以用阿里与和腾讯云的OSS; 其中网易生成图片不是原图尺寸好像被改 ...

  3. 实用常识 | 巧妙使用IA图片助手多地址提取批量下载(老白嫖怪了)

    又是帮老弟找一份资源,正值小升初的关机时刻,提前找找六年级下册的课本,好迎合一下当下"内卷"的小学教育.这不就让我找找了.先分享一个网站--电子课本网,小学到高中的课本资源应有尽有 ...

  4. markdown 图片居中_Markdown入门指南【我为什么要推荐你学习Markdown?】

    〇.前言 转载请注明原作者和地址,如果这篇文章对你有帮助或启发,也可以请我喝个咖啡.奶茶. 一.啥是Markdown Markdown 是一种可以使用普通文本编辑器编写的轻量级标记语言,通过简单的标记 ...

  5. Markdown——图片、文字显示居中的一种方法

    Markdown--图片.文字显示居中的一种方法 一.方法 1.1 图片居中 1.2 文字居中 二.图片居中举例 2.1 编辑界面 2.2 显示界面 一.方法 1.1 图片居中 在图片下面的链接的最后 ...

  6. 有道云笔记Markdown图片插入居中方法

    有道云笔记Markdown图片插入居中方法 使用本地图片插入 使用html方式插入图 使用本地图片插入 有道云笔记可以通过这样插入图片: ![图片名](本地图片地址) 注意: 这样的方式并不能控制照片 ...

  7. 7.Markdown图片

    # markdown 图片 markdown的图片语法格式如下: ``` ![alt 属性文本](图片地址) ![alt 属性文本](图片地址 "可选标题") ``` * 开头一个 ...

  8. Markdown教程--Markdown图片

    Markdown教程–Markdown图片 Markdown 图片语法格式如下: ![alt 属性文本](图片地址)![alt 属性文本](图片地址 "可选标题") 开头一个感叹号 ...

  9. Extreme Picture Finder(网络图片下载器)官方中文版V3.53.3 | 下载网页图片的软件 | 图片助手批量图片下载器

    Extreme Picture Finder 是一款功能强大的集网络图片下载器软件和网页视频下载软件于一体的综合性互联网素材采集工具,能帮助广大用户自动下载并保存几乎所有互联网上面的图像.视频.音乐以 ...

最新文章

  1. Hibernate 的 session.load()使用方法
  2. 让Ubuntu的ssh保持长时间连接
  3. Java中 volatile 关键字的最全总结,快给自己查缺补漏吧!
  4. 设备树(device tree)学习笔记
  5. 018:Django商城部署和数据库读写分离
  6. asp.net 页面static变量问题
  7. Go语言中*和的区别
  8. Zygote工作流程分析
  9. java+web+415_使用json返回HTTP状态415的Web服务 - 不支持的媒体类型
  10. 《Android游戏开发详解》一2.18 使用Java API中的对象
  11. 64位Win7下用VS2010编译OpenSSL
  12. mybatis自动生成service、dao、mapper
  13. dnf韩服服务器维护中,DNF韩服官方居然自己在服务器上开了个“私服”深渊必掉史诗...
  14. php 读取excel表数据
  15. openwrt中br-lan,eth0,eth0.1,eth0.2
  16. java 网页版通讯_JavaWeb网页聊天室(WebSocket即时通讯)
  17. 唐福林《新浪微博开放平台中的Redis实践》演讲视频
  18. 安全防范知识点 -- CSRF
  19. 洛谷 P1725 琪露诺
  20. 2023前端vue高频面试题

热门文章

  1. java.sql.SQLException: Zero date value prohibited 报错分析
  2. JS实现图片放大查看
  3. WinForm打包或部署
  4. jQuery文本框(input textare)事件绑定方法教程
  5. 用json来组织数据,用IGame导出模型
  6. frame,iframe,frameset用法和区别
  7. 《ADO.NET 2.0高级程序设计》读书随笔(1)使用连接池connection pool
  8. Android启动模式详解
  9. linux动态线程池--原理,这儿的代码不完整
  10. android apk瘦身之 图片压缩 tinypng