右键菜单:缩小图片!

上一篇专栏写出来后我发现了一个问题,就是有的图片很大,一个屏幕装不下,有点图片很肥,一根网线挤不过....于是必须要把图片缩小。我试了一些常见的方法,比如:
用图形处理软件打开再在导出时设置大小---...这个方法有点麻烦啊....
用在线的图形处理工具 --- 有广告,处理完的文件直接进下载文件夹,没网就GG了
用专门缩小图形的软件.... (没找到好用的(都有那么点麻烦))
我想要的功能只是把图片缩小,然后原地保存就行了。
于是我就想到之前看到过修改右键菜单的教程::::
所一决定写一个可以直接在右键菜单缩小图片的工具。
开始
右键菜单可以通过命令启动程序并传入所选文件路径的参数。
这个地方可以启动bat,vbs,exe等等。经过仔细考虑,bat和vbs对我来说是不可能的,我甚至没那个水准用这俩把图片打开....python可以很轻松地处理缩小图片这个操作,但是!这玩意有环境要求,运行一个文件牵一发而动全身,慢对于图片都不是问题,问题是:丑!有黑框框,还不方便分享给别人用。所以:就只能用c++写一个单文件的exe来完成这个任务了。
程序
传入地址和比例...巴拉巴拉巴拉...opencv...巴拉巴拉巴拉...
就只有十来行代码(不保证稳定于各种情况)遇到一个怪事:图片只要放在系统图片库里默认创建的”保存的图片“这个文件夹里面,就报玄学错误了(目前无法在其他位置复现???)求大佬指教》》》
(可以找我要懒人包(直接安装食用))
给图形文件创建右键菜单。
用注册表编辑器在imagefile里创建菜单:
win+r然后输入regedit回车。
计算机\HKEY_CLASSES_ROOT\SystemFileAssociations里面保存了各种文件类型的菜单和关联关系等等
可以一个一个地修改各种图形类别的菜单,但这样太麻烦了。所以我选择把所有image类型全都加入这个菜单,虽然这样会导致一些opencv不支持的图形类型也加上这个菜单(不重要...)
在“计算机\HKEY_CLASSES_ROOT\SystemFileAssociations\image\shell”
里新建如下图的结构

注意一下几点:
Icon是图标路径,里面的选项也可以设置图标。
SubCommands是表明这是一个多级菜单,没有这一项就不能展开
awinsizer是菜单名称,可以随意更改。
awsizer下的shell必须有
shell下面可以继续嵌套SubCommands(3级菜单4,5、、、)
最终的选项(也就是途中的“缩小至...”)下面必须有一个command项,里面的默认值里面填写要执行的命令。(现在这里填写程序的位置,后面空格后接上%0。%0的意思就是传入菜单选中文件的地址。再空格后接上要缩小的比例,50%就写50,70%就写70)

上一个不怎么清晰的效果图

---

下面是下载安装器链接
https://www.aliyundrive.com/s/9U3VCPiTBB6
提取码:20sw
(因为操作注册表这一块我是真的搞不懂那引号套引号还要避免%号什么的)所以用tc中文编程写的
360不确定(不敢尝试)defender可能报毒(很玄学的扫描机制,有时报有时不报) 但神奇的是火绒怎么都不报毒