- Почему смартфон переворачивает селфи и как это исправить
- Почему смартфон поворачивает фото?
- Как заставить смартфон отображать фото правильно?
- Как перевернуть фотографию на Android?
- Работа с камерой в Android
- Как правильно настроить ориентацию камеры Android?
- Как перевернуть камеру во время записи видео на Android, iPhone
- Проблема
- Создавайте видео с помощью социальных приложений
- Метод 1: использование Instagram
- Метод 2: Использование Snapchat
- Сшить или объединить видео
- Присоединяйтесь к видео на Android
- Присоединяйтесь к видео на iPhone
Почему смартфон переворачивает селфи и как это исправить
В большинстве случаев, когда мы делаем селфи, мы даже не задумываемся о том, каким оно получается на самом деле. Мы имеем в виду не то, что пользователям не важно, как они выглядят, а то, что, как правило, фотографии, сделанные на фронтальную камеру, оказываются отраженными по вертикали и этому не придается особого значения. И это не так уж и важно, если на фото не присутствуют надписи. Ну а с другой стороны, немного странно получать зеркально отображенные фотографии. Да и избавиться от этого довольно легко. Так что давайте приступать.
Почему смартфон поворачивает фото?
Когда вы делаете селфи, изображение, которое вы видите на экране отображается также, как если бы вы смотрелись в зеркало. И для вас это нормально. Если вы поднимите правую руку, то на экране она тоже будет находиться справа. Однако если на вас будет смотреть человек, то с его точки зрения поднятая рука находится слева. Иными словами, «ваша правая сторона для него левая». Равно, как и наоборот. Поэтому, когда вам кажется, что ваш телефон перевернул изображение, на самом деле, он показывал вам фото так, словно вы смотритесь в зеркало. Именно эффект «отзеркаливания» вам и нужно отключить в настройках вашего смартфона.
Как заставить смартфон отображать фото правильно?
Многие телефоны под управлением Android предлагают эту функцию. Для этого откройте приложение камеры и нажмите на значок в виде шестеренок. Пролистав это меню, вы в зависимости от модели вашего смартфона найдете пункт, регулирующий настройки отображения и сохранения фотографий. После того, как вы обнаружили нужную опцию, включите ее, но имейте в виду, что селфи-камера по-прежнему будет отображать изображение для предварительного просмотра так, как-будто оно отзеркалено. При этом итоговые снимки уже будут получаться нормальными.
Как перевернуть фотографию на Android?
С тем, как заставить нормально работать камеру вашего смартфона мы разобрались. Но что делать с уже имеющимися у вас снимками, которые оказались перевернуты? Для этого не нужно «загонять» их в фотошоп. Скачайте бесплатное приложение Snapseed, а затем, запустив приложение и дав ему доступ к галерее снимков, откройте нужную вам фотографию.
Теперь выбирайте опцию «Перевернуть» («Rotate») и начинайте редактированиe. На вкладке «Tools» в нижней части дисплея вы увидите значок, выполненный в виде двух стрелок, указывающих друг на друга с пунктирной вертикальной линией между ними. Нажмите на него, и вы получите отраженное по вертикали изображение. Такой же трюк можно проделать и в том случае, если вам нужно отразить фото по горизонтали. После этого нажмите на значок в виде галочки в правом нижнем углу экрана, чтобы сохранить изменения.
Еще больше интересных материалов вы можете прочитать в нашем новостном Телеграм-канале.
Источник
Работа с камерой в Android
Работа с камерой на телефоне всегда представляла для меня интерес. Как же это все устроено… И вот мне в руки попал телефон с Android’ом. Я не преминул возможностью попробовать разобраться в этом. Вот что получилось в итоге.
Рассмотрим небольшую программу, которая позволяет делать снимки.
Все операции проводятся с помощью класса Camera.
Необходимо завести переменную
и инициализировать ее
После завершения работы с камерой необходимо сделать
в противном случае камера останется заблокированной и недоступной для других приложений.
Для обычных приложений типа фотокамеры инициализацию лучше всего производить в onResume, а освобождение в onPause.
Обязательным условием при работе с камерой является создание окна предпросмотра (preview). Это окно должно являться объектом класса Surfaceи для отображения на экране подходит SurfaceView.
Объявим
Чтобы задать preview, необходимо вызвать метод setPreviewDisplay, параметром которого является объект класса SurfaceHolder.
Чтобы включить отображение preview, вызываем
Если этого не сделать, то камера не сможет делать снимки.
Собственно для того, чтобы сделать снимок, необходимо вызвать метод
С помощью параметров (кстати, любой из них может быть null) задаются обработчики разных событий:
- shutter — вызывается в момент получения изображения с матрицы
- raw — программе передаются для обработки raw данные (если поддерживается аппаратно)
- postview — программе передаются полностью обработанные данные (если поддерживается аппаратно)
- jpg — программе передается изображение в виде jpg. Здесь можно организовать запись изображения на карту памяти.
Вызов takePicture можно поместить непосредственно в обработчик onClick кнопки — в этом случае фотографирование произойдет сразу после нажатия на нее, но можно и воспользоваться предварительной автофокусировкой.
В этом случае задается обработчик Camera.AutoFocusCallback, в котором необходимо реализовать метод
Тогда после вызова в обработчике нажатия на кнопку camera.autoFocus(), однократно будет вызван обработчик, в котором мы уже и примем решение об удачной фокусировке и необходимости сделать снимок.
Для работы с SurfaceHolder можно задать SurfaceHolder.Callback
surfaceHolder.addCallback();
В этом случае необходимо реализовать методы
C помощью них приложению будет сообщаться о том, что Surface успешно создано, если оно изменено или то, что оно удалено.
Размер нашего preview можно менять в процессе выполнения программы:
Для приложения камеры удобнее всего сразу задать расположение экрана как
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
В противном случае нам придется, например, в surfaceCreated проверять расположение экрана и поворачивать preview с помощью, например, camera.setDisplayOrientation(0) .
Это не очень удобно, потому что поворот экрана занимает какое-то время. В этот момент происходит вызов onPause и onResume, пересоздается Surface.
Также имеется возможность объявить обработчик Camera.PreviewCallback, с помощью которого путем реализации метода
можно получать и обрабатывать каждый кадр, отображаемый в preview.
И последний важный момент. Чаще всего получается так, что отношение сторон SurfaceView отличается от отношения сторон в preview камеры. Поэтому для того, чтобы избежать искажений изображения на экране, необходимо подкорректировать размер отображаемого окна предпросмотра.
Чуть не забыл. В манифест необходимо добавить permission
MainScreen.java
main.xml
AndroidManifest.xml
Программа отлаживалась и тестировалась на телефоне LG Optimus One P500.
При написании использовались следующие источники информации:
Источник
Как правильно настроить ориентацию камеры Android?
Я хочу установить ориентацию камеры в соответствии с ориентацией устройства в Android, но ничего не работает. Я попытался повернуть поверхность, а также параметры камеры, но предварительный просмотр камеры в портретном режиме всегда перевернут. Мне нужно было повернуть его на 90 градусов по часовой стрелке, чтобы он был правильным. Вот код, который я использую прямо сейчас, который работает только в ландшафтном режиме.
От другого участника и моей проблемы:
Проблема вращения камеры зависит от разных устройств и определенной версии.
Версия 1.6: исправление проблемы с вращением, и это хорошо для большинства устройств
Версия 2.1: зависит от типа устройств, например, Cannt исправить проблему с XPeria X10, но это хорошо для X8 и Mini
Версия 2.2: не для всех устройств
Из Javadocs для setDisplayOrientation(int) (требуется уровень API 9):
Это решение будет работать для всех версий Android. Вы можете использовать отражение на Java, чтобы он работал на всех устройствах Android:
В принципе, вы должны создать оболочку отражения для вызова Android 2.2 setDisplayOrientation вместо вызова определенного метода.
И вместо использования camera.setDisplayOrientation (x) используйте setDisplayOrientation (camera, x) :
Я столкнулся с проблемой, когда я использовал ZBar для сканирования в вкладках. Проблема ориентации камеры. Используя нижеприведенный код, я смог решить проблему. Это не весь фрагмент кода, пожалуйста, воспользуйтесь только этой помощью.
Я, наконец, исправил это с помощью приложения камеры Google. Он получает ориентацию телефона с помощью датчика, а затем соответствующим образом устанавливает тег EXIF. JPEG, который выходит из камеры, не ориентирован автоматически.
Кроме того, предварительный просмотр камеры работает правильно только в ландшафтном режиме. Если вам нужно, чтобы ваш макет деятельности ориентировался на портрет, вам придется делать это вручную, используя значение из датчика ориентации.
Эта проблема была решена давно, но я столкнулся с некоторыми трудностями, чтобы собрать все части, поэтому вот мое окончательное решение, я надеюсь, что это поможет другим:
Источник
Как перевернуть камеру во время записи видео на Android, iPhone
Прошли те времена, когда запись видео была главной задачей. Забудьте о видео, даже снимать изображения было непросто. Благодаря постоянно развивающимся технологиям мы теперь можем с легкостью снимать профессиональные фото и видео, причем прямо с наших телефонов.
Однако есть одна область, в которой мы все еще не смогли продвинуться вперед. Я говорю о возможности использовать обе камеры, переднюю и заднюю, для записи видео одновременно. Фактически, во время записи нельзя даже перевернуть камеру.
Многие телефоны позволяют снимать двойные изображения, когда изображения снимаются с передней и задней камеры одновременно. Однако вы не можете переключать камеры во время записи видео как на Android, так и на iPhone.
Проблема
Обычно, когда человек начинает записывать видео, нет возможности перевернуть камеру. пока вы все еще записываете. Так что, если вам нужна такая функция, приложения для социальных сетей, такие как Instagram и Snapchat, могут прийти вам на помощь.
Однако, поскольку эти приложения ограничены захватом всего 15-20 секунд видео за один раз, вам придется снимать несколько видео.
Уловка состоит из двух основных этапов: создание нескольких видео с помощью приложений для социальных сетей и последующее объединение их вместе с помощью приложений для объединения видео.
В этом посте мы дали подробные инструкции по созданию таких видео.
Создавайте видео с помощью социальных приложений
Поскольку собственное приложение камеры не поддерживает переворот, вы можете использовать такие приложения, как Instagram или Snapchat, чтобы перевернуть камеру во время записи.
Метод 1: использование Instagram
Шаг 1: Откройте приложение Instagram на своем устройстве Android или iPhone. Коснитесь значка камеры в верхнем левом углу, чтобы перейти на экран истории.
Шаг 2: Если вы пользователь iPhone, удерживайте значок камеры в обычном режиме и начните запись видео. Чтобы перевернуть камеру, дважды нажмите в любом месте экрана другой рукой, удерживая значок камеры.
На устройствах Android поворот камеры в обычном режиме не работает. Для записи видео необходимо использовать режим громкой связи. Доступ к режиму громкой связи можно получить, проведя влево по режимам камеры, присутствующим внизу.
Когда запись включена, дважды коснитесь экрана в любом месте, чтобы переключить камеру. Вы также можете использовать режим громкой связи для поворота камеры на iPhone.
Шаг 3: После того, как вы записали видео, нажмите кнопку «Сохранить» в нижнем левом углу, чтобы сохранить видео на свое устройство.
Шаг 4: Поскольку Instagram поддерживает только 15-секундное видео в Stories, вам придется снимать несколько видеороликов, если вы хотите более длинное видео. Я знаю я знаю. Это слишком много. Но что-то лучше, чем ничего.
Когда у вас есть все видео, вам нужно объединить их вместе. Способ сделать это дается после метода Snapchat.
Метод 2: Использование Snapchat
Как и в Instagram, вы также можете использовать Snapchat для поворота камеры во время записи. Шаги одинаковы для iPhone и Android.
Шаг 1: Откройте приложение Snapchat и удерживайте значок камеры, чтобы начать запись видео.
Шаг 2: Во время записи дважды коснитесь экрана в любом месте, чтобы перевернуть камеру (опять же, другой рукой).
Шаг 3: Когда вы записали видео, нажмите кнопку «Сохранить», чтобы загрузить видео на свой телефон. Опять же, вам нужно снимать несколько видео, если вы хотите более длинное видео.
Сшить или объединить видео
Как только вы отсняли все видео, самое время сесть и сшить их вместе.
Присоединяйтесь к видео на Android
Если вы хотите сначала вырезать видео, вы можете проверить эти приложения для обрезки видео на Android. Затем, чтобы сшить видео, вам необходимо загрузить стороннее приложение для редактирования видео, которое поддерживает слияние.
Вот несколько приложений, которые позволят вам объединять видео:
После загрузки приложения коснитесь параметра «Присоединиться / объединить» и выберите видео, которые хотите объединить. Вы также можете использовать встроенный видеоредактор вашего телефона, если он поддерживает сшивание видео.
Присоединяйтесь к видео на iPhone
На iPhone также необходимо загрузить приложение для объединения видео, чтобы объединять видео. Вот два приложения, которые вы можете использовать на iPhone для сшивания видео:
После присоединения ко всем маленьким видеороликам вы, наконец, получите свое полное видео во всей красе. Затем вы можете поделиться видео в социальных сетях или в чатах.
Последнее обновление 5 июл, 2019
Вышеупомянутая статья может содержать партнерские ссылки, которые помогают поддерживать Guiding Tech. Однако это не влияет на нашу редакционную честность. Содержание остается объективным и достоверным.
Источник