有点难以置信, producthunt 上发现的一款用 JavaScript 实现图片大小压缩的小工具

2017-10-19 08:37:06 +08:00
 Reign

我发现 producthunt 总能给我带来惊喜,刚发现一款老外制作的神器: https://www.picdiet.com ,有各种语言版本,中文版: https://www.picdiet.com/zh-cn ,这款工具号称用独特的 JavaScript 算法可以减少你的图片大小至少 80%而不损害其质量,我当时第一反应就是,不就是用 js 读取一个本地图片,然后转换为 canvas,然后通过 canvas 的 todataurl 来设置其质量么,然而事实上它压缩功能绝不是这样,成像质量太好,压缩率太高,不是一个 todataurl 能搞定的,有没有前端狗看下这个工具到底是如何工作的,个人感觉貌似真如他官网说的比 jpegoptim, jpegtran, jpegrescan and jpegmini 压缩质量更好

7566 次点击
所在节点    程序员
32 条回复
xia0chun
2017-10-19 08:48:39 +08:00
魔笛手?
mclxly
2017-10-19 08:52:20 +08:00
“可以减少你的图片大小至少 80%”
这个”至少“就不准确了,刚刚测试了一张图片:
Compress duration:1514 ms Original image(s) file size: 275.41 KB Compressed image(s) file size: 219.06 KB File size reduction:20%。

压缩率跟图片复杂度有关。

github 上有基于 js 的图片压缩库。
wired
2017-10-19 09:27:54 +08:00
pied piper 3 年前就能通过撸管算法实现 3D 视频无损压缩了,这才哪跟哪
shakoon
2017-10-19 09:36:21 +08:00
有点难以置信:
压缩耗时:686 ms 原始文件大小: 12.6 KB 压缩后文件大小: 14.65 KB 压缩百分比:-16%
jmyz0455
2017-10-19 09:38:52 +08:00
有意思,坐等大神分析原理。
Arrowing
2017-10-19 09:40:58 +08:00
@shakoon 233333333333333333
Reign
2017-10-19 09:55:37 +08:00
@shakoon 应该跟具体图像复杂程度有关吧,或者该图片已经是高度压缩了的?
crz
2017-10-19 09:57:12 +08:00
楼主知道 canvas/todataurl,应该也知道 file api 吧~~
crz
2017-10-19 10:03:29 +08:00
在像素一致(每个像素值都一样)的情况下,相同格式(包括编码方式之类的)的文件大小应该有个极限,压缩率和原文件的冗余度有关
UnPace
2017-10-19 10:04:03 +08:00
最好的图片压缩还是它,没有之一:

https://tinypng.com/
LeeSeoung
2017-10-19 10:06:29 +08:00
单纯不爽 lz 称前端程序员为前端狗。。
Reign
2017-10-19 10:09:41 +08:00
@LeeSeoung 这是亲昵的称呼
BearD01001
2017-10-19 10:12:49 +08:00
@LeeSeoung +1 前端狗这种明显是自嘲的称呼,听非前端人这么讲真是。。。好感度-10086👎🏻
LeeSeoung
2017-10-19 10:16:04 +08:00
@Reign 你哪个职业,名字叫啥,我在你后面加个狗 表示亲昵,可以吗?
qping
2017-10-19 10:17:09 +08:00
@shakoon #4 还不是个例,随便找了张,原始 790K,压缩后 1.28M
Reign
2017-10-19 10:18:21 +08:00
@LeeSeoung
@BearD01001 好吧,我承认错了,V2 没法编辑帖子,以后会注意的
Leafove
2017-10-19 10:20:47 +08:00
LZ 重新定义了难以置信
alwayshere
2017-10-19 10:48:34 +08:00
不错,感觉国外这方面的人比国内更敢于尝试和创新一些
alwayshere
2017-10-19 10:49:21 +08:00
@UnPace 大胸弟啊,tinypng 是压缩 png,人家是压缩 jpg 的啊
CherryFun
2017-10-19 11:02:20 +08:00
@alwayshere 虽然名字叫 tinyPNG,但它也可以压缩 jpg,不信你试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/398814

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX