如何从Strapi上传API向Cloudinary传递裁剪与缩放参数?
在Strapi的Cloudinary上传配置中添加图片裁剪/缩放参数
你可以通过在actionOptions的upload和uploadStream配置项中添加transformation参数,直接传入Cloudinary的裁剪/缩放规则,实现上传时自动处理图片。
修改后的完整配置代码
module.exports = ({ env }) => ({ upload: { config: { provider: 'cloudinary', providerOptions: { cloud_name: env('CLOUDINARY_NAME'), api_key: env('CLOUDINARY_KEY'), api_secret: env('CLOUDINARY_SECRET'), }, actionOptions: { upload: { // 上传时的图片处理规则 transformation: [ { width: 800, height: 600, crop: 'fit', quality: 'auto' }, // 可添加多组变换规则,按顺序执行 ] }, uploadStream: { folder: env("CLOUDINARY_FOLDER"), // 流式上传的图片处理规则,和upload配置一致即可 transformation: [ { width: 800, height: 600, crop: 'fit', quality: 'auto' }, ] }, delete: {}, }, }, }, });
常用裁剪/缩放参数说明
- crop:裁剪模式,常用值:
fit:按比例缩放图片,使其完全适配指定尺寸,不会裁剪fill:按比例缩放图片,填充指定尺寸,超出部分裁剪pad:按比例缩放图片,不足部分用背景色填充scale:强制缩放到指定尺寸,不保持比例
- width/height:目标尺寸,单位为像素
- gravity:裁剪重心,比如
face(人脸识别裁剪)、center(居中裁剪) - quality:图片质量,可设为
auto(自动优化)或具体数值(1-100)
示例场景
- 生成300x300的正方形头像(人脸识别裁剪):
transformation: [{ width: 300, height: 300, crop: 'fill', gravity: 'face' }]
- 生成最大宽度800px的自适应缩放图(保持比例):
transformation: [{ width: 800, crop: 'limit' }]
所有参数对应Cloudinary的图片变换规则,你可以根据需求组合调整。
内容的提问来源于stack exchange,提问作者cts
相关产品推荐
相关产品推荐

