(原) 需求及自我实现:一个图片管理软件

原创文章,请后转载,并注明出处。

随着图片越来越多,管理也越来越成问题。但没见到哪款图片管理软件有类似这些功能。整理一下需求,列在这里,或许可能自己做一个。

  1. 跨平台:虽然由于各种原因不能抛弃Win,但我更喜欢Linux。所以我经常在双系统中切换。
  2. 绿色:不要安装,不要一大堆的杂七杂八,最好是一个程序搞定,一个sqlite3存储。两个文件知根知底。
  3. 图片标签功能:个人比较习惯使用目录结构进行文件管理,但图片的属性往往不只一个,这个时候就不能只靠目录进行管理了。这也是图片越来越多,越来越不好管理的原因之一。允许按标签分类显示,按标签搜索。
    可以考虑使用LSB技术,将标签功能添加到图片中。
  4. 分类:考虑的功能,毕竟已有标签功能。
  5. 喜爱: 给图片爱程度打分。XnView也有此功能。
  6. 图片自身信息:尺寸、类型、大小、EXIF
  7. 功能:尺寸控制、格式转化、水印、单图/多图预览、图片比较、图片滤重、加密
  8. 如果:能利用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。

相关文章