2013-05-29 5 views
0

Я не сделал ничего, кроме создания мой снимок в UIImageviewПочему повернутого UIImage

  • Никаких дополнительных пользовательских настроек
  • Нет преобразования
  • Нет изменения размера, ничего

Тогда почему мой взгляд изображение возвращает повернутое изображение.

Я нашел решение, используя

UIImage* rotatedImage = [UIImage imageWithCGImage:image.CGImage 
           scale:1.0 
           orientation:UIImageOrientationRight]; 

Теперь, я получаю исходное изображение. Но хотя я просто хочу знать причину automatic rotated image.

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

Любая помощь приветствуется!

ответ

0

Это может зависеть от дополнительной «информации о съемке», которая в конечном итоге добавляется вашей камерой. Например. если вы делаете снимок с iPhone в портретном режиме («по вертикали»), изображение будет по-прежнему иметь исходный размер (2048x1536), но с информацией о «ориентации», установленной для «поворота 90 градусов». Вероятно, UIImageView не считывает информацию о съемке и не показывает изображение как «сырое», которое вращается (это изображение, которое физически принимается датчиком).

Рассмотрите это: если вы повернете iPhone, физический датчик также будет повернут, и iPhone «искусственно» отобразит изображение, которое вы должны отобразить правильно.

Вы можете проверить это, взяв две фотографии с вашим iPhone в обеих ориентациях, а затем подключив iPhone к вашему Mac и запустив приложение «Захват изображения». Вы увидите, что две фотографии имеют одинаковый размер, но один будет повернут по вертикали. Вы можете проверить информацию о съемке, используя Preview.

Что касается «снимка, сделанного из галереи», я предполагаю, что галерея делает для вас ориентацию и возвращает вам не сырое изображение, а изображение после того, как ориентация была применена (точно так же, как вы делали в своей код).

+0

Спасибо за объяснение. Я захватил изображение, используя как портрет, так и режим lanscape. Но он возвращает тот же результат. это повернутое изображение. Режим Portrait возвращает UIImageOrientationLeft, а Landscape возвращает UIImageOrientationRightMirrored. :( –

+0

Прямоугольная ориентация звучит странно. Захватили ли вы ее с помощью фотоаппарата iOS iOS? Вы манипулировали ею, используя внутреннее приложение «Фото» (например, обрезка или другое). – viggio24

+0

Я захватил с помощью встроенного приложения «Фото» и использовал оригинал изображение не обрезало ничего –

Смежные вопросы