【问题标题】:iPhone images rotate 90 degrees when using cloudinary使用 cloudinary 时 iPhone 图像旋转 90 度
【发布时间】:2020-09-13 17:57:05
【问题描述】:

我将 Cloudinary 用于我的博客站点(使用节点 js 构建)。 我的问题是,当我从 iPhone 上传图像时,它会旋转 90 度。我已经尝试过angle: "ignore",但这似乎不起作用。我认为这与exif信息有关。我该如何摆脱它或者我使用了错误的云参数? (当我在 url 中包含 a_ignore 时也不起作用)

这里是上传代码:

let result = await cloudinary.uploader.upload(req.file.path, {resource_type: type, angle:"ignore"});

【问题讨论】:

    标签: node.js iphone image rotation cloudinary


    【解决方案1】:

    我先建议把angle: "ignore"从上传调用参数中去掉,再尝试上传,然后你可能会遇到以下情况之一:

    1. 原件可能没有任何嵌入的旋转元数据,因此无法知道什么是正确的旋转。
    2. 原件可能有旋转元数据,并且交付 URL 是原件的,默认情况下发送原始图像,没有任何 Cloudinary 进程。到目前为止一切都很好,然而,在这一点上,由客户端/设备负责解析元数据并通过旋转元数据正确呈现它,不幸的是,确实存在客户端“忽略”旋转元数据的情况渲染图像。
    3. 图像是手动旋转的,并且元数据没有被剥离,这可能会导致额外的(不必要的)旋转。

    在您检查了您认为自己可能处于哪种情况之后,以下是一些可能的解决方法:

    • 对于案例 #1 - 如果您可以访问图片的原始未旋转和未删除元数据的版本,请尝试再次上传该图片。
    • 对于案例 #2 - 在交付时,尝试使用原始图片的交付 URL,而不是使用它的派生版本(例如,将 q_auto 添加到 URL 作为转换)。使用 Cloudinary 的任何转换都会在交付前自动优化图像,但重要的是,对于这种情况,它还会通过旋转元数据信息(假设它有一个)旋转图像,最后但并非最不重要的一点是,将剥离元数据,所以它将始终按预期的旋转显示图像。
    • 对于案例 #3 - 通常可能的解决方法是添加 angle: "ignore",如前所述,建议将其作为传递转换(URL 中的 a_ignore),而不是作为上传参数的一部分.

    如果您可以在此处分享原始图片,我将很乐意仔细查看并提供解决方案。如果隐私是一个问题,请与Cloudinary's support team 分享,他们很乐意为您提供帮助。

    【讨论】:

    • 非常感谢!我只需要从上传参数中删除angle: "ignore"。现在它似乎工作了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    相关资源
    最近更新 更多