本文完成于 2023 年 11 月
之前老苏介绍过 webp2jpg-online
,可以将 webp
格式的图片,转为 jpg
等,今天介绍的 WebP Server Go
是将 jpg
等转为 webp
格式
文章传送门:多功能图片转换器webp2jpg-online
什么是 WebP ?
WebP
它是由
与 PNG
相比,WebP
无损图像的尺寸小 26%
。在同等 SSIM
质量指数下,WebP
有损图像比同类 JPEG
图像小 25-34%
。【数据来自官网 https://webp.sh/#/2 】
什么是 WebP Server Go ?
WebP Server Go
是一款开箱即用的WebP
服务器。该项目是用Go
写的WebP
服务,无需二次开发就能实现将JPG
、PNG
、BMP
、SVG
等格式的图片,转化成WebP
格式的服务,能够有效地减小图片体积、节省带宽、提升图片加载速度。
目前支持的图像格式:JPEG
、PNG
、BMP
、GIF
、SVG
、HEIC
、NEF

安装
在群晖上以 Docker 方式安装。
在注册表中搜索 webp-server-go
,选择第一个 webpsh/webp-server-go
,版本选择 latest
。
本文写作时,
latest
版本对应为0.10.2
;

卷
在 docker
文件夹中,创建一个新文件夹 webp-server
,并在其中建三个子文件夹 data
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/webp-server/pics |
/opt/pics |
图片目录 |
docker/webp-server/exhaust |
/opt/exhaust |
图片缓存目录 |
docker/webp-server/metadata |
/opt/metadata |
图片元数据缓存目录 |

端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
3333 |
3333 |
默认没有对外暴露端口

需要点 +
号自行添加

环境
可变 | 值 |
---|---|
MALLOC_ARENA_MAX |
设为 1 |

更多的环境变量请参考官方的文档:https://docs.webp.sh/usage/configuration/
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 webp-server 和 子目录
mkdir -p /volume1/docker/webp-server/{exhaust,metadata,pics}
# 进入 webp-server 目录
cd /volume1/docker/webp-server
# 运行容器
docker run -d
--restart always
--name webp-server
-p 3333:3333
-v $(pwd)/pics:/opt/pics
-v $(pwd)/exhaust:/opt/exhaust
-v $(pwd)/metadata:/opt/metadata
-e MALLOC_ARENA_MAX='1'
webpsh/webp-server-go
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: '3'
services:
webp:
image: webpsh/webp-server-go
# image: ghcr.io/webp-sh/webp_server_go
container_name: webp-server
restart: always
ports:
- 3333:3333
volumes:
- ./pics:/opt/pics
- ./exhaust:/opt/exhaust
- ./metadata:/opt/metadata
environment:
- MALLOC_ARENA_MAX=1
然后执行下面的命令
# 新建文件夹 webp-server 和 子目录
mkdir -p /volume1/docker/webp-server/{exhaust,metadata,pics}
# 进入 webp-server 目录
cd /volume1/docker/webp-server
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
如果在浏览器中直接输入 http://群晖IP:3333
会显示错误 File extension not allowed! /
正确的使用方式是:
-
上传文件到 pics
目录

-
打开链接时,带上图片名称,例如: http://群晖IP:3333/00.png

-
另存图片,默认扩展名已经是
webp
,虽然URL
没变,但实际上已经是image/webp
格式 -
文件大小比对,差异还是很明显的

这个文件在缓存目录中是能找到的

高级玩法
启用环境变量 ENABLE_EXTRA_PARAMS
,将其设置为 true

现在就可以在 URL
中通过添加 width
和 height
来控制图片的大小了,例如 http://群晖IP:3333/00.png?width=300&height=300

参考文档
webp-sh/webp_server_go: Go version of WebP Server. A tool that will serve your JPG/PNG/BMP/SVGs as WebP/AVIF format with compression, on-the-fly.
地址:https://github.com/webp-sh/webp_server_goIntroduction | WebP Server Documentation
地址:https://docs.webp.sh/WebP Server
地址:https://webp.sh
@所有人:写文不易,如果你都看到了这里,请点个赞
和在看
,分享给更多的朋友;为确保你能收到每一篇文章,请主页右上角设置星标。
原文始发于微信公众号(各种折腾):能将图片转为WebP格式的WebP Server Go
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/288351.html