luler 一、简介 weserv/images (wsrv.nl 的源代码)是一个免费且开源的图片处理服务器项目,用户可以在自己的服务器上部署使用 基于 Linux、nginx 和 libvips 等技术实现其图片处理功能 只需传入图片 URL 和编辑参数,就可以自动获取、处理、缓存并返回处理后的图片 提供Docker镜像,支持Docker一键启动 该工具的开源地址参考:https://github.com/weserv/images 该工具大概的工作原理和架构图可参考下图: 二、安装(Docker) 提前准备一台Linux主机,CPU不能太旧,否则无法启动,提前安装好Docker、docker-compose软件环境 新建docker-compose.yml配置文件,配置内容如下: version: '3.8' services: weserv: image: ghcr.io/weserv/images:5.x container_name: weserv ports: - "8080:80" shm_size: 1gb #容器内存使用限制 restart: unless-stopped # 可选:添加健康检查 healthcheck: test: ["CMD", "curl", "-f", "http://localhost:80/"] interval: 30s timeout: 10s retries: 3 配置完成,直接执行如下命令启动 docker-compose up -d 正常启动参考如下截图 如果CPU版本比较旧,部分功能无法运行会报错,参考 三、使用 1. 参数速查表 尺寸控制 参数名称说明示例 w宽度设置图片宽度(像素)&w=300 h高度设置图片高度(像素)&h=200 dpr设备像素比适配高清屏,取值 1-8&dpr=2 适配模式 参数名称说明示例 fit适配方式inside/cover/contain/fill&fit=cover cbg包含背景fit=contain时的背景色&cbg=black we禁止放大原图小于目标尺寸时不放大&we 裁剪与对齐 参数名称说明示例 a对齐位置center/top/left/attention等&a=top crop矩形裁剪裁剪到指定尺寸&cx=0&cy=0&cw=100&ch=100 precrop预裁剪在缩放前先裁剪&precrop trim修剪边缘移除边缘相似像素,取值 1-254&trim=10 遮罩效果 参数名称说明示例 mask遮罩形状circle/ellipse/heart/star等&mask=circle mtrim遮罩修剪移除遮罩周围空白&mtrim mbg遮罩背景设置遮罩背景色&mbg=white 方向变换 参数名称说明示例 flip垂直翻转沿 X 轴上下镜像&flip flop水平翻转沿 Y 轴左右镜像&flop ro旋转角度旋转图片&ro=90 rbg旋转背景非 90° 倍数旋转时的背景色&rbg=red 图像调整 参数名称说明取值 bg背景色设置图片背景色颜色名/十六进制 blur模糊高斯模糊效果0.3-1000 con对比度调整对比度-100 到 +100 gam伽马调整伽马值1.0-3.0 mod亮度调整亮度倍数值 sat饱和度调整饱和度倍数值 hue色相色相旋转角度值 sharp锐化锐化图片0.000001-10 tint着色给图片上色颜色值 filt滤镜greyscale/sepia/negate/duotone&filt=sepia 输出格式 参数名称说明取值 output输出格式转换图片格式jpg/png/webp/gif/tiff q质量图片质量1-100 l压缩级别PNG 压缩级别0-9 ll无损压缩WebP 无损压缩&ll af自适应滤波PNG 压缩前滤波&af il渐进式GIF/PNG 交错,JPEG 渐进&il encodingBase64 编码输出 data URL&encoding=base64 其他设置 参数名称说明示例 maxage缓存时长浏览器缓存时间(d/w/M/y)&maxage=7d default默认图片加载失败时显示的图片&default=fallback.jpg filename文件名指定下载文件名&filename=photo page页码加载多页文档的指定页&page=0 n页数渲染页数,-1 表示全部&n=-1 2. 使用示例 原图 基础缩放,访问:https//server_ip:8080/?url=https://img.baidu.re/i/2026/01/xa367p.jpg&w=200 正方形裁剪,访问:https//server_ip:8080/?url=https://img.baidu.re/i/2026/01/xa367p.jpg&w=200&h=200&fit=cover 圆形头像,访问:https//server_ip:8080/?url=https://img.baidu.re/i/2026/01/xa367p.jpg&w=200&h=200&fit=cover&mask=circle 模糊 + 灰度,访问:https//server_ip:8080/?url=https://img.baidu.re/i/2026/01/xa367p.jpg&w=200&blur=5&filt=greyscale 转 WebP 并压缩,访问:https//server_ip:8080/?url=https://img.baidu.re/i/2026/01/xa367p.jpg&w=200&output=webp&q=75 其他实现可参考使用文档搭配使用...... 四、总结 weserv/images 是一个基于libvips、nginx高性能图片处理工具 支持丰富的图像操作,裁剪、缩放、旋转、滤镜、模糊、锐化、色调调整、蒙版等 容器化部署,提供Docker镜像,开箱即用 提供图片处理API,通过简单设置参数即可实现图片编辑,可作直接非侵入式接入现有项目