본문 바로가기

iOS 프로그래밍/오류

[swift] imageView에 사진 회전되어 들어가는 오류

 

평소처럼 사진을 찍어 사진을 업로드 하는데 문제가 생겼었다.

jpg로 잘 묶어 보냈는데

라이브러리에서 사진을 가져오는 것(세로 가로), 사진을 찍을 때 가로로 찍을 때 다 잘 들어가지만

사진을 세로로 찍었을 때 돌아가는 것이다.

 

꼬질꼬질한 에어팟 케이스ㅎㅎ

 

https://www.it-swarm-ko.tech/ko/ios/업로드-후-ios-uiimagepickercontroller-결과-이미지-방향/971651940/

 

다른 사람들도 그런 오류가 있었던거 같지만

소스가 다 너무 길어서 이해하기 힘들었기에

 

여기서 가장 간단한 소스를 참고하여 해결 하였다.

[swift]

 

// 세로 이미지 회전 문제로 인한 함수

func fixOrientation(img: UIImage) -> UIImage {

if (img.imageOrientation == .up) {

return img

}

 

UIGraphicsBeginImageContextWithOptions(img.size, false, img.scale)

let rect = CGRect(x: 0, y: 0, width: img.size.width, height: img.size.height)

img.draw(in: rect)

 

let normalizedImage = UIGraphicsGetImageFromCurrentImageContext()!

UIGraphicsEndImageContext()

 

return normalizedImage

}

 

 

위 함수를 사용하여 해결 하였다

 

예상 문제 원인

내가 있었던 문제는

https://feel5ny.github.io/2018/08/06/JS_13/

 

여기서 나타내는 문제와 같은 것 같다.

 

- 날짜와 시간 정보

- 카메라 설정

- 저작권 정보에 대한 설명

 

이러한 세개의 exif 메타데이터가 포함 될 때

이때 핸드폰을 세워서 촬영할 경우 사진 이미지가 멋대로 회전되서 read될때가 있다고 합니다.

 

따라서 새로 메타데이터가 없는 것으로 사진을 다시 만들어 보내는 것입니다.

 

저와 같은 문제가 있으신 분들은 저와 같이 해결해 보시길 바랍니다.