什么是 imgproxy?
imgproxy 是一款独立的实时图片处理服务器。它通过在图片 URL 中应用处理参数,对远程图片进行调整大小、裁剪、旋转、加水印、添加滤镜和转换,因此应用无需提前预生成每一种图片变体。
它旨在运行在你自己的基础设施上,并与你自己的图片存储配合使用。该产品提供开源核心项目,以及一个 Pro 版本,后者增加了高级功能,例如更多处理选项、视频、PDF 和 Photoshop 文档的预览生成,以及其他增强功能。
主要功能
- 实时图片调整大小和转换 — 在请求时直接提供所需的精确图片变体,而不是存储大量预先生成的文件。
- 基于 URL 的处理选项 — 直接在图片 URL 中指定变换和输出格式,适合由 CDN 和应用驱动的图片交付工作流。
- 自托管部署 — 在你自己的服务器或基础设施上运行 imgproxy,而不是将图片发送到第三方 SaaS 服务。
- 图片请求安全控制 — 包括防护 image bombs、通过 URL 签名防止未授权变换,以及通过 HTTP header 进行授权,以帮助保护缓存交付路径。
- 广泛的图片处理支持 — 开源版本支持调整大小、裁剪、旋转、加水印、滤镜、色彩配置文件剥离、元数据剥离、PNG 量化和智能裁剪。
- 开源核心与 Pro 功能分层 — 开源版本发布在 GitHub 上,而 Pro 版本增加了高级压缩、动态水印、视频预览、对象检测、高级智能裁剪以及其他高级功能。
如何使用 imgproxy
典型部署通常从在你自己的机器或托管环境中将 imgproxy 安装为 Docker 镜像或 Linux 包开始。然后你可以上传图片或让它指向存储中的图片,按需配置服务器,并通过在 URL 中添加变换参数来请求处理后的图片。
在实际使用中,应用或前端会生成包含所需尺寸、格式和变换设置的图片 URL,而 imgproxy 会按需返回处理结果。
使用场景
- Web 应用的响应式图片交付 — 在请求时生成不同尺寸和格式的图片,满足需要多种变体的布局。
- 私有基础设施图片处理 — 当你不希望将资源发送到外部服务时,将图片处理保留在自己的环境中。
- 高并发图片工作负载的成本控制 — 用自托管服务器替代托管式图片 SaaS,让处理和扩缩容决策始终由你掌控。
- 有安全要求的图片处理 — 使用签名 URL 和请求授权来减少滥用及未授权的变换请求。
- 高级媒体工作流 — 使用 Pro 功能处理视频预览、PDF 或 Photoshop 文档预览、高级压缩和动态水印等任务。
常见问题
imgproxy 是自托管的吗? 是的。资料将 imgproxy 描述为运行在你自己基础设施上的自托管图片处理服务器。
我需要预先生成图片变体吗? 不需要。imgproxy 旨在根据 URL 参数按需处理和转换图片。
有开源版本吗? 有。该产品采用 open core 模式:开源版本发布在 GitHub 上,同时也有闭源的 Pro 版本。
支持哪些格式和变换? 资料提到了 JPEG、PNG、GIF、WebP、AVIF 和 JPEG XL 等常见格式,以及调整大小、裁剪、旋转、加水印、滤镜和若干优化功能。
imgproxy 如何部署? 它以 Docker 镜像和 Linux 包的形式分发,并设计为可运行在几乎任何托管服务或本地机器上。
替代方案
- 其他自托管图片处理器 — 类似工具,专注于在你自己的基础设施内运行图片变换,通常具有不同的配置模型或功能集。
- 托管式图片转换服务 — 由 SaaS 平台代为处理调整大小和转换,通常比自托管服务器的运维控制更少。
- CDN 图片缩放功能 — 一些内容分发网络提供的边缘图片处理,可简化部署,但可能无法提供相同的处理深度或部署控制。
- 应用内自定义图片处理流水线 — 直接构建在应用技术栈中的库或服务,适合较小规模工作负载,但需要更多应用侧维护。
替代品
Ably Chat
Ably Chat 提供聊天 API 和 SDK,用于自定义实时聊天应用:支持反应、在线/房间状态及消息编辑/删除,面向高并发场景。
Pixelcut
易于使用的AI工具,让您的照片脱颖而出!
Petalica Paint
Petalica Paint 是一项自动上色服务,旨在轻松增强线条艺术的数字作品。
AakarDev AI
AakarDev AI 是一个强大的平台,通过无缝的向量数据库集成简化 AI 应用程序的开发,实现快速部署和可扩展性。
Wearvue AI
Wearvue AI 可根据你的照片生成穿搭预览,并按特定场合优化造型,帮你查看相似真实商品,方便买前对比不同风格。
DeepMotion
DeepMotion 是 AI 动作捕捉与人体追踪平台,可在浏览器中用视频(及文本)生成 3D 动画;并通过 Animate 3D API 便于开发集成。