Skip to content

图片处理 ​

图片通过 /i/<存储键> 访问,可在查询串中附加处理参数:

http://localhost:8080/i/2026/10/05/6f1c…a2.png?w=400&h=300&fit=cover&f=webp&q=80
参数含义取值
w目标宽度像素
h目标高度像素
fit缩放策略contain(默认,等比缩放)/ cover(裁剪填充)/ fill(拉伸填充,cover/fill 均需同时给出 w、h)
q输出质量1–100,缺省用 processing.default_quality
f输出格式jpeg/png/gif/webp/avif(受 processing.allowed_formats 与处理器能力限制)
r旋转角度90/180/270
flip翻转h(水平)/v(垂直)/hv(同时)
gray转灰度1/true
blur高斯模糊半径0–100
sharpen锐化强度0–100
wm文字水印内容任意文本(最长 200 字符)
wm_pos水印位置top-left/top-right/bottom-left/bottom-right/center
wm_opacity水印不透明度0–100(默认 80)
wm_size水印字号像素,0 表示自适应
wm_color水印颜色十六进制,如 #ffffff
enlarge是否允许放大1/true/yes/on

带处理参数的响应会附带 ETag,支持 If-None-Match 返回 304。

processing 配置提供开关与默认值:

yaml
processing:
  enabled: true
  max_width: 4096
  max_height: 4096
  default_quality: 82
  allowed_formats: ["jpeg", "png", "gif", "webp", "avif"]
  allow_enlarge: false      # 是否允许放大
  allow_effects: true       # 是否允许灰度/模糊/锐化
  allow_watermark: true     # 是否允许通过 URL 加水印
  watermark_text: ""        # 非空时为所有变换强制叠加该水印

前端「图片处理」页面(/processing)提供上述参数的实时预览,并生成可复制的处理链接。

使用 libvips 处理器(可选) ​

默认使用纯 Go 处理器(支持 JPEG/PNG/GIF 输出)。如需 WebP/AVIF 输出与更高性能,可在安装 libvips 后使用:

bash
go build -tags libvips -o bin/axmipic ./cmd/axmipic

图片处理驱动 ​

processing.driver 选择运行时使用的处理器,未知或不可用的驱动会在启动时回退到 purego:

驱动说明依赖
purego纯 Go(默认),支持 JPEG/PNG/GIF 输出无
libvipslibvips/bimg,额外支持 WebP/AVIF 与更高性能-tags libvips + CGO + libvips
magickImageMagick 命令行,额外支持 WebP/AVIF系统安装 magick 或 convert

GET /api/v1/admin/imaging/drivers 返回当前二进制可用的驱动与正在使用的处理器。

基于 MIT 许可证发布