快速、简单、可扩展、便于操作的 HTTP 微服务,用于高级图像处理
https://github.com/h2non/imaginary
快速HTTP微服务写在 Go中,用于由bimg和libvips支持的高水平图像处理。 可用作私人或公共 HTTP 服务,用于大规模图像处理,为Docker和Fly.io提供一流的支持。它几乎是无依赖的,只使用净/http
原生包没有额外的抽象更好的性能。imaginary
支持作为简单HTTP API曝光的多个图像操作,并具有其他可选功能,如API 令牌授权、URL 签名保护、HTTP 流量限制策略和针对 Web 客户端的 CORS 支持。imaginary
可以阅读来自HTTP POST有效载荷、服务器本地路径或远程HTTP服务器的图像,支持JPEG、PNG、WEBP、HEIF,以及可选的TIFF、PDF、GIF和SVG格式,如果编译有适当的库绑定。 libvips@8.3+
imaginary
能够将图像输出为 JPEG、PNG 和 WEBP 格式,包括跨图像的透明转换。imaginary
还可选地支持图像占位符回退机制,以防图像处理错误或服务器出现任何性质的错误,因此服务器始终会根据 HTTP 响应主体和内容 MIME 类型返回图像,即使出现错误,也可透明地匹配预期的图像大小和格式。imaginary
在内部使用,一个强大和高效的库写在C快速图像处理,这需要低内存占用,它通常比使用最快的图像魔术和图形魔术设置或去原生包快4倍,在某些情况下,它甚至8倍快处理JPEG图像。libvips``image
支持图像操作
- 调整
- 扩大
- 作物
- 智能作物(基于内置的利比普斯算法))
- 旋转(基于 EXIF 方向自动旋转)
- 通过进一步的图像转换自动转速(基于 EXIF 元数据取向)
- 翻转(基于EXIF元数据的自动翻转)
- 失败
- 缩放
- 缩略 图
- 适合
- 在单个 HTTP 请求中,多个独立图像转换的管道。
- 可配置图像区域提取
- 嵌入/扩展图像,支持多种模式(白色、黑色、镜像、复制或自定义背景颜色)
- 水印(可按文本自定义)
- 水印图像
- 自定义输出颜色空间(RGB,黑色/白色…)
- 格式转换(附加质量/压缩设置)
- 信息(图像大小、格式、方向、字母。。。)
- 如果出现错误,可使用默认或自定义占位符图像进行回复。
- 模糊
docker run -p 9000:9000 h2non/imaginary -cors -gzip
docker run -p 9000:9000 h2non/imaginary -p 9000 -enable-url-source
docker run -p 9000:9000 h2non/imaginary -p 900 -mount /volume/images