docker 镜像是 dko0/squoosh:1.12.0 或者 dko0/squoosh:latest 。
docker hub: https://hub.docker.com/r/dko0/squoosh
GitHub: https://github.com/hellodk34/squoosh
之前看到这个帖子 压缩图片文件大小有什么好的方案? 我刚好有这个需求,于是在 docker hub 搜了一下发现居然没有可用的镜像,试了几个跑不起来,比如 downloads 最多的 https://hub.docker.com/r/victor141516/squoosh 。然后只好自己动手。
使用 docker buildx build ,支持 amd64 arm64 和 arm v7 架构,应该满足绝大多数用户的使用场景了。
# docker buildx build -f ./Dockerfile -t NAMESPACE/squoosh:1.12.0 --platform=linux/arm64,linux/amd64,linux/arm/v7 .
此镜像使用起来非常简单,一句搞定。
# docker run -d --name squoosh \
--restart unless-stopped \
-p 7701:8080 \
dko0/squoosh:1.12.0
然后访问 http://YOUR_IP:7701 即可。
我测试了一个 10MB 的风景图片( iPhone 12 拍摄),直接压缩到了 739KB ,quality 是默认的 75 ,支持打开文件或者直接从剪贴板 control/command + V ,体验真不错。现在写博客使用自己的图床,以后贴图可以多考虑考虑压缩一下图片体积了。
欢迎使用。
不知道为什么,已经过去了超过 48 小时了,至今无法在 docker hub 上搜索到这个镜像,docker search 命令行也搜不到,有大佬指点下吗
可以正常 docker pull,镜像也是 public 的。
1
yukiwc 2022-07-20 13:45:49 +08:00
前端仔选择用 http-server
|
2
AllenHua OP @yukiwc #1 不懂就问,这个可以压缩图片吗,其实压缩图片的 api 免费库还是有一些的,google 这个已经很不错了,还开源。
|
3
shunia 2022-07-20 17:22:29 +08:00
和直接使用 https://squoosh.app/ 什么区别?
|
4
AllenHua OP @shunia #3 没有区别。但是可以照顾网络不好的用户,在本地也更快。还有对于喜欢自建服务的用户有帮助,大多数是比较讲究隐私的人,什么都自建,害怕图片被偷偷的传了一份到服务器(只存一段时间)被 google 用于 AI 相关的素材之类的。
|
6
AllenHua OP @shunia #5 是的,我也相信不上传,只是总有人会担心,会阴谋论嘛。在本地服务也挺好,现在用着蛮爽,主要是 docker 方便,损失点磁盘空间而已
|
8
7zlid 2022-07-21 00:57:47 +08:00 via Android
Squoosh 有脚本的
更方便还能批量 |
9
magicdawn 2022-07-21 01:13:19 +08:00
![image]( https://user-images.githubusercontent.com/4067115/180041556-8f738756-8c7a-49b0-86fe-c298d34374f0.png)
我写的工具 handy-img https://github.com/magicdawn/handy-img 可以试试直接 npx / yarn dlx / pnpm dlx / pnpx 使用, 以 pnpx 为例 pnpx handy-img c -f input.jpg -o output.jpg 支持 webp 和 jpeg 两种输出格式, jpeg 采用了和 squoosh 相同代码的 mozjpeg, 但 squoosh 是 wasm, handy-img 是相同 cpp 代码转成了 Node.js N-API addon, 比 @squoosh/cli 效率更高. 支持各种各样的批量操作: 支持 glob 输入, 支持定制输出 pattern, 支持 dir mode |
10
AllenHua OP |
12
miankaking 2022-07-21 22:24:54 +08:00
有 docker-compose 吗
|
13
AllenHua OP @miankaking #12
``` cat > squoosh-compose.yml <<EOF version: '3' services: squoosh: image: dko0/squoosh:1.12.0 container_name: squoosh networks: - squoosh-net ports: - 7701:8080 restart: unless-stopped networks: squoosh-net: EOF ``` 然后执行 docker-compose -f ./squoosh-compose.yml up -d |
14
AllenHua OP @miankaking #12 https://hellodk.cn/post/1077 docker-compose 建议从我的文章里复制命令,v 站评论区的 markdown 支持不太好,至少在显示层面上就不美观( yaml 对于空格啊这种缩进要求)
|
15
miankaking 2022-07-21 23:24:49 +08:00 1
@AllenHua 好好,谢谢🎉
|
16
siknet 2022-07-23 12:04:33 +08:00
@magicdawn 大佬,你这个好用,但是有个问题,好像一次最多只能处理目录下 17xx 张照片?能不能帮看看问题出在哪?我有个文件夹下有一万多张 jpg ,每张大概一百多 K ,命令行如下,处理到 1700 多张的时候就自然结束了,也没有抛出任何出错信息。
npx handy-img c -f './*.jpg' -o ':dir\compressed\:name.:ext' -y --codec mozjpeg -q 75 |
17
magicdawn 2022-07-23 13:36:28 +08:00 via Android
@siknet 有个提示 mapping ./*.jpg to xxx files ,这个 xxx 是 1700 还是 10000 ?
|
19
dianso 322 天前
感谢,用上了,原网站不太稳定。
能简单汉化下么。。。 |