Началось все с того, что около двух месяцев назад я обнаружил странное поведение фронтальной камеры в WhatsApp. Пишу только сейчас не потому, что я так долго готовил пост, а потому, что все это время я переписывался с техподдержкой мессенджера. Ну и до кучи — сам стал сомневаться: баг я нашел или фичу.
Отправляя селфи с помощью WhatsApp, я обнаружил свою серьгу не в левом, а в правом ухе. Получатель фото подтвердил этот факт. Но при этом в папке /WhatsApp Images фотка лежала нормальная, не отзеркаленная. Дальше я стал экспериментировать с Telegram. Он вел себя так же (зеркалил и отправлял фотку с фронтальной камеры), но хотя бы честно сохранял ее в /Telegram в том же виде, в каком и отправил. Для лучшего понимания я свел результаты изысканий в список, а чуть ниже дам скриншоты.
Итак, по состоянию на сегодняшний день при отправке фото с фронтальной камеры...
WhatsApp: зеркалит картинку, в таком виде отправляет ее получателю и отображает в диалоге. Само фото хранится в папке программы в неизмененном виде.
Telegram: зеркалит картинку, в таком виде отправляет ее получателю, отображает в диалоге и хранит в папке программы.
Отдельно порадовала переписка с поддержкой WhatsApp. Цитировать полностью не буду, передам своими словами.
Сначала мне было отказано в создании тикета по причине наличии на устройстве Root (в терминах саппорта «Похоже, что вы используете прошитый телефон. Мы сожалеем, но мы не поддерживаем прошитые устройства...»). ОК, я нашел смартфон со стоковой прошивкой, повторил все действия на нем и отправил сообщение в поддержку.
После этого мне три раза приходило письмо с просьбой отправить отладочную информацию (все три раза я это прилежно делал), а в конце пришло феерическое: «Мы понимаем, что могло возникнуть недоразумение, но это на самом деле функция приложения и его особенностей.»
Теперь я и сам в непонятках, что это было. Поэтому прошу помощи зала (см. опрос)…
P.S. В принципе, я могу предположить, откуда растут ноги. Смартфон и фронтальную камеру часто используют как карманное зеркальце (особенно дамы). В этом случае изображение действительно надо зеркалить. Но вот зачем мессенджеры отправляют снимок с фронтальной камеры в отзеркаленном виде — это я не понимаю. Ведь в этом случае получатель увидит не реальную картинку, которую я ему хотел показать, а ее зеркальный вариант…
UPD: Я, кажется, понял, почему из поддержки написали: «это не бага, а фича». Чтобы мне вознаграждение за найденную ошибку не платить :):):).
Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Комментарии (70)
NZX
27.03.2017 10:41Попробовал передать фото с LG G2 (7.1.1 root) на LG Nexus 5x (stock). Фото передается в неизменном виде. Кажется, проблемы на Вашей стороне.
Markscheider
27.03.2017 10:42Кажется, проблемы на Вашей стороне.
Версию Вазапа на аппарате, с которого отправляете, озвучьте, плз.
Я пробовал отправлять с Doogee X5 (root) и LG G4S (stock). Результат одинаков и озвучен в статье.NZX
27.03.2017 10:452.17.107
Markscheider
27.03.2017 10:55Обновился, на Doogee результат тот же, вечером попробую на LG.
Скажите, а на ваших аппаратах при отправке селфи в Телеграме картина такая же, как и у меня описана?
UPD — поправил голосование, добавил ваш случай :)NZX
27.03.2017 11:04Нет, передает в неизменном виде. Версия telegram на обоих устройствах: 3.17.1
NZX
27.03.2017 11:13+2UPD: Сейчас попробовал еще раз с whatsapp. При фотографировании фото сохраняет в нормальном виде, а отправляет его в зеркальном. С telegram все нормально: сохраняет и отправляет в нормальном виде.
sashabeep
27.03.2017 11:22+2Какие-то странные у вас выводы.
Есть 3 разных варианта при съемке:
- Cистемная камера сама зеркалит фото, если оно сделано с передней камеры
- Не зеркалит фото, но пишет EXIF тэг, что фото отзеркалено
- Не зеркалит и не пишет дополнительные данные
Изучив то, что пишется в exif-data можно примерно понять, что происходит. Иногда программа сама или системный диалог выбора (или даже системный компонент для вывода картинки в экран) еще раз зеркалит изображение при выборе, таким образом цепочка глюков удлиняется. Если сервер не вырезает эти данные — может быть еще один лишний шаг :)Markscheider
27.03.2017 11:33Насчет того, что путаницу может вносить системная камера — не подумал, спасибо.
Попробовал сейчас фоткнуть на системную камеру (фронтальную). При съемке селфи на дисплее видно отзеркаленное изображение, но сохраняется оно нормально.
EXIF пока посмотреть нечем, работаю над этим вопросом.Markscheider
27.03.2017 11:42UPD: Вот EXIF снимка, сделанного на штатное приложение «Камера» на фронтальную камеру только что.
Заголовок спойлераИмя файла
IMG_20170327_112621.jpg
Системный ID
content://com.android.providers.media.documents/document/image%3A33999
Путь
/storage/emulated/0/DCIM/Camera/IMG_20170327_112621.jpg
Формат
image/jpeg
Размер
971,8 KB (995 121 bytes)
Время редактирования файла
Разрешение
1920 x 2560 — 4,9 MP
GPS
Плотность
ICC профиль
EXIF
*** Меняется в JPEG в окне Сохранения ***
[ROOT]
ImageDescription:,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Make: DOOGEE,,,,,,,,,,,,,,,,,,,,,,,,,
Model: X5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
Orientation: 1
XResolution: 72
YResolution: 72
ResolutionUnit: 2
Software: MediaTek Camera Application
,,,
DateTime: '2017:03:27 11:26:21'
YCbCrPositioning: 2
Unknown Tag (0x220): 0
Unknown Tag (0x221): 0
Unknown Tag (0x222): 0
Unknown Tag (0x223): 0
Unknown Tag (0x224): 0
Unknown Tag (0x225):,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
ExifOffset: 414
[EXIF]
ExposureTime: 100000/1000000 (0,1)
FNumber: 28/10 (2,8)
ExposureProgram: 0
PhotographicSensitivity: 213
ExifVersion: 48, 50, 50, 48
DateTimeOriginal: '2017:03:27 11:26:21'
DateTimeDigitized: '2017:03:27 11:26:21'
ComponentsConfiguration: 1, 2, 3, 0
ExposureCompensation: 0
MeteringMode: 2
LightSource: 255
Flash: 0
FocalLength: 350/100 (3,5)
SubSecTime: '84'
SubSecTimeOriginal: '84'
SubSecTimeDigitized: '84'
FlashpixVersion: 48, 49, 48, 48
ColorSpace: sRGB
ExifImageWidth: 1920
ExifImageLength: 2560
InteropOffset: 918
ExposureMode: 0
WhiteBalance: 0
DigitalZoomRatio: 1
SceneCaptureType: 0
[INTEROPERABILITY]
InteroperabilityIndex: 'R98'
InteroperabilityVersion: 48, 49, 48, 48
[SUB]
Compression: 6
Orientation: 1
XResolution: 72
YResolution: 72
ResolutionUnit: 2
JpgFromRawStart: 1268
JpgFromRawLength: 7449
YCbCrPositioning: 2
IPTC
XMP
Alexeyslav
27.03.2017 13:27тег Orientation надо смотреть. В обоих стоит 1.
что означает этот тег:
https://beradrian.wordpress.com/2008/11/14/rotate-exif-images/
Там есть ещё дополнительные коды для случая слайдов, когда изображение через них проецируется на экран.
Markscheider
28.03.2017 10:24что означает этот тег:
Посмотрел по ссылке. Orientation = 1 означает, что картинка никак не модифицировалась (ее не крутили, не флипали...). Думаю, надо посмотреть EXIF той же фотографии, но на стороне получателя (т.е пропущенную через сервера Вазапа)Alexeyslav
28.03.2017 11:10Нет, это не означает ничего кроме того КАК НУЖНО ПРАВИЛЬНО смотреть эту картинку. По факту, этот тег определяет какой угол содержащейся в файле картинки является левым верхним. А до того как изображение попадёт в файл оно может быть обработано, перевёрнуто как угодно и т.д.Тег же говорит как правильно интерпретировать содержимое файла. Забавно, кстати, но некоторый софт игнорирует этот тег и выводит картинку как есть в файле, а не как надо.
m1n7
27.03.2017 11:36+3— Доктор, когда я кончиком языка дотрагиваюсь до комочка фольги, в котором до этого пекли картошку, у меня покалывает за ухом. Что это значит?
— Что у Вас слишком много свободного времени!
eikoninaru
27.03.2017 11:42+1x-treme pq11
android 4.04
telegram v3.8.0 (783) arm-v7a
фоткает зеркально, отправляет нормально
Markscheider
27.03.2017 11:43фоткает зеркально, отправляет нормально
Т.е. в локальную папку телеграма сохраняет зеркальную фотку, а получателю приходит нормальная?eikoninaru
27.03.2017 14:07сохраняет нормальную, и такую же отправляет
https://itmages.ru/image/view/5593937/47031a61
geov
27.03.2017 12:38После экспериментов выяснилось что в телеграме можно использовать системное приложение камеры и оно нормально работает, а можно какуюто встроенную штуку, она зеркалит и это никак не настраивается.
Markscheider
27.03.2017 12:40в телеграме можно использовать системное приложение камеры <...>, а можно какуюто встроенную штуку
Не нашел такой фичи в настройках. Подробнее можно?Fenixad
27.03.2017 15:59А нет этого в настройках. Когда жмете на скрепку чтоб вложить что-то, верхний левый «квадрат» с символом камеры, который уже проецирует изображение с камеры — это встроенная камера Telegram. Чуть ниже его, с цветной «диафрагмой» и подписью Camera — системное приложение.
Скриншот не могу, с некоторых пор телеграм запретил себя скриншотить и этого тоже нет в настройках :)Kondra007
27.03.2017 22:33+1Настройки — приватность и безопасность — код доступа — (ввести текущий код) — разрешить скриншоты — ????? — PROFIT!!!
imihajlov
27.03.2017 13:10Я давно заметил это. Мне кажется, так сделано по психологическим причинам: люди привыкли видеть себя в зеркале, поэтому свое зеркальное изображение выглядит более привлекательным, чем нормальное.
Markscheider
27.03.2017 13:11Мне кажется, так сделано по психологическим причинам
Это понятно. Вопрос — почему потом локально сохраняется исходная (неотзеркаленная) фотка?Vespertilio
28.03.2017 10:05Приложения и телефон делают все правильно. Зеркальное изображение только в видоискателе, потому что так привычно и удобно себя фотографировать(иначе правая рука была бы слева на экране и все было бы инвертировано). А сохраняет телефон соотвественно нормально ориентированное фото, как если бы вас фоткал кто-то другой. Соответсвенно точно так же у меня в телефоне (zenfone 2) работает и системная камера и тот же телеграм, и других вариантов быть не может, а если они есть — это баг.
Markscheider
28.03.2017 10:25Зеркальное изображение только в видоискателе <...> А сохраняет телефон соотвественно нормально ориентированное фото
Это понятно. Но нафига он отправляет отзеркаленное? И почему техподдержка считает это фичей :)
Bal
27.03.2017 16:45У меня на LG G6 даже селфи штатной камерой зеркально сохраняются. Действительно, если изображение не зеркальное, то сложнее себя и камеру контролировать. А сохраняют в зеркальном виде, наверное, чтобы было то же самое, что на экране при фотографировании.
DnD_designer
27.03.2017 19:22Мы это в Скайпе еще лет несколько назад заметили. Но там было все с точность до наоборот: на наш экран с фронталки показывалось зеркальное изображение, а собеседнику отправлялось неотзеркаленное. Мы, конечно, догадались, зачем это, но были удивлены по началу — когда со сломанным микрофоном и без клавиатуры пытались передавать сообщения, написанные на листочках, мы видели — зеркально, собеседник — правильно. Но, вот зачем собеседнику передавать отзеркаленное — ума не приложу!
Rad1calDreamer
27.03.2017 13:19заметил это, когда по причине поломки основной камеры, жене пришлось фоткать документы на фронтальную
Vnuchok
27.03.2017 14:10с приложением Сбербанк онлайн такая ж история. То есть, сфоткал себя фронталкой, отправил в анкету и обнаружил зеркальное отображение
dimalu85
27.03.2017 14:51+1Мне привычно и удобно в скайпе и вайбере во время видео или фото на фронтальную камеру видеть зеркальное отображение, во время процесса съемки. Но результат должен быть нормальным и отправляться и сохраняться.
В вайбере сейчас проверил — фоткаешь как в зеркале и перед отправкой показывает нормальный кадр и его уже можно отправить.
Как можно отправлять/сохранять отзеркаленное изображение? это же неестественно для получателей.
vsespb
27.03.2017 14:59Я не понял из поста в чём именно автор видит проблему. В том что фронтальная камера делает зеркальные снимки? Или она их не делает, а делает только в ватсапп? Или что ватсап их отправляет зеркальными? И какая вообще разница как он сохраняет в галерею исходник (неужели так принципиально, кому он вообще нужен, это же побочный эффект, по идее)?
Markscheider
27.03.2017 16:04Фронтальная камера (штатная) снимает нормально.
Вазап зеркалит, отправляет отзеркаленные, а сохраняет оригиналы. Это проблема, потому что нелогично и сбивает с толку.vsespb
27.03.2017 23:03Фронтальная камера (штатная) снимает нормально.
Что значит «нормально»? Может она должна зеркалить. Это же фронтальная камера. Если она зеркалит, почему фотографии с неё должны быть не зеркальными?
Опять непонятно. Вы согласны что фронтальная камера во время фотографирования должна отображать картинку зеркально? Вы согласны что так она и должна сохранять, или не согласны?p_fox
28.03.2017 09:44+1С чего вдруг фронтальная камера должна сохранять зеркальное изображение?
Сохранять должна нормальное, а отображает в процессе съемки зеркально, потому что нам так психологически привычнее.
Markscheider
28.03.2017 10:29Опять непонятно. Вы согласны что фронтальная камера во время фотографирования должна отображать картинку зеркально? Вы согласны что так она и должна сохранять, или не согласны?
Нет. Мне было бы удобнее, если бы фронтальная камера работала ровно так же, как и основная. Т.е. отображала и сохраняла реальную картинку. Выше говорили про удобство «прицеливания» — я готов испытывать некоторые неудобства, но иметь реальную картинку, которую видит человек со стороны.vsespb
28.03.2017 10:33Ну если вы хотите чтобы фронтальная камера не зеркалила при прицеливании… Думаю она зеркалит у 100% телефонов. Тогда при чём тут whatsapp и telegram в заголовке поста. Проблема явно не в них, а в 100% телефонов.
DoNotPanic
27.03.2017 15:05WP, десятка, Telegram. Во время съёмки с фронталки снимок зеркалится (для удобства фотографирования?). Когда фотография сделана, отображается в Телеграме уже правильно.
WhatsApp — зеркалится во время съёмки и в результате отсылается неправильная, отзеркаленная версия. Забавно, что перед отсылкой фото можно немного обработать (повернуть, добавить текст, etc.), но вот отразить снимок нельзя.
Ах да, снимок в галерее сохраняется в любом случае тот, что был отправлен.
Drako_Staarn
27.03.2017 15:14К слову, то же было в своё время на скайпе линуксовом, именно на 4-й ветке.
AlexanderPerkov
27.03.2017 16:00Вижу эту ситуацию как решение дилеммы того, какое фото отправлять. Выбирая между оригиналом и тем, что видел пользователь при фотографировании. У каждого варианта есть свои преимущества. У первого — правдивость изображения для стороннего наблюдателя, у второго — возможность точной передачи задумки фото, когда позы и размещение объектов в результате соответствуют увиденному фотографирующим.
Markscheider
27.03.2017 16:01Ага, только у рядового пользователя нет возможности переключаться между этими двумя вариантами
Без бубна и отправки селфи как вложения
p_fox
28.03.2017 09:46А что, на зеркальном фото поза и расположение объектов как-то отличаются от нормального фото?
Т.е. Если взять любое фото и отзеркалить — что конкретно изменится на этом фото, кроме нечитаемого текста?Markscheider
28.03.2017 10:32Если взять любое фото и отзеркалить — что конкретно изменится на этом фото, кроме нечитаемого текста?
Еще право и лево меняются местами. Это порой дезориентирует. Но главный вопрос не в этом. Конечно, можно отзеркалить фотку в редакторе. Но для некоторых пользователей это сложно. Поэтому раз уж Вазап решил, что зеркалить — это круто, то пусть хотя бы отключение этой фичи предусмотрит.
Для сравнения — в приложении Open Camera, если я ничего не путаю, в настройках есть как раз такой пункт — Зеркалить фотки с фронтальной камеры. Это я называю: забота о пользователе.
saboteur_kiev
27.03.2017 17:34+1В опроснике не хватает логичной опции: «Поведение должно быть настраиваемым».
Markscheider
28.03.2017 10:33В опроснике не хватает логичной опции: «Поведение должно быть настраиваемым».
Вы правы, не подумал. Но сейчас уже не буду редактировать, поскольку переголосовывать нельзя, а многие уже прошли опрос.
ZaitsXL
27.03.2017 21:57-1после слов «отправляя селфи» дальше читать желание пропало, дочитал только чтобы понять как сюда эта картинка подошла
p_fox
28.03.2017 09:48Тоже не любите эти американизмы, да?
Есть же хорошее славянское слово — себяшка.
А то заладили: селфи, селфи...Markscheider
28.03.2017 10:35Есть же хорошее славянское слово — себяшка.
Помню, был в одном компьютерном журнале автор, который упорно использовал словосочетание «зеркальце для самофотографирования» вместо "… для автопортрета". Ох его редакторы и не любили…
Thero
28.03.2017 18:09слово селфи вызывает отвращение, которое оно заслужило, а себяшка нет. отвратительные вещи надо называть отвратительными словами.
Markscheider
29.03.2017 08:54слово селфи вызывает отвращение, которое оно заслужило
Ну, это на вкус и цвет. Мне, например, «себяшка» гораздо меньше нравится и ассоциации нездоровые вызывает.
А чем «селфи» заслужило отвращение? И еще вопрос — вам только русская калька не нравится? Английский вариант — Selfie тоже раздражает или норм?Thero
31.03.2017 13:37меня лично вообще не раздражает, эта шутка появилась во времена когда все начали форсить себяшки вместо селфи… сейчас уже конечно и себяшки заслуженно отвратительное слово, но в ситуациях когда мне всё-равно я старовер.
ZaitsXL
29.03.2017 11:51да дело не в американизмах и не в названии, а в самом этом явлении
Markscheider
29.03.2017 11:52а в самом этом явлении
Ничего в этом явлении нового нет. Как раньше давали спутнику пленочный фотоаппарат и просили «А сфоткай меня на фоне Кремля...», так и сейчас. Технологии немного поменялись, только и всего…
OKyJIucT
27.03.2017 22:41В камере Xiaomi Redmi 3s есть функция в настройке фронтальной камеры — зеркалить при обнаружении лица. Такой закономерности в зеркальных фото не замечали? Можно нечто подобное и приложения используют.
Pavelblog
27.03.2017 22:41+3Когда фотографируешь фронтальной камерой ты смотришь на экран. Так вот если на экране будет не отзеркаленное изображение прицелится будет очень сложно. Чтобы захватить в кадр что-то чуть правее нужно будет поворачивать телефон левее, это рассогласование приводит к утомительному процессу «прицеливания». Мне кажется ноги растут отсюда. Так что отображать картинку во время фотографирования нужно зеркально, но отправлять не зеркально. Многие люди даже себя не могут узнать в зеркальном отражении. Я с таким поведением столкнулся когда мой друг сфоткал на фронтальную камеру за рулем, а руль оказался справа а не слева. Это был Телеграм кстати.
Kenya-West
28.03.2017 10:13Смартфон на Windows 10, версия 2.17.116, приложение зеркалит фотку. Сохранение фотографий на устройстве я отключил, поэтому не знаю, в каком виде лежит оригинальный файл.
Thero
28.03.2017 17:03что-то мне кажется это зависит от прошивки самой камеры и зеркальность зависит в первую очередь от этого, а вот почему воцап отправляет одно а сохраняет другое загадка.
MAFi0Z0
29.03.2017 08:54+1Полтора года назад писал в Телеграм об этом. Ответили, что это не баг, а фича.
Markscheider
29.03.2017 08:55+1Ответили, что это не баг, а фича.
Шикарно! Можно считать вопрос закрытым, раз у Вазапа и Телеграма мнения сопали :)
Fagot63
А может быть это проблемой как с датчиками ориентации смартфона?
Просто при тестировании VR, столкнулся с тем, что на некоторых телефонах сигнал от гироскопа/акселератора приходит порой инвертированным.
Так же было с камерой на планшете в приложении сбербанка, зеркалил по двум осям. Когда как в смартфоне такого не было.
Markscheider
Надо будет на планшете попробовать для чистоты эксперимента, спасибо.
p_fox
И какой же датчик может заставить зеркалить картинку? Не поворачивать, а именно зеркалить?
Термометр?