UIImage.Orientation
카메라의 어떤 방향으로 찍어도 나는 사용자가 봤을 때 위 방향으로 나타나기를 바랬다.
그러니까 똑바로 들고 찍어도, 오른손으로 눕혀 찍어도, 거꾸로 찍어도, 왼손으로 눕혀 찍어도 모두 동일하게 나타나기를 바랬다.
카메라의 경우에는
스마트폰의 앞 부분으로 촬영하면 front
스마트폰의 뒷 부부분으로 촬영하면 back
옵션이 존재한다.
// 전면 카메라
let front = AVCaptureDevice.default(.builtInDualCamera,
for: .video,
position: .back)
// 후면 카메라 - 후면의 경우 아이폰에 카메라가 여러개가 되면서 옵션이 다양해짐.
let back = AVCaptureDevice.default(.builtInWideAngleCamera,
for: .video,
position: .back)
사용자가 어떻게 들고 찍던간에 Orientation을 조정해주면 되는데, 아래 코드를 참고하면 된다.
extension UIImage.Orientation {
static var frontOrientations: [UIImage.Orientation] = [
.leftMirrored, // 위로 찍을 때
.downMirrored, // 오른손으로 눕혀서 찍을 때
.rightMirrored, // 뒤집어서 찍을 때
.upMirrored // 왼손으로 눕혀서 찍을 때
]
static var backOrientations: [UIImage.Orientation] = [
.right, // 위로 찍을 때
.up, // 오른손으로 눕혀서 찍을 때
.left, // 뒤집어서 찍을 때
.down // 왼손으로 눕혀서 찍을 때
]
}
아래는 이미지의 orientation을 변경하는 코드이다.
이미지의 orientation은 { get }으로 바로 변경할 수가 없어서, 이렇게 새로 만들어 주어야 한다.
let newImage = UIImage(cgImage: image.cgImage!,
scale: image.scale,
orientation: { 해당 옵션에 맞게끔 처리} )
'apple > iOS, UIKit, Documentation' 카테고리의 다른 글
[UIKit] UILabel Inset (0) | 2023.06.23 |
---|---|
[Swift] 커링(Currying) (1) | 2023.02.28 |
such module 'RxCocoaRuntime' (0) | 2022.10.19 |
Swift HTML 코드 로드하기 (0) | 2022.10.06 |
Moya Unable to parse empty data 대응하기 (0) | 2022.09.29 |