AVassetImageGenerator에서 얻은 이미지가 화면에 표시되는 방향과 일치하지 않을 때의 대응
발생한 문제
AVassetImageGenerator를 사용하여 애니메이션에서 정지 이미지를 추출할 때 애니메이션을 촬영할 때의 단말기의 방향에 따라 화면에 표시되는 방향과 다른 방향에서 정지 이미지를 얻는 현상이 발생하기 때문에 그 대응 방법
참조(최종 방향)
재현 코드
Swift
var asset: AVURLAsset
〜〜〜
let generator = AVAssetImageGenerator(asset: asset)
let captureImage: CGImageRef = generator.copyCGImageAtTime(asset.duration, actualTime: nil, error: nil)
var image = UIImage(CGImage: captureImage)
대응 코드
Swift
var track = asset.tracksWithMediaType(AVMediaTypeVideo)
if let media = track[0] as? AVAssetTrack {
var naturalSize: CGSize = media.naturalSize
var transform: CGAffineTransform = media.preferredTransform
if transform.tx == naturalSize.width && transform.ty == naturalSize.height {
UIImage(CGImage: captureImage scale: 1.0 orientation: UIImageOrientation.Down)
} else if transform.tx == 0 && transform.ty == 0 {
UIImage(CGImage: captureImage scale: 1.0 orientation: UIImageOrientation.Up)
} else if transform.tx == 0 && transform.ty == naturalSize.width {
UIImage(CGImage: captureImage scale: 1.0 orientation: UIImageOrientation.Left)
} else {
UIImage(CGImage: captureImage scale: 1.0 orientation: UIImageOrientation.Right)
}
}
Reference
이 문제에 관하여(AVassetImageGenerator에서 얻은 이미지가 화면에 표시되는 방향과 일치하지 않을 때의 대응), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/inuko/items/a5af0b8122caee22792d텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)