Почему изображения в некоторых приложениях камеры на Nexus 5X перевернуты

Некоторые приложения камеры на Nexus 5X отображаются перевернутыми, и это связано с редким производственным решением. Вот как это происходит и как это можно исправить.

Новые пользователи Google Nexus 5X, возможно, заметили странную проблему, возникающую, когда они делают снимок с помощью сторонних приложений камеры — изображение в конечном итоге оказывается с ног на голову!

Однако эта проблема не характерна только для Nexus 5X, как это случалось ранее. на фронтальной камере Nexus 6. Что вызывает эту проблему? Это проблема производителя или проблема программного обеспечения? Оказывается, это и то, и другое.

В соответствии с Эйно-Вилле Талвала, технический руководитель разработки платформы Android для камер, проблема возникает из-за того, что некоторые производители установите датчик камеры для своих устройств в необычной ориентации. Для того, чтобы соблюсти Требования совместимости с Android, производители должны совместить длинный край датчика камеры с длинным краем устройства (это означает, что по умолчанию датчик задней камеры должен быть ориентирован таким образом, чтобы изображения были альбомными). Однако нет никаких требований относительно того, в каком конкретном направлении ландшафта должен быть установлен датчик. Обычно большинство производителей используют датчик с горизонтальной ориентацией вперед, но LG/Google решили использовать обратную альбомную ориентацию. На большинстве мобильных телефонов пространство имеет большое значение, поэтому производителям часто приходится обходиться теми ограничениями, которые им накладываются. Nexus 5X не является исключением: беглый взгляд на разборку показывает, что в устройстве осталось мало места для материнской платы из-за огромного размера аккумулятора.

Поскольку такая обратная альбомная ориентация встречается редко, многие сторонние разработчики приложений не корректируют эту ориентацию при обработке изображения. Используя старый API камеры, разработчики могут решить эту проблему с ориентацией камеры, вызвав метод setDisplayOrientation() метод, позволяющий проверить правильность ориентации сенсора пользовательского интерфейса и правильно повернуть изображение. Однако с появлением API Camera2 в этом больше нет необходимости, поскольку API обеспечивает правильную ориентацию предварительного просмотра. Тем не менее, если вы заметили, что одно из ваших любимых приложений неправильно ориентирует ваши изображения, отправьте им электронное письмо с просьбой обновить свой код, чтобы исправить эту странность.

Вы уже сталкивались с этой проблемой? Дайте нам знать в комментариях ниже (и особенно сообщите разработчикам!)