-
Notifications
You must be signed in to change notification settings - Fork 279
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
相比341KB、功能更丰富的PngOptimizer,Imagine也太笨重了…… #146
Comments
Imagine 的设计初衷,是为有损压缩提供实时调整预览效果的能力,让网页素材在肉眼可接受失真范围内尽可能体积。 显然 Imagine 对 UI 的要求更高,考虑到跨平台的需求(我工作用 Mac,娱乐用 Windows),就使用了 Electron。
用 Electron 开发的,体积能不大吗。功能无法替代 mozjpeg 是因为 没有把 mozjpeg 的参数开放出来。 BTW,现在正在尝试用 Tauri 替代 ELectron,但是 Tauri 的能力偏弱,目前还替换不了。
这是是 Electron Builder 的问题,不清楚有没有选项能控制。
因为需要实时预览压缩效果,这些文件是缓存,避免来回调整时每次都生成。 这个后面可以在关闭图片、软件的时候删一下。
Imagine 的整个设计就是围绕有损压缩来搞的,后面可能提供无损的选项。
目前的实现是直接 exec 调用 mozjpeg / pngquant 命令行来做的,扩展新能力比较困难。等迁移到 Tauri 的时候会直接调用编解码 API 来做,到时候就可以支持 APNG 压缩、更多输入输出格式。
从来没有考虑过功能完全覆盖 xxx,尤其是完全覆盖命令行工具。 |
我十分理解其中多数是Electron的问题,也曾试过国内外各种Electron程序(像是比千千静听大数十倍却属于电子垃圾的“百度音乐”——不知百度收购千千图啥),但都放弃选择其对应的网页版了。我想寻求压缩图片体积的人,可能也在乎软件体积,因此我“功能完全覆盖”的意思是,即便把这些功能都加上,大头还是Electron(指软件体积也不会变更大了) 其实我是个眼高于手的画手,比如头像就我画的,所谓“眼高”是指一般的“肉眼可接受失真”在1080p24寸屏幕下看来都不可接受。我以前用过TinyPNG,能看到其png8上透明背景仿色抖动的每一个像素点,pngquant的也是,当然也能看见低压jpg的噪点,所以干脆打消了有损压缩的想法。而无损压缩特点是“压前压后图像不变,只管压没顾虑”,我可以批量“发送到”PngOptimizer几十上百张,放心让它在后台一把子压缩而不预览——也就不需要软件写缓存,PngOptimizer和mozjpeg使用中都未见图片格式的缓存。
这个……不太理解你推荐我(放着PngOptimizer不用)用命令行的oxipng,是否我上文没表达清楚:我已经在用命令行的mozjpeg无损压缩,就是因为遍寻不得一个“有界面的mozjpeg”才找到这儿的呀。 |
@MY1L 在 Imagine 底层迁移到 rust + tauri 之前,没有提供类似能力的计划。因为目前底层是 NodeJS 调用 pngquant 二进制可执行文件来压缩的,pngquant 就是做索引色有损压缩的,所以想做 PNG 无损压缩,就需要额外引入一个压缩器进来,在现在的实现下还要考虑多平台,会稍微有些麻烦。 无损压缩的功能考虑在新版本(tauri)中提供,但是 tauri 部分能力还满足不了要求,所以进度会受到影响。不过我可能会先搞个预览版出来。 |
等等,如果受限于pngquant,可以先不做PNG无损压缩,毕竟PNG压缩在win和mac都分别有界面工具,但jpg无损压缩界面工具我还没找到。 |
若考虑跨平台的兼容性,目前electron+bin虽然笨重但却是比较通用的方式,对于80MB的应用体积我觉得不是很难接受,比这重的同类应用比比皆是,个人认为关键还是跨平台兼容性有保障的前提下再去修改底层架构比较妥善 |
站在开发者的角度上需要一个可以服务器部署开箱即用的版本,让编辑人员来压缩完图片再上传,好难。 |
imagine所有任务都是在本地执行的吗 |
对 |
psydk.org - PngOptimizer,free software,GNU GPL 2许可,源码在 https://github.com/hadrien-psydk/pngoptimizer ,它主要是无损压缩png,有如下功能:
Ctrl+V
即可,剩下的压缩、命名、生成png到指定文件夹,配置好了软件可以全自动完成。\AppData\Roaming\Microsoft\Windows\SendTo
,从此以后我只需要选择一批图片,然后右键“发送到”,就可以批量压缩或转换了。其压缩包 version 2.7 x64 (zip 184 kB),解压后主程序仅341KB,运行时不释放其它东西,绿色软件,所有配置放在同文件夹下
PngOptimizer.ini
,无它。PngOptimizer相比Imagine的缺点是不能压缩jpg、webp,但我已经在用mozilla/mozjpeg命令行无损压缩jpg了。而b站恶意不支持webp上传,所以我一时还不需要。
我其实是用惯了mozjpeg命令行(当然也是右键“发送到”bat,很方便)想找个图形界面的,于是看到了同样用mozjpeg压缩的Imagine,而且还能压缩png,想着找到宝了,但用了便携版几分钟发现了不少缺点:
app-64.7z
,卡。看释放的是Electron,差不多相当于解压了一个小chromium浏览器(不禁想起为什么 electron 不做成独立的 runtime?),在关闭之时又会迅速删除释放的东西,这样每次开关都会大量读写硬盘消耗寿命,而且还慢,所以推荐大家选择安装版(虽然我没用过)\AppData\Roaming\Imagine
下保留一套chromium浏览器配置和缓存。\AppData\Local\Temp\imagine
下生成一张图。我只是滑动一下压缩率就看见Everything显示Imagine连续生成7张图,这些不会在退出时删掉,考虑到便携版往往不在自己机器上用,这有可能泄露隐私,而PngOptimizer和mozjpeg都不会写Temp并保留。最后,我十分期待有个功能完全覆盖PngOptimizer+mozjpeg的易用图形界面,软件体积都无所谓了。
The text was updated successfully, but these errors were encountered: