lc-soft / lc-finder Goto Github PK
View Code? Open in Web Editor NEWAn image annotation and object detection tool written in C
Home Page: https://lcfinder.lc-soft.io
License: GNU General Public License v2.0
An image annotation and object detection tool written in C
Home Page: https://lcfinder.lc-soft.io
License: GNU General Public License v2.0
既然 LCUI 能支持 linux 系统,那么 LC-Finder 也需要针对 linux 系统做适配。
语言包括:简体中文、繁体中文、英文、日语。
语言文件可考虑使用 yaml 或 JSON 存储格式。
UI **的竞赛频道里一个图标设计起步价2000块,感觉有些贵,要是能设计三个图标的话倒是能勉强接受。
布局过程中使用 current 指针标记当前处理的部件,而布局是分批次处理的,如果在这期间有新部件追加会使得 current 指针被改变,从而导致布局的部件宽度计算错误。
在图片很多的情况下,用户滚动缩略图列表视图时可以显示一个类似于 (256/10000) 这样的进度提示,这样能让用户知道自己具体浏览到第几张图片、总共有多少张图片,毕竟右侧的滚动条只能表示大概的范围。
当视图还在加载新的缩略图项时可以在顶部显示一个进度条,如果 1 秒后还有未加载的缩略图项就显示这个进度条。
毕竟除了收集图片,也有很多人会收集各种不可描述的视频。
调用Drect2D接口将LCUI渲染的图像绘制到UWP应用的窗口中。
可能需要添加UWP版的鼠标、键盘、触屏支持。
先崩溃后闪退
可按时间和评分来排序。
经测试,sprintf() 函数在处理包含中文的 UTF-8 编码字符串时会直接抛异常,为解决这个问题,需改为存储宽字符版本的翻译文本。
void testsprintf( void )
{
char buf[256], *str;
wchar_t *wstr = L"总共有 %d 个文件";
str = EncodeUTF8( wstr );
sprintf( buf, str, 128 ); // 异常终止
printf( "%s\n", buf );
}
当前是将文件列表以文本的形式存在文件中的,如果要删除几个文件,从这个文件列表中删除相应的文件记录的效率会比较低,因此应改用 unqlite 数据库来存储。
文件列表缓存中需要记录文件最后修改时间,在同步文件列表时,如果文件已经缓存,则判断最后修改时间是否相同,不同则标记需更新数据库中的文件数据。
当前为图片添加标签所需的步骤比较多,一次操作只能对一张图片添加一个标签,需要改进。
第一张图片不能切换,打开其它图片正常。
除了管理正常向可公开的图片,还需要管理那些非公开的图片,之前想到的解决方案是每个文件都可以单独设置为隐藏,每个标签也可以设置隐藏,但感觉处理起来有些复杂,现在仔细想想,其实在一般情况下,大多数人会找个地方新建个文件夹来专门存放这些图片,与普通图片区分开来,不会混在一起,针对这一情况,可以添加”私人空间“功能来管理这些文件夹。
目前设计是在”设置“视图中增加一个设置项”私人空间“,用户可选择开启/关闭它,当开启它时,将支持设置指定的”源文件夹“为隐藏状态,这样,在关闭”私人空间“后,文件夹列表和搜索功能都不会列出那些属于”私人空间“内的文件。
”私人空间“可以设置密码,每当开启”私人空间“功能时,会要求输入密码。
”私人空间”的开启状态仅限本次运行的程序有效,如果退出了程序,那么下次启动程序时“私人空间”会是关闭状态。
这里的“私人空间”只是限制程序的文件搜索功能,并不虑涉及文件的加密与解密,至于如何隐藏非公开的图片,则由用户自己想办法。
当前的功能只适合管理零碎的散图,对于像漫画、写真集、CG集、游戏截图等这类具备系列性质的图片,需要支持以相册/专辑为单位进行管理。
当前界面主题是亮绿色,以后可以添加其它主题,在设置界面里切换。
也就是 css 代码的事情,动态切换,无需重启程序。
其它程序需要选择单张或多张图片时,可以调用 LC-Finder,让用户在 LC-Finder 里勾选图片,确定后将图片路径列表返回给程序。
可以先做个函数版本,程序需要时调用函数即可。
现在打开图片需要先进主界面,考虑到以后会作为图片文件的打开方式,需要支持带参数运行,能够直接显示图片查看器。
可在图片查看器两边添加切换按钮,以供用户切换上一张/下一张图片,当缩放后的图片小于图片查看器时,用户的左划/右划操作会触发图片切换。
包括单文件删除和多文件批量删除。
可用 TensorFlow 实现图像识别,具体细节技术以后再了解。
电脑型号 Dell XPS 13
操作系统 Windows 10 专业版
问题 使用触摸屏的时候无法滚动,只能靠拖动滚动条,如果有时间的话建议加入触摸屏滚动功能。
一个计算机上会有多个用户账号,应该将多个用户的相关设置和数据存储独立开来,避免多个用户共用而产生冲突。
试用期内,在“设置”视图中说明当前是试用版。
Would you like to add more error handling for return values from functions like the following?
在追加完全部的缩略图列表项之前,界面响应会很慢,滚动条都不会显示。
当源文件夹移动位置后,LC-Finder 中记录的文件信息会无效,如果该源文件夹内的文件比较多的话,虽然可以重新添加源文件夹然后把文件同步进来,但之前对文件添加的评分和标签却无法还原,为解决这个问题,可以为源文件添加位置编辑功能。
缩放模式
非缩放模式
I would like to point out that identifiers like "__LC_FINDER_H__
" and "__UI_H__
" do eventually not fit to the expected naming convention of the C++ language standard.
Would you like to adjust your selection for unique names?
当前是每个缩略图列表都有一个缩略图缓存,默认大小 32MB,整个程序有 4 个缩略图列表,共计 128 MB,需要考虑优化,让这几个缩略图列表可以共用一个缩略图缓存。
以平均一张缩略图大小 262 KB 为例,整个屏幕大概可排列 52 张,考虑到有多个列表、列表滚动体验、4K屏等情况,暂定缓存大小为 64MB。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.