随着图片越来越多,管理也越来越成问题。但没见到哪款图片管理软件有类似这些功能。整理一下需求,列在这里,或许可能自己做一个。
- 跨平台:虽然由于各种原因不能抛弃Win,但我更喜欢Linux。所以我经常在双系统中切换。
- 绿色:不要安装,不要一大堆的杂七杂八,最好是一个程序搞定,一个sqlite3存储。两个文件知根知底。
- 图片标签功能:个人比较习惯使用目录结构进行文件管理,但图片的属性往往不只一个,这个时候就不能只靠目录进行管理了。这也是图片越来越多,越来越不好管理的原因之一。允许按标签分类显示,按标签搜索。
可以考虑使用LSB技术,将标签功能添加到图片中。 - 分类:考虑的功能,毕竟已有标签功能。
- 喜爱: 给图片爱程度打分。XnView也有此功能。
- 图片自身信息:尺寸、类型、大小、EXIF
- 功能:尺寸控制、格式转化、水印、单图/多图预览、图片比较、图片滤重、加密
- 如果:能利用AI技术,自动进行部份识别,减少人工标记
看起来XnView是较为符合的,先用。
XnView的XnView.db是sqlite3,这对于便携是比较好的。
通过了解exiftool工具,看起来可以先简单的实现:一个图一个图的修改相关属性,便于管理。
通过Exiftool工具,将信息写入文件本身,是比存储sqlite3数据库更方便移动的。但搜索速度就有限,这样就需要平时将图片信息写入数据库,搜索的时候在数据库进行。
考虑使用Wails库来实现一个简单的图片信息编辑功能。另外还在纠结的是fyne框架。
进行中
受不了还要学习前端的东西,改变策略继续Godot.
基本能用,缺点是:内存占用较大,图片加载速度慢。试过预加载,发现是控件显示时慢。
现文件76MB(有点大,据说是包含了Godot引擎本身),通过RAR压缩自运行30MB。这些简单的功能,理想大小是10MB以内。
如果Godot能针对发行版,生成一个最小可执行引擎就好了,当前版本4.2,引擎程序114MB。从游戏引擎来说,它是不大的。
主程序81MB,加上exiftool工具,upx压缩后34.5MB。打开图片的速度暂未解决。
Win64版本提供下载 外观skin可有可无,可用记事本打开编辑。
用golang编写的工具,通过upx后,看起来不会超过3MB。巨大的差别。
半成品,使用github.com/pwiecz/go-fltk框架,尚待完成修改功能,完成即可跨平台且不信赖第三方文件(例如exiftool):
测试多个golang库未果,暂时修改方案:嵌入exiftool.exe工具,即利用现有强大工具。但这样存在的问题是不能跨平台使用。后续应该可以通过学习库的使用来解决,先完成一般需求。
半成品嵌入exiftool,upx压缩后是9.3MB。其中exiftoo是8.94MB。