일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- node.js
- tableView
- realm
- ios
- WWDC24
- MVVM
- Xcode
- arkit
- 백준
- UIKit
- 패스트캠퍼스
- Kuring
- XCTest
- RxSwift
- swift
- raywenderlich
- designpattern
- SnapKit
- visionOS
- BOJ
- Lv2
- reactorkit
- SwiftUI
- combine
- CollectionView
- Swfit
- rxcocoa
- Flutter
- TCA
- 프로그래머스
Archives
- Today
- Total
lgvv98
[iOS] UIImage.Orientation 본문
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 > Docs, iOS, Swift' 카테고리의 다른 글
[XCode 15.0 beta] Preview Macro Bug (0) | 2023.06.08 |
---|---|
[Swift] 커링(Currying) (1) | 2023.02.28 |
Swift HTML 코드 로드하기 (0) | 2022.10.06 |
[Moya] Unable to parse empty data 대응하기 (0) | 2022.09.29 |
[iOS] UICollectionView CompositionalLayout (0) | 2022.09.18 |
Comments