iPhone изображения поворачиваются на 90 градусов при использовании облачного режима - PullRequest
0 голосов
/ 26 мая 2020

Я использую Cloudinary для своего блога (созданного с помощью node js). Моя проблема в том, что когда я загружаю изображение из iPhone, оно поворачивается на 90 градусов. Я уже пробовал angle: "ignore", но это, похоже, не работает. Я думаю, это связано с информацией exif. Как мне от него избавиться или я использую неверные параметры облачности? (также не работает, когда я включаю a_ignore в URL)

Вот код загрузки:

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

1 Ответ

0 голосов
/ 27 мая 2020

Я начну с рекомендации удалить angle: "ignore" из параметров вызова загрузки, попробуйте загрузить еще раз, и тогда вы, вероятно, столкнетесь с одним из следующих случаев:

  1. В оригинале может не быть любые встроенные метаданные поворота, и поэтому невозможно узнать, какой поворот правильный.
  2. Оригинал может иметь метаданные поворота, а URL-адрес доставки был оригиналом, который по умолчанию отправляет исходное изображение как есть, без каких-либо облачных процессов. Пока все хорошо, однако на этом этапе ответственность за анализ метаданных и правильную их рендеринг с помощью метаданных ротации лежит на клиенте / устройстве, и, к сожалению, действительно есть случаи, когда клиенты "игнорируют" метаданные ротации, когда рендеринг изображений.
  3. Изображение было повернуто вручную И метаданные не были удалены, что может привести к дополнительному (ненужному) повороту.

После проверки, в каком случае вы думаете вы можете быть включены, вот несколько возможных способов исправить:

  • Для случая № 1 - Если у вас есть доступ к исходной версии изображения без ротации и без метаданных, попробуйте загрузить вместо этого снова.
  • Для случая № 2 - При доставке, вместо использования исходного URL-адреса доставки изображения, попробуйте использовать его производную версию (например, добавьте q_auto к URL-адресу в качестве преобразования) . Использование любого из преобразований Cloudinary автоматически оптимизирует изображение перед доставкой, но, что важно в этом случае, оно также будет вращать изображение с помощью информации о метаданных вращения (при условии, что она есть) и, наконец, что не менее важно, удаляет метаданные, поэтому он всегда будет показывать изображение с предполагаемым поворотом.
  • Для случая № 3 - Обычно возможное исправление для этого - действительно добавить angle: "ignore", что, как упоминалось ранее, рекомендуется как преобразование доставки ( a_ignore в URL-адресе), а не как часть параметров загрузки.

Если вы могли бы поделиться здесь исходным изображением, я буду счастлив более внимательно изучить и предложить решения. Если конфиденциальность является проблемой, сообщите об этом службе поддержки Cloudinary , и они будут рады помочь.

...