如果 Cloudflare Images 是你图片栖身之处,那么 Cloudflare Image Transformations 就是让它们变快的引擎。它在图片被请求的那一刻调整尺寸、压缩并将其转换为现代格式,只使用你已经拥有的原图。没有构建步骤,没有预生成的缩略图,没有把你的存储弄得杂乱的单独副本。你在 URL 中请求想要的尺寸和格式,Cloudflare 便在边缘生成它并缓存。

本指南是我关于在 Cloudflare 上托管图片的概述的实用伴篇。它讲解运行转换的两种方式、重要的参数、在 2026 年的成本,以及如何在 WordPress 和 PrestaShop 上将这一切自动化。

摘要

  • 转换从单张原图按需调整尺寸、压缩并将图片转换为 WebP/AVIF
  • 两种方法:简单的 URL 格式/cdn-cgi/image/...)和用于完全控制的 Cloudflare Worker
  • format=auto 会根据浏览器的支持情况自动提供 AVIF 或 WebP
  • 定价慷慨:每月前 5,000 次唯一转换免费,之后每 1,0000.50 美元
  • 转换不再需要 Pro 套餐,这相比往年是一项有意义的变化
  • 你可以从源站或 Cloudflare R2 转换图片,并用我的免费插件和 Worker 将这一切自动化

Cloudflare Image Transformations 的工作原理

传统上,提供响应式图片意味着预先生成每一种尺寸。你上传一张照片,你的 CMS 会创建一个缩略图、一个中等版本、一个大版本等等,每个都作为单独的文件存储。这浪费存储、拖慢上传,而且仍然永远无法精确匹配某个设备所需的确切尺寸。

图片转换将这一切反转过来。你存储一张原图。当访客的浏览器请求某个特定尺寸时,Cloudflare 即时生成该尺寸、优化它,并将结果缓存在边缘。下一位需要相同版本的访客会立即得到缓存的副本。你从不自己生成或存储衍生文件,然而每台设备都会收到一张为其屏幕和格式支持量身定制的图片。

对你的访客而言的结果:一张 1 MB 的照片以 100 至 200 KB 的 AVIF 形式抵达,尺寸恰好适配其视口,从附近的边缘位置传送。

方法 1:通过 URL 格式进行图片转换

转换一张图片最简单的方式,是把它的 URL 包裹在你自己区域上的一个特殊路径中:

1https://example.com/cdn-cgi/image/<options>/<source-image-url>

一个真实示例,将尺寸调整为 800px 宽、将质量设为 75,并自动选择最佳格式:

1https://example.com/cdn-cgi/image/width=800,quality=75,format=auto/https://example.com/uploads/photo.jpg

要使用它,请在 Cloudflare 仪表板中为你的区域启用 Transformations(在 Images 下)。一旦启用,该区域上的任何图片只需构造 URL 即可转换。这是最快的上手方式,且不需要代码。

最有用的选项是:

选项作用
widthheight以像素计的目标尺寸
fit如何适配框:scale-downcontaincovercroppad
quality压缩级别,1 到 100(75 是合理的默认值)
format=auto在支持时提供 AVIF/WebP,否则提供原始格式
gravity裁剪时的焦点(例如 autoface 或坐标)
dpr用于视网膜显示屏的设备像素比
sharpenblur可选的后处理效果

方法 2:通过 Cloudflare Worker 进行图片转换

要实现真正的控制,你在 Cloudflare Worker 内部使用 fetch 请求上的 cf.image 属性进行转换。这让你能够应用逻辑:根据设备选择尺寸、限制哪些图片可被转换,或重写整个页面的图片链接。

 1export default {
 2  async fetch(request) {
 3    const options = {
 4      cf: {
 5        image: {
 6          width: 800,
 7          quality: 75,
 8          format: "auto",
 9          fit: "scale-down",
10        },
11      },
12    };
13
14    // The image you want to transform
15    const imageURL = "https://example.com/uploads/photo.jpg";
16    return fetch(imageURL, options);
17  },
18};

Worker 方式正是驱动我自己工具的方式,因为它能重写一个站点的最终 HTML 输出,包括由主题、插件甚至内联 CSS 注入的图片,而仅靠 URL 的方式自身无法触及这些。如果你想更广泛地学习 Workers,官方 Workers 文档 是一个绝佳的起点。

从 R2 或远程源转换图片

你并不局限于同一区域上的图片。转换可以从远程源站拉取,这使它们成为 Cloudflare R2 对象存储的完美搭档。将你的原图保存在 R2 存储桶中,在分发时转换它们,并且无需为出口付费,因为 R2 不收取出口费用。我在 在 Cloudflare R2 上托管图片 的指南中详细讲解了这一具体模式。

转换不在你自己区域上的图片时,记得在你的转换设置中允许该源域名,否则 Cloudflare 会拒绝获取它们。

Cloudflare Image Transformations 定价

这里的经济性很友好,尤其对中小型站点而言。根据 2026 年的官方 Images 定价

层级费用
每月前 5,000 次唯一转换免费
超过 5,000 次1,000 次唯一转换 0.50 美元
出口带宽0 美元(免费)

“唯一转换”是指在一个月内应用于一张原图的一种独特的选项组合。将某张照片的同一 width=800,format=auto 版本请求一千次,仍只算作一次唯一转换,因为其余 999 次由缓存提供。这就是为什么即使在繁忙的站点上,真实的转换次数也保持很低:你拥有的独特图片与尺寸组合,远少于你的页面浏览量。

值得重申的重大变化:转换以前位于付费的 Pro 套餐之后。现在它们在免费套餐中也可用,直至那每月 5,000 次的额度。对于一个小博客或作品集,即时图片优化如今实际上是免费的。

在 WordPress 和 PrestaShop 上自动化

手动构造转换 URL 对于少量图片还行,但真实的站点有数百张,而且它们是动态生成的。那是难点所在,也正是我的免费工具所解决的。

要获得完整的、可复制粘贴的演练,请阅读 面向 WordPress 的 Cloudflare Image Resizing面向 PrestaShop 的 Cloudflare Image Resizing 。在插件和 Worker 之间,你站点上的每一张图片最终都会被优化,而你无需触碰任何一个模板。

如果你更愿意直接通过 Cloudflare Images 产品存储和管理你的图片库,Easy Cloudflare Images 是我在 Windows、macOS 和 Linux 上用于上传和优化图片的免费桌面应用。

一个快速的前后对比测试

判断任何优化的诚实方式就是去测量它。

  1. 选一个图片密集的页面,将它放到 PageSpeed Insights 上跑一遍。记下 Largest Contentful Paint 和图片总重量。
  2. 启用转换,并对该页面的图片应用 widthformat=auto(通过 URL 方法、Worker 或我的插件)。
  3. 重新运行测试。你应该会看到图片载荷急剧下降、LCP 改善,往往把一个不及格的分数移入绿色。

那种可测量的改善,正是往往能在用户体验和搜索排名两方面起作用的东西。

要点总结

  • Cloudflare Image Transformations 从单张原图按需生成经过优化、尺寸正确的图片
  • URL 方法(/cdn-cgi/image/...)是最快的起步;Worker 给你完整的编程控制
  • format=auto 替你处理 AVIF/WebP 协商,并为较旧的浏览器提供安全的回退
  • 每月前 5,000 次唯一转换免费,之后每 1,0000.50 美元,且没有出口费用
  • 转换现在在免费套餐上即可运行,无需 Pro 订阅
  • 将转换与 R2 搭配,打造一个零出口的媒体库,并用我的插件和 Worker 将一切自动化

常见问题

Cloudflare Images 与 Image Transformations 有什么区别? Cloudflare Images 是更宽泛的产品,负责存储、优化和分发图片。Image Transformations 是其中的调整尺寸与优化能力。你可以对存储在 Cloudflare Images、R2 或你自己源站上的图片使用转换,而不一定要将它们存入 Images 产品。

使用图片转换需要付费套餐吗? 不需要,已经不再如此。转换在免费套餐中每月最多 5,000 次唯一转换可用。超过之后,你每 1,000 次支付 0.50 美元,并且没有出口费用。

format=auto 有什么作用? 它告诉 Cloudflare 检查浏览器的 Accept 头,并提供其支持的最高效格式,通常是 AVIF 或 WebP,并为不支持现代格式的浏览器回退到原始格式(如 JPEG 或 PNG)。

我可以转换不托管在 Cloudflare 上的图片吗? 可以。只要你在转换设置中允许该源,转换就可以从远程源站获取,包括一个 Cloudflare R2 存储桶或一个外部服务器。

计费上什么算作一次唯一转换? 在一个计费月内应用于一张原图的一种独特的选项组合。对同一已转换版本的重复请求由缓存提供,并只计一次,这使真实成本保持很低。

如何在整个 WordPress 或 PrestaShop 站点上应用这一点? 使用我的免费 WordPress 插件进行快速的自动化设置,或部署我的 Cloudflare Worker 以实现完整覆盖,重写每一个图片链接,包括 CSS 中的那些。两者都在我的分步平台指南中有文档记录。