5

图片素材管理软件:Billfish和Eagle的双雄之争

 2 years ago
source link: https://www.lanka.cn/billfish-1_4612.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

图片素材管理软件:Billfish和Eagle的双雄之争

2021-11-12 08:49

937

0

查询失败

一、写在前面

我就是一名普通的科技数码爱好者,和Eagle和Billfish没有利益相关,Eagle的授权是自己付费购买的,Billfish本身就是免费的,也就不解释了。

171235995.jpg

1636677912102639.jpg

我对软件的分享是居有主观性的,对各位对图片管理有需求的小伙伴分享了我的使用观点,我只是分享一个产品的使用过程的主观感受,但不应该成为你使用某款软件的决定性因素。

现在这个时代,信息传递方式都被颠覆了,不管观点多么离谱,都有一大堆人点赞,我们会看到利益相关的回答/文章一味的吹捧,同样会看到因为利益相关一味的为黑而黑,我不会标榜自己多么的客观,真的没必要,任何的分析和评测都是基于个人能力和偏好的主观表现。

无论是Billfish还是Eagle,都有自己固定的客群,也都有自己的优点和缺点,但有时候无形的优点比看到的优点更重要,而被忽视的缺点比表面的缺点更为致命,作为用户要具备对问题有独立的思考能力。

这篇文章不会去介绍两个软件基本功能介绍,如何导入素材?如何采集图片?如何进行检索..... 这些必要性真的不大,但凡知道这两个软件的,我相信他们对功能性的了解可能比我更熟知。我更希望能从我的几个需求痛点去分析。

二、迁移替换成本

为什么我要将迁移成本放到第一位?

因为在使用笔记管理软件的时候,我遇到的最大问题就是迁移成本,最早使用的是有道云笔记,感觉顺手之后直接续费到了2030年,曾经以为自己会对有道云不离不弃,但我总归是高估了自己的忠诚度。在有道云笔记beta发布后,我是彻底死心了,我可以接受你化妆,也可以接受你美颜,甚至你整容也没关系,但是你不能往差处整啊,既然你自己作死,我只能另寻新欢了,可是却发现没法迁移了,导出的文件要么是PDF,要么是YNU格式,我去太流氓了,果断弃之。

所以在其他领域的软件,我也尽量考虑可迁移性。

1、Eagel:侵占式

Eagle是以完全复制的形式进行存储的,也就是说Eagle导入的方式只有一种,就是复制的形式,文件的存储信息是以metadata.Json的形式进行保存,因为其特殊的存储方式,在脱离软件后文件架构是无法进行使用。

有小伙伴会说,我可以导出啊,导出后再整理。你能想到,我当然也能想到了。

1636677912724499.jpg

导出到计算机:此种方式为导出到计算机,也算是常用的方法。

1636677912723076.jpg

导出后呈现的就是这样,可这不是我需要的呀,我可能花费N天的时间建立了图片标签、文件夹结构、图片注释等信息,一切都重归于零了,即便其他信息我不要,给我保留最基础的文件夹结构可好?

1636677912720397.jpg

导出素材包:这个更不用说了,只能导入到Eagle软件使用。

2、Billfish:非侵占式

Billfish的存储格式是C++&Qt+SQLite,导入文件有三种方式

1636677913314025.jpg

(1)索引模式

索引即将原路径的文件,通过快捷链接的方式在软件中进行展示。进行索引时原始素材的路径和文件都不会发生变更。素材仅以快捷方式的方式存在于软件中。

简单来说就是,我在D盘建立了「家人相册」文件夹,我在此文件夹下又根据「年份」建立了文件夹,根据年份分别放置不同的照片,我甚至在年份下有根据「人物」不同建立文件夹。

我使用索引的方式,Billfish可以直接读取资源管理器上整理好的文件夹结构,也可以对其他路径的文件夹进行索引,管理图库的同时还能最大限度的节约存储空间。

无论是通过软件还是在资源管理器中,进行素材的增删都不会相互影响,即便后续不使用Billfish,整理好的文件结构也不会发生变动。

弊端当然也有,就是选择索引模式后,原始图片位置发生变化、改变了文件名等操作,都会造成软件无法读取素材,所以尽量不移动文件。

1636677913264108.jpg

(2)复制

复制顾名思义是将选中的文件复制到素材库所在的文件夹中,这样可以保证原路径的素材不会变动。通过软件的整理不会影响到原来的文件,可以作为素材的一个备份选择,但是会额外占用磁盘空间。

1636677913538370.jpg

(3)剪切

剪切和大家常用的资源管理器功能一致。当选择剪切时,软件会将选中的原路径的文件,移动到你创建的素材库所在的文件夹路径中。从而将零散的素材文件归集到一处,同时可以节省你的电脑磁盘空间。

如果硬盘空间比较大,可以选择复制模式;如果硬盘空间比较小,可以选择剪切模式;如果为了后期迁移方便,并且保留原始文件目录,索引是你正确的选择。

3、总结

1636677913922925.jpg

三、软件技术方案

1636677913295772.jpeg

1、开发框架

1636677913171802.jpg

Eagle:Electron

Electron是一个基于 Chromium 和 Node.js, 使用 JavaScript, HTML 和 CSS 等 Web 技术创建原生程序的框架。适合一些偏业务的应用,对性能没有很多要求,主要是业务逻辑和UI展示,比较轻量级的应用。因为Electron可以一份代码同时得到网页版和桌面版,所以如果你的应用还需要网页版,那么Electron可以极大地节省你的开发和维护成本。当然从性能来说Electron本身也是巨大的内存和cpu的杀手,就是很消耗这些资源。

1636677913173993.jpg

Billfish:QT

Qt适合一些性能要求高的桌面应用,如果你只打算做桌面端的话,你用electron要么是没法做,要不就是体验非常烂。而Qt则是一个更优的选择,性能好,而且出来这么多年,在PC平台上都很稳定,很适合高性能要求程序,比如WPS、斗鱼、yy语音、Opera、咪咕音乐、Skype、豆瓣电台、虾米音乐,以及部分adobe的桌面工具都是Qt做的。

Qt适合于高性能的专业应用,Electron适合想要把网页版和桌面端共享代码,同时对性能没有苛刻要求的场景。如果不在乎成本,Qt一定是体验更好。

1636677914450386.jpg

为什么会有很多软件会使用Electron进行开发,因为开发和维护成本低呀,QT是C++,Electron是JS,现在会C++的人越来越少,因为其并不是一个容易上手的语言,你根本不好招人,相对来说JS招人并不难吧。

2、数据库

1636677914923974.jpg

Eagle:Json

Json的优势在于灵活,可以存储文本,并且关联存储图像等数据,可以将其理解为小型数据库,如果不是不复杂的业务,用Json作数据库也未尝不可。

但是Json作为数据库也有局限性,例如它查找数据,需要将所有数据全部进行读取,然后再进行查找,这种逻辑在数据量小的情况是没问题的,但是随着数据存储的增加,达到一定量级的时候,每次查询数据,都需要把整个数据库进行加载查询,那么Json就会非常低效的,一般稍微复杂的场景都不会用Json作为数据库。

1636677914343289.jpg

Billfish:SQLite

SQLite是一个轻量级、跨平台的关系型数据库,一般用于嵌入系统或者小规模的应用软件开发中。

当然也会有用户提及MySQL,用于反驳效率比SQLite更好,首先我们需要理解的是,我们本次探讨范围仅限于单机软件层面,MySQL是一个Server,而SQLiteL是一个lib,试想一下,我不可能安装一个图片管理软件,还要启动一个MySQL,然后软件还需要在启动RPC,这不符合常理。对于一个图片管理软件来说,SQLite是入门数据库的好选择,读多写少,不需要并发写的应用场景,当然你非要抬杠说12306的,那算我什么都没说,毕竟微信、QQ用的都是SQLite

1636677914834845.jpg

Json只不过是一种数据格式,你可以理解数据仓库,但Json本身不不适用当做数据库来使用,如果数据少并且不复杂,也无可厚非,但是数据如果复杂庞大,就显示不合理了,Json在技术使用上无法代替数据库,假设你存储了10万个文件,那么相对应的Json文件也是10万个,每个Json文件里有55个key value,你进行一个筛选选择,理论上需要对550万个key value读出内存,然后筛选出你所需要的最多几 KB 的 value ,然后给你筛选出所需要的文件。

数据库的意义在于数据持久化,持久性的数据还是需要存储到数据库才可以,SQLite数据库的存储效率、查询效率都高。

3、总结

C++&Qt+SQLite

SQLite(sql)是一款开源轻量级的数据库软件,不需要server,可以集成在其他软件中,非常适合嵌入式系统。

Qt5以上版本可以直接使用SQLite,对于桌面级软件开发无疑是一个良好的选择,SQLite数据库的目的在于可以非常方便地对海量数据进行增删查改。

Electron+Json

Electron基于 Chromium 和 Node.js的框架,适合轻量级的应用开发,做个音乐播放器还成,用于海量图片素材的管理,有些力不从心。

Json的优势在于灵活,JSON诞生之初就是JavaScript语言的一个子集,现在独立成一种轻量数据交换格式,json 设计初衷并不是来做数据存储。

四、数据测试方案

不要过于关注我测试平台电脑极差无比,没办法,小微公司能有电脑用就不错了。既然是平台、 同一素材,理论不影响测试结果

测试平台:CPU: i5-3450 内存:16G 硬盘:希捷普通机械硬盘

软件版本:Eagle 2.0(20211020) Billfish2.1.0.14

素材来源:从花瓣采集34个画板

素材格式:图片

素材数量:10000张 (为计算方便删除部分图片,保留至10000张)

1636677914151118.jpg

测试环节:所有图片导入速度、所有图片添加标签、所有图片去除标签、所有图片添加备注、所有图片编辑备注、删除所有图片速度、颜色筛选速度、宽度高度筛选速度、文件大小筛选速度。

计时方法:通过屏幕录像,将视频导入至剪映,精确是毫秒。

1000张图片测试

1636677914419519.jpg

五、总结

你说其他的功能性的,其实在内卷的这个时代,底层是无法推倒重来的,但是对于具体功能点的迭代升级,大家也都在做竞赛。

你是收费,我免费。

你有截图工具,我也有截图工具;

你支持81格式,我也支持61种格式;

你的界面风格备受好评;我已经将产品经理祭天了;

你有快速收藏网页上的图片,我也支持高效快速的素材采集;

你的浏览器扩展插件支持5款浏览器,我的浏览器扩展插件已经支持7款;

你未来支持图片exit信息导入,我未来实现自动识别图片主体并自动标记;

对于图片管理软件的功能迭代升级,一直都在进行,我今天就不对具体功能进行截图分析了,各位小伙伴在他们各自的官网都会看到,知识库一个比一个丰富。

这篇文章主要从另一个角度进行去对比每个软件的不同,从软件开发者的初衷,从软件开发者未来的发展方向,去了解软件的利弊以及未来的生命周期。

the-end.png

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK