loli
1
前文 小小折腾了下 JPEGView - #53,来自 loli
鉴于 jpegview 在浏览大图切换滞后感很重.
于是有动手肝个图片浏览器的想法
现在个人所需要的核心大部分已经完成了
更多的文件预读
无边框
直接拖拽就能移动界面
根据图片变化的透明背景
文件信息栏背景自动变化 (解决在图片过亮时看不清)
类似 jpegview 左下的缩略图
图片自适应宽度
单实例
关闭时不退出(加快启动速度)
当我准备让人测试一下时崩溃了
如图,右边是我本地的版本 依赖于框架(7个文件 不到1MB)
左边是自带框架的版本 (500+文件 153+MB)
看见就想吐血,我自己遇见这种大小的软件除非真有必要,不然就是直接无视绕开…
现在就有种"自爆自弃"的想法
既然别人运行这么复杂,干脆后面的设置界面,快捷键自定义等等全不做了
直接写死算了了,反正就自己一个人用,做那些估计是吃力不讨好
所以大家对这种打包后巨大的程序是怎么看的…
我连一个electron都不想装
说到electron, 它的一个缺点这也有
占用问题, jpegview直接打开无文件时内存占用2MB,后续占用一般不超过500mb
我这个打开后30MB,后续轻松超过2G…
关闭不退出时占用100+MB(有时内存没释放好就可能2G+一直在后台占着…)
虽然我占用这么多是有理由的(解决上面说的滞后感问题,以内存换取速度)
但一般人看见一个图片浏览器占用几个G是什么想法…
更加加重了我的"自爆自弃"想法.
astro
2
有些dll类库可以删掉的,你可以测试,如果删掉打开exe没问题的话,直接删了就是了。
现在一个程序几百MB也不算什么事吧,7z压缩一下也才几十MB,
所以你说的问题,基本上不算大问题。
要么降级到 .NET Framework,系统自带的有;要么就让用户安装运行时,起码还有可能跟别的程序分摊下成本(比如 PowerToys)。
看到这句话很心酸…
我用易语言开发软件,网上罗列的易语言十大罪状中一条,就是编译出来的程序体积“巨大”,一个空窗口竟然都要“几百K”,随便写个程序就要1M多,不简洁,效率低…55555…
loli
5
这是对比出来的.
我说的 JPEGView 总共不到2MB
Honeyview 之类20MB
我自己都不能接受一个功能简单核心功能不突出的巨大软件…
据说 Win10 预装了 .net framework 4.5 以上的版本,
即便不打包 .net framework, 说不定也能在别人的 Win10 上运行.
xml123
8
.net的可以要求用户装运行库嘛,这个我觉得还好,能装公共runtime的都不是大问题。
确实现在的框架越来越大了,其实.net还不算特别明显,常见的两种一个是qt,这个好像还只能每个项目自带dll,另一个就是electron了,不光体积大,跑起来还特别吃资源。
foyax
9
所以很多人看不上electron和net系软件,依赖多占用大性能低。
感觉用个胶水语言调用底层库比这些强多了,比如可以Ahk+imgui写,ahk简单,imgui调用GPU,性能无虞。
在这里甚至有很多成品,把几个示例融合下几乎就是一个简陋图片浏览器了。
可是底层库比较难掌握, 用 html、xml 比用 imgui 等底层库自绘界面要简单很多
「 胶水语言+底层库 」适合本来就会用底层库的选手
loli
11
我还真尝试过AHK的图片浏览器
Quick Picto Viewer v5+
https://www.autohotkey.com/boards/viewtopic.php?f=6&t=65584
近8W行的单个ahk文件
难以想像,就没见过更复杂的ahk"脚本"了
刚去看了下GitHub更新时间 17小时前…
这作者就像他的ID一样 就是个机器人…
虽然这样,但用起来真的一言难尽
我是在用photoshop浏览图片吗?
我在用的到底是个图片浏览器还是图片编辑器?
纯图片浏览速度比JPEGView差远了…
另外一个他的快捷键也写死了…
其实就图片浏览器这个简单东西来说,感觉最大的性能就在于IO了. …
我当前的线程感觉也是阻塞在io了,有点像伪多线程了.
多线程还是难点,目前只能说勉强能运行了.
loli
12
我用是net6, 这是VS2022的默认选择
听说net6提升很大,IO方面提升宣传也很厉害
不知道是否有必要为了兼容性降到4.8
目前还不算复杂,降一下也很简单
mpv net 就是4.8的
自己fork了一个版本,
写起来倒也没啥差别
添加了音频设备切换,文件夹切换,打开所在文件夹等脚本能实行的功能
关联带图标
核心是添加了一个新的运行模式,只加载同类型的文件
可以同时存在三个mpv,一个音频,一个视频,一个图片(真有人用mpv浏览图片?)互不影响
不过翻译文件没上传上去,我在等源更新看看能不能合并
上一次修改太多合并失败了,这次把功能都添加到一个新文件中
看看能不能合并
haitao
13
不用界面也可以 只读取配置文件,实现灵活配置。
需要用户自行编辑修改 配置模板,只要配置项简单明确或者有说明 就行了。
loli
14
还没到那一步呢
设置文件都没有,目前都写死了
不过我也是真不想写界面
目前界面连最大化最小化的图标都没有…
复刻JPEGView的缩略图都弄了好久…
最后实现还不完美(缩略图不会随窗口缩小,横屏的缩略图位置有问题等等)
还是折腾这些细节部分
https://s1.328888.xyz/2022/08/17/3Tq0s.gif
ICEBOX
15
可以接受安装运行时。我讨厌electron的理由就是,electron非常大,而且没办法分享部分文件,webview2就是纯纯好文明了。
看图软件几百兆,我接受不了。就简单看个图,要不是自带看图软件坏了,我才懒得折腾。
看图软件的话, 试试 imagemagic 的开源库, 很多看图软件都是基于这个开发的.
至于框架, 如果你用c#是逃不开的.
这就跟我小时候穿棉裤一个感觉,不穿吧,冷,穿吧,基本上就没法动了。世间安得两全法啊
2 Likes
ury
21
手上只有一个blazor wasm的项目冲在前面,未来尝试maui估计也要冲。桌面软件一律用.net framework,写起来差不太多,编译出来小就是香。费劲去给根本不懂技术的用户解释为什么软件这么大,什么是运行时,没必要,他们也不想知道