使用 Cloudflare Worker获取图片元数据

使用 Cloudflare Worker获取图片元数据

💡 原文中文,约2800字,阅读约需7分钟。
📝

内容提要

在 Cloudflare Workers 上使用 sharp 处理图片有难度,但可以用 @cf-wasm/photon 库获取图片信息。通过 fetch 获取图片并转换为 Uint8Array,使用 PhotonImage 获取宽高和色彩空间等信息。建议在计算 blurhash 前调整图片大小,并通过 magic header 判断图片格式。部署时需安装相关库。Azure Function 使用 sharp 更简单,但需注意运行环境。由于 Workers 限制,代码库需分开。

🎯

关键要点

  • 在 Cloudflare Workers 上处理图片较为复杂,建议使用 @cf-wasm/photon 库获取图片信息。
  • 通过 fetch 获取图片并转换为 Uint8Array,使用 PhotonImage 获取宽高和色彩空间等信息。
  • 计算 blurhash 前建议先调整图片大小,以避免 Workers 的执行时间限制。
  • 使用 magic header 判断图片格式,提供了相应的代码示例。
  • 部署时需安装相关库,包括 @cf-wasm/photon 和 blurhash。
  • Azure Function 使用 sharp 更简单,但需注意运行环境的选择。
  • 由于 Workers 的限制,代码库需分开,无法兼容 Azure Function。

延伸问答

如何在 Cloudflare Workers 中获取图片的元数据?

可以使用 @cf-wasm/photon 库,通过 fetch 获取图片并转换为 Uint8Array,然后使用 PhotonImage 获取宽高和色彩空间等信息。

在计算 blurhash 前需要注意什么?

建议在计算 blurhash 前先调整图片大小,以避免 Workers 的执行时间限制。

如何判断图片的格式?

可以通过 magic header 来判断图片格式,使用特定的字节检查来识别不同格式。

在 Cloudflare Workers 中使用 sharp 有什么困难?

由于 Cloudflare Workers 仅支持基本的 NodeJS API,使用 sharp 变得几乎不可能,因为需要调用 libvips。

部署 Cloudflare Workers 时需要安装哪些库?

需要安装 @cf-wasm/photon 和 blurhash 库,并使用 wrangler 进行部署。

Azure Function 和 Cloudflare Workers 的处理图片方式有什么不同?

Azure Function 可以直接使用 sharp 处理图片,而 Cloudflare Workers 由于环境限制,使用 @cf-wasm/photon 库更为复杂。

➡️

继续阅读