💡
原文中文,约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 库更为复杂。
➡️