iPhone 使用 cloudinary 时图像旋转 90 度
iPhone images rotate 90 degrees when using cloudinary
我的博客网站使用 Cloudinary(使用 node js 构建)。
我的问题是,当我从 iPhone 上传图片时,它会旋转 90 度。我已经尝试过 angle: "ignore"
但这似乎不起作用。我认为这与exif信息有关。我该如何摆脱它或者我是否使用了错误的 cloudinary 参数?
(当我在 url 中包含 a_ignore 时也不起作用)
上传代码如下:
let result = await cloudinary.uploader.upload(req.file.path, {resource_type: type, angle:"ignore"});
我首先建议从上传调用参数中删除 angle: "ignore"
,然后尝试再次上传,然后您可能会遇到以下情况之一:
- 原件可能没有任何嵌入的旋转元数据,因此无法知道什么是正确的旋转。
- 原件可能有旋转元数据,交付 URL 是原件,默认情况下按原样发送原始图像,没有任何 Cloudinary 进程。到目前为止一切顺利,然而,在这一点上,由 client/device 负责解析元数据并通过旋转元数据正确呈现它,不幸的是,确实存在客户端 "ignoring" 的情况渲染图像时的旋转元数据。
- 图片是手动旋转的并且元数据没有被删除,这可能会导致额外的(不必要的)旋转。
检查完您认为自己可能处于哪种情况后,可以通过以下一些可能的方式解决问题:
- 对于案例 #1 - 如果您可以访问原始的未旋转和未删除元数据的图像版本,请尝试重新上传该图像。
- 对于案例 #2 - 交付时,不要使用原始图像的交付 URL,而是尝试使用它的派生版本(例如,将
q_auto
添加到 URL作为转换)。使用 Cloudinary 的任何转换都会在交付前自动优化图像,但对于这种情况很重要,它还会根据旋转元数据信息旋转图像(假设它有一个),最后但并非最不重要的一点是,将去除元数据,所以它会始终按预期的旋转显示图像。
- 对于案例 #3 - 通常可能的解决方法是确实添加
angle: "ignore"
,如前所述,建议将其作为交付转换([=39= 中的 a_ignore
]) 而不是作为上传参数的一部分。
如果你能在这里分享原图,我很乐意仔细查看并提供解决方案。如果隐私是个问题,请与 Cloudinary's support team 分享,他会很乐意提供帮助。
我的博客网站使用 Cloudinary(使用 node js 构建)。
我的问题是,当我从 iPhone 上传图片时,它会旋转 90 度。我已经尝试过 angle: "ignore"
但这似乎不起作用。我认为这与exif信息有关。我该如何摆脱它或者我是否使用了错误的 cloudinary 参数?
(当我在 url 中包含 a_ignore 时也不起作用)
上传代码如下:
let result = await cloudinary.uploader.upload(req.file.path, {resource_type: type, angle:"ignore"});
我首先建议从上传调用参数中删除 angle: "ignore"
,然后尝试再次上传,然后您可能会遇到以下情况之一:
- 原件可能没有任何嵌入的旋转元数据,因此无法知道什么是正确的旋转。
- 原件可能有旋转元数据,交付 URL 是原件,默认情况下按原样发送原始图像,没有任何 Cloudinary 进程。到目前为止一切顺利,然而,在这一点上,由 client/device 负责解析元数据并通过旋转元数据正确呈现它,不幸的是,确实存在客户端 "ignoring" 的情况渲染图像时的旋转元数据。
- 图片是手动旋转的并且元数据没有被删除,这可能会导致额外的(不必要的)旋转。
检查完您认为自己可能处于哪种情况后,可以通过以下一些可能的方式解决问题:
- 对于案例 #1 - 如果您可以访问原始的未旋转和未删除元数据的图像版本,请尝试重新上传该图像。
- 对于案例 #2 - 交付时,不要使用原始图像的交付 URL,而是尝试使用它的派生版本(例如,将
q_auto
添加到 URL作为转换)。使用 Cloudinary 的任何转换都会在交付前自动优化图像,但对于这种情况很重要,它还会根据旋转元数据信息旋转图像(假设它有一个),最后但并非最不重要的一点是,将去除元数据,所以它会始终按预期的旋转显示图像。 - 对于案例 #3 - 通常可能的解决方法是确实添加
angle: "ignore"
,如前所述,建议将其作为交付转换([=39= 中的a_ignore
]) 而不是作为上传参数的一部分。
如果你能在这里分享原图,我很乐意仔细查看并提供解决方案。如果隐私是个问题,请与 Cloudinary's support team 分享,他会很乐意提供帮助。