首页 > 解决方案 > 您可以在 Cloudinary 上编辑用户上传图像的质量吗?

问题描述

我有一个用户上传图片的网站。

我希望所有已上传的图像 + 任何新上传的图像的质量都相同。

有没有一种方法可以轻松编辑已经上传的图像,而无需让用户重新上传各自的图像?

谢谢

标签: node.jsexpresscloudinary

解决方案


Cloudinary 的美妙之处在于能够上传原件,然后进行转换。通常,建议看起来是:

  1. quality参数设置为auto(网址中的q_auto)以自动调整图像的质量,以在质量和大小之间取得适当的平衡
  2. fetch_format参数设置为auto( URL 中的f_auto)以根据浏览器自动选择最佳格式。
  3. 将高度和宽度调整为页面上呈现的必要尺寸。

示例:https ://res.cloudinary.com/demo/image/upload/q_auto,f_auto,w_500/bike.jpg

来源(和更多信息)https ://cloudinary.com/documentation/image_optimization )。

但是如果您需要重新上传内容并保持不变public_id,最简单的解决方案是使用他们的 API。我建议执行以下操作:

  1. 使用Admin API 获取资源调用检索需要重新上传的资产。我建议将这些分解,resource_type并且我还将包括tags设置为truecontext设置为true好像正在使用的参数。注意Admin API 有速率限制,因此请在此处查看与您的计划相关的使用限制。将这些存储在一个数组中以备后用。响应应包括public_id, url, tags, context, 等...
  2. 遍历前一个数组并使用Upload API 的上传方法public_id使用之前检索到的相同参数( 、urltagscontext等)重新上传内容。例如

    current_assets = [...]
    for (asset in current_assets) {
        result = cloudinary.v2.uploader.upload(
            asset['url'], 
            { public_id: asset['public_id'], tags: asset['tags'], context: assets['context']
            // include any incoming transformations to apply to the asset during upload
            },
            (err, res) => {
                if (err) console.log(err);
            console.log(res);
        })
    }
    

来源https ://cloudinary.com/documentation/upload_images?query=incoming&c_query=Incoming%20transformations#incoming_transformations


推荐阅读