AVAssetImageGenerator provides images rotated AVAssetImageGenerator provides images rotated ios ios

AVAssetImageGenerator provides images rotated


The easiest way is to just set the appliesPreferredTrackTransform property on the image generator to YES, then it should automatically do the transformation for you.


The copy and paste solution to create image with the recording orientation using the previous answer.

AVURLAsset* asset = [AVURLAsset URLAssetWithURL:url options:nil];AVAssetImageGenerator* imageGenerator = [AVAssetImageGenerator assetImageGeneratorWithAsset:asset];imageGenerator.appliesPreferredTrackTransform = YES;CGImageRef cgImage = [imageGenerator copyCGImageAtTime:CMTimeMake(0, 1) actualTime:nil error:nil];UIImage* image = [UIImage imageWithCGImage:cgImage];CGImageRelease(cgImage);


Here is the solution in swift version 4:

func thumbnailImageForFileUrl(_ fileUrl: URL) -> UIImage? {    let asset = AVAsset(url: fileUrl)    let imageGenerator = AVAssetImageGenerator(asset: asset)    imageGenerator.appliesPreferredTrackTransform = true    do {        let thumbnailCGImage = try imageGenerator.copyCGImage(at: CMTimeMake(1, 60), actualTime: nil)        return UIImage(cgImage: thumbnailCGImage)    } catch let err {        print(err)    }    return nil}