【问题标题】:Cloudinary API transformation issuesCloudinary API 转换问题
【发布时间】:2019-10-16 23:44:58
【问题描述】:

我正在使用 Cloudinary 作为我的应用的图像存储,但我在转换图像时遇到了问题。

我想要实现的是:

  • 如果图像宽度大于 1920px(将其视为横向图像):宽度应裁剪为 1920px(保持比例);
  • 如果图像的高度大于 1920px(将其视为肖像图像):高度应裁剪为 1920px(保持比例);
  • 格式始终为jpg
  • 质量降低到 80 以减少图像重量。

我目前的集成是:

const transformation = {
  width: 1920, max_height: 1920, format: 'jpg', quality: 80
};

但不幸的是,这个输出是一个正方形的图像......

我正在尝试使用if,但我不明白应该如何使用......看起来写文档总是最难的事情......

我希望你能帮助我找到正确的方法。我使用的是 SDK,所以都是纯 JavaScript。

【问题讨论】:

    标签: javascript cloudinary


    【解决方案1】:

    创建转换时 SDK 中没有 max_height 参数,但您可以通过将 widthheight 设置为您希望允许的最大值来实现您想要的。

    如果您得到的是方形输出,那是因为默认的 crop/resize modescale,它会产生与请求尺寸完全相同的输出,但可能会导致图像被“压扁”或“拉伸”。

    我认为你在这里寻找的是这样的:

    const transformation = {
      width: 1920, height: 1920, format: 'jpg', quality: 'auto', crop: 'limit'
    };
    

    这会给你一个这样的 URL: https://res.cloudinary.com/demo/image/upload/w_1920,h_1920,f_jpg,q_auto,c_limit/bike.jpg

    “限制”裁剪模式会将图像缩小(而不是放大)直到小于 1920x1920,并保持原始纵横比

    【讨论】:

    • 这种方法很好,是的!现在的问题是修改不使用 npm 的提供程序...这是一个永无止境的故事...谢谢
    猜你喜欢
    • 2019-07-11
    • 2022-01-14
    • 2013-05-19
    • 2021-12-30
    • 1970-01-01
    • 2014-10-21
    • 2020-02-09
    • 1970-01-01
    • 2013-07-05
    相关资源
    最近更新 更多