UIImage.Orientation 분석
카메라의 어떤 방향으로 찍어도 나는 사용자가 봤을 때 위 방향으로 나타나기를 바람.
그러니까 똑바로 들고 찍어도, 오른손으로 눕혀 찍어도, 거꾸로 찍어도, 왼손으로 눕혀 찍어도 모두 동일하게 나타나기를 바람.
카메라의 경우 2개의 옵션이 존재
- 스마트폰의 앞 부분으로 촬영하면 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' 카테고리의 다른 글
| UILabel Inset and CornerRadius (UIKit) (0) | 2023.06.23 |
|---|---|
| [Swift] 커링(Currying) (1) | 2023.02.28 |
| such module 'RxCocoaRuntime' (0) | 2022.10.19 |
| Swift로 iOS에서 HTML 코드 불러오는 PoC (0) | 2022.10.06 |
| Moya Unable to parse empty data 대응하기 (0) | 2022.09.29 |