はじめに
動画を扱うアプリを開発しているのですが、動画のサムネイルを生成する際に左に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