PicQuickCompare - AHK 编写的:拖入 2 张图片,重合叠加对比

能覆盖CJK编码的系统自带字体没什么选择。我也嫌不好看,但是就这样吧。
扩展名的高度应该额外考虑的,这里需要修复下。

  • 小于窗口最小宽度的图片 居中显示 会不会好看点

  • 托盘的github地址还是ahk-autoupdate-template

mygui.Title := picture_array[picCurrentShow].exif.name " " picture_array[picCurrentShow].exif.Date

大佬,我想把拍摄日期也放进标题栏,文件名的后面,中间空格隔开
存在的问题:
1,两个变量会报错,不知道格式要怎么弄
2,拍摄日期相差8小时,想到时区的原因,百度下果然如此,还挺多这问题。
3,和PQC v0.2.1一样,没有EXIF信息的图片会报错,所以学大佬加入判断,

swap(GuiCtrlObj, Info*) {
	global picture_array, picCurrentShow
	if (isSwapable()) {
		picCurrentShow := picCurrentShow ^ 0x3
		mygui_ctrl_show_pic(picture_array[picCurrentShow])
	}
	exinfo := Filexpro(A_LoopFileFullPath, "", "System.Photo.DateTaken", "System.Photo.FocalLength", "xInfo")
	if (StrLen(exinfo["System.Photo.FocalLength"]) > 0) {
		mygui.Title := picture_array[picCurrentShow].exif.Date
		} else {
	      mygui.Title := "date" 
				}
}

If (StrLen(exinfo[“System.Photo.DateTaken”]) > 0) 报错:
Error: This value of type “String” has no property named “__Item”.
请教大佬 :pray:

更新到 0.3.1 后使用参数启动的方式报错了,此前的版本正常。
就是使用 Quicker 启动软件在后面跟上两张图片地址,比如:

file:///D:/screenshot/Snipaste_2023-11-08_15-05-18_moz.jpg
file:///D:/screenshot/Snipaste_2023-11-08_15-05-18.png

还真是。因为031只是改变布局,对我没区别,所以没升级。
刚测试031
通过ahk启动,或者右键发送到,
1张图片还是2张图片
都有这个问题,应该是拖放功能的问题

1 个赞

文件拖放稍后修复。

这里上次忽略了,稍后修复。

可以,但似乎没必要,似乎这个也不适合小尺寸图片的对比。

1 个赞

v0.3.2 更新:

  1. 优化显示,限制最小字号,过长文件名自动截断
  2. 优化部分显示
  3. 修复traymenu中GitHub page指向的链接
  4. 字体统一定义至PQC.ahk文件头部的JhengHeiFontArialFont变量,方便用户自行更换字体

@seabirdr @maple

A_LoopFileFullPath 是内置变量,只有在 Loop file 循环里面使用的。需要使用的话,你可以在 mygui_DropFiles 方法中获取它,并保存在图片的 exif 属性中,然后在其他地方通过 exif 属性访问。

比如,在 mygui_DropFiles 中,如下获取 DateTaken 属性并储存至 .exif.Date 中。

exinfo := Filexpro(A_LoopFileFullPath, "", "System.Photo.Orientation", "System.Photo.FNumber", "System.Photo.ISOSpeed", "System.Size", "System.Photo.DateTaken", "xInfo")
if (StrLen(exinfo["System.Photo.ISOSpeed"]) > 0) {
	picture_array[picCurrentShow].exif.ISO := exinfo["System.Photo.ISOSpeed"]
}
if (StrLen(exinfo["System.Photo.DateTaken"]) > 0) {
	picture_array[picCurrentShow].exif.Date:= exinfo["System.Photo.DateTaken"]
}

然后在 swap 方法中,使用 picture_array[picCurrentShow].exif.Date 即可访问到。

大佬,在swap那里不知道用什么判断

if (StrLen(picture_array[picCurrentShow].exif.Date) > 0)

使用没有EXIF属性图片报错:
Error: This value of type “Object” has no property named “Date”.

if (StrLen(exinfo["System.Photo.DateTaken"]) > 0)

一运行就报错:Warning: This variable appears to never be assigned a value.

使用 picture_array[picCurrentShow].exif.HasOwnProp("Date") 判断是否有此属性。

1 个赞

:heart: 问题解决

我也解决了。 :grinning:

0.3.2在台式机上的EXIF显示有问题
被遮挡了

看样子这里的字号高度也需要测量,根据 DPI 估算的值还是会有偏差。

AHK 用 gdip 写界面还是太麻烦了。这个项目结束之后就不用这方案了。

v0.3.3

已修复。

v0.3.4 更新:

  • 新增了最大高度设置项。

  • 宽度不足窗口最小尺寸的图片现在会居中展示。
  • 优化了图片信息展示与EXIF展示。
  • 扩展名的背景色现在会根据扩展名的不同而变化。

PQC的维护基本上接近尾声了。接下来的时间得花在 ahko 的下个发布版本上面了。

@maple @seabirdr

1 个赞

从开始“能用”到现在的“实用易用小巧又美观”
看大佬的iwck,就知道大佬对美观方面是有要求的,马卡龙配色,仅仅500K的大小,绝对称得上是“精致”。 :+1:

作为之前没使用过autohotkey的小白,通过这个软件,对AHK也有了些浅薄的了解。在大佬的代码基础上,做些适合自己的调整,过程也是非常有意思。

比较遗憾的是因为不符合“小而美”的原因,早期就放弃了缩放计划。

本以为0.3.3就是最后版,放弃加入高度调节,没想到今天又更新了。
笔记本和台式最大高度显示不一致,让我产生了个想法:
早期版本高度会超出屏幕一点点,那不如让PQC超出更多。

一个“能用但可能不是特别方便”的原图模式
1.设置个快捷键,设置最大高度宽度为10000。
2.通过MouseInc的 alt+中键 快速移动窗口

放大模式根据实际调整为:
1.快捷键高度宽度调整为 4000、3000、恢复
2.加入移动窗口AHK代码 直接左键 移动

下载的时候卡巴斯基报告了一个事件:

下载被拒绝
用户: 我的笨蛋台式机\calendula
用户类型: 发起者
应用程序名称: msedge.exe
应用程序路径: C:\Program Files (x86)\Microsoft\Edge\Application
组件: 安全浏览
结果说明: 已阻止
类型: 包含广告软件、自动拨号程序、可以被入侵者利用以破坏您的计算机或个人数据的合法软件
名称: not-a-virus:HEUR:RiskTool.Win32.TrollAV.pef
精确度: 启发式分析
威胁级别: 低
对象类型: 文件
对象名称: data0029.res
对象路径: https://objects.githubusercontent.com/github-production-release-asset-2e65be/683747626/93fcba27-d6f5-40e1-97fd-7725036927b0?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIAIWNJYAX4CSVEH53A%2F20231117%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20231117T045723Z&X-Amz-Expires=300&X-Amz-Signature=f688a9df4c97da8b846b28a2ac1a0aa3e6a7ce3ac1f13c17c5456918497ccacd&X-Amz-SignedHeaders=host&actor_id=0&key_id=0&repo_id=683747626&response-content-disposition=attachment%3B%20filename%3DPicQuickCompare.zip&response-content-type=application%2Foctet-stream//PicQuickCompare.exe//
对象的 MD5: 598F2A253DE36C8D68E97AFBA5DF09C0
原因: 机器学习
数据库发布日期: 今天,2023/11/17 10:44:00

这应该是误报吧?我给加白了。

没事了,向卡巴提交了误报,ahk的特性问题。

ahk的二进制,误报很正常。

好~

很好很好用啊,我问个问题:
有时候两张图片宽高不太一致,有什么工具能手动一侧对齐或者自动对齐,并显示边界,方便我去裁剪
Photoshop 还是有点大啊

你这个需求应该可以开个新帖。