1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Swift5】動画のサムネイル画像生成時に画像が90度回転するときの対処法

Last updated at Posted at 2019-11-20

はじめに

動画を扱うアプリを開発しているのですが、動画のサムネイルを生成する際に左に90度回転してしまい、解消までに地味に時間を取らてしまったのでその解消法を残しておこうと思います

サムネイル画像生成方法

AVAssetImageGeneratorに動画のAssetを突っ込んでcopyCGImage(at:_,actualTime:_)メソッドで生成したところ、画像をみると左に90度回転していました(ポートレートで撮影した動画のみ)

let asset = Asset(url: videoURL)
let imageGenerator = AVAssetImageGenerator(asset: asset)
let time = CMTime(seconds: 0.0, preferredTimescale: 600)
do {
  let cgImage = try imageGenerator.copyCGImage(at: time, actualTime: nil)
  return(UIimage(cgImage: cgImage))
} catch {
  print("error")
}

解消法

imageGeneratorの以下のプロパティをtrueにするだけで解消しました

imageGenerator.appliesPreferredTrackTransform = true

appliesPreferredTrackTransformとは

公式ドキュメント

Instance Property: appliesPreferredTrackTransform
The default is false. AVAssetImageGenerator only supports rotation by 90, 180, or 270 degrees.
This property is ignored if you set a value for the videoComposition property.

よしなに向きを判断して回転してくれる感は伝わってきますが、よくわかりません・・・^^;
同じことにつまずいた方の助けになれば幸いですm(__)m

1
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?