AVAssetImageGenerator提供旋转的图像

当通过AVAssetImageGenerator获取video的UIImage时,我回头看图像旋转(当然,在技术上他们不是)纵向拍摄的video。 我怎样才能知道video拍摄的方向,然后正确旋转图像?

AVURLAsset *asset = [[AVURLAsset alloc] initWithURL:url options:nil]; AVAssetImageGenerator *generate = [[AVAssetImageGenerator alloc] initWithAsset:asset]; NSError *err = NULL; CMTime time = CMTimeMake(0, 60); CGImageRef imgRef = [generate copyCGImageAtTime:time actualTime:NULL error:&err]; [generate release]; UIImage *currentImg = [[UIImage alloc] initWithCGImage:imgRef]; 

最简单的方法是将图像生成器上的appliesPreferredTrackTransform属性设置为YES,然后自动为您进行转换。

复制和粘贴解决scheme,使用上一个答案创build具有录制方向的图像。

 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);