有点标题党的感觉,但是我今天说的这个软件确实很多人都用,叫做Greenshot。咨询了它的作者,用户量竟然过亿。
先展示一下成果
为了更方便的使用七牛云的图床服务,去年实现了一个开源截图工具的插件,专门用来上传图片到七牛图床。操作过程如下:
- 第一步:打开截图工具进行截图,然后选择“upload to qiniu”传送到七牛图床服务器中。
- 第二步:接完图后连接会生成markdown连接并且拷贝到剪贴板中,写博客直接粘贴链接即可:
比手动操作方便多了。当时写了一个帖子:
写markdown博客如何将截图快速上传到图床——记一个工具插件的实现(2017-05-31 20:23
上次使用是把插件和相关的库文件拷贝到Greenshot的安装目录下面。对这些文件也做了分享,看了看百度网盘,有几十个人下载,没有反馈。但是手动拷贝终究还是不太方便的。
说明一下自己打包的原因
本来想把代码提交PL给原作者,然后放到官方安装包中release。但原作者说此软件用户量大概有1个亿(竟然有一个亿),他说怕七牛的服务器撑不住,最后会影响其它功能,这是个开源的免费软件,他们人力有限,所以暂时他还没有approve。当然这个一亿应该是全世界的用户量,中国有多少他没说,我然后在github上提交了issues给七牛SDK开发人员,但是没有反馈。后来想想干脆自己出包算了。
DOWNLOAD
最终出的包放在了网盘中:
链接: 密码: 1749
如何使用
- 安装,qiniu插件是默认选中的,把exe安装包下载下来之后,默认安装即可。
- 配置,看之前的帖子,直接看配置这一节就可以了。这次打包加了一个Zone的配置项,例如我的Zone为华北,选择CN_North即可。
打包过程记录
原作者是用powershell脚本进行打包的,一个是prebuild.ps1,另外一个是build.ps1,把这个流程弄懂后,以后可以方便的实现功能,打包分享了。
我们的目标是把qiniu的插件成功的打包到exe安装包中,过程中的某些问题以能被解决为最终目的,有些细节弄的也不是很清楚。
prebuild
prebuild是用来build前的准备工作的,卡住的地方在生成签名文件的地方:
# Write the certificate to a file
[System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte
# Decode password to secure string
$password = ConvertTo-SecureString $env:CertificatePassword -AsPlainText -Force
# Import pfx
Import-PfxCertificate -FilePath .\Greenshot.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password`
怎么也生不成pfx文件,最后用openssl自己生成了一个,然后替换了Greenshot.pfx,也替换了相关的环境变量:
# Write the certificate to a file
[System.Convert]::FromBase64String($env:Certificate) | set-content "greenshot.pfx" -encoding byte
# Decode password to secure string
$password = ConvertTo-SecureString '123456' -AsPlainText -Force
# Import pfx
Import-PfxCertificate -FilePath .\Greenshotca.pfx -CertStoreLocation Cert:\CurrentUser\My -Password $password
期间还碰到一个命令不能被识别的问题,如下:
网上搜索了相关资料,说是powershell版本太低,在win7上把版本升到最新还是没有解决,最后看到有人提到到win10下执行,试了一下居然成功了。
最后执行成功后会是下面这个样子:
build
期间也是遇到了各种问题,最后总结成三点:
编译七牛插件
打包的过程中Greenshot如果使用了外来程序库的话会将其注入到插件中,所以在安装greenshot后你会看不到qiniu.dll.这样打包的时候也方便,只要打包插件就可以了。
签名工具
greenshot中的签名工具调用过程中使用了自己定义的一个环境变量,我也就从网上下载了最新的signtool.exe。自己设置环境变量指向这个签名工具即可。
template
加一个新的插件进来需要更新setup.iss.template文件。把插件名字和路径等信息加上即可。关于多过语言我只添加了英文和中文。
有关代码可以看我的github
成功之后会生成下面的文件列表。
后续需求
现在有些地方还是不方便,列出两个需求:
- 并不是所有人都使用markdown语法写博客,所以应该提供选择,剪贴板中保存markdown链接还是普通的URL图片链接。
- 提供截图历史看板功能,可以把最近的一些截图展示出来,可以把不需要的或者截错的图删掉。
目前想到这两个。
最后,如果好用请点赞,如果有任何问题请留言,谢谢。
作者: HarlanC
博客地址: http://www.cnblogs.com/harlanc/
个人博客: http://www.harlancn.me/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接
如果觉的博主写的可以,收到您的赞会是很大的动力,如果您觉的不好,您可以投反对票,但麻烦您留言写下问题在哪里,这样才能共同进步。谢谢!