2011-03-18 13 views
42

AVAssetImageGenerator aracılığıyla bir videonun UIImage'sini alırken, video dikey olarak çekildiğinde görüntüleri döndürülür (iyi, teknik olarak değil). Videonun hangi yöne çekildiğini nasıl belirleyebilir ve ardından resmi düzgün bir şekilde döndürebilirim?AVAssetImageGenerator, döndürülmüş görüntüler sağlar

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

cevap

174

kolay yolu o zaman sizin için otomatik dönüşümü yapması gerektiğini, sadece EVET görüntü jeneratör üzerinde appliesPreferredTrackTransform özelliğini ayarlamaktır.

+1

Çok teşekkürler! Dokümanları elimden aldım ama bu mülkün adı bana, problemle ilgili bir şey olduğunu söylemedi. –

+0

Güzel çözüm. Bir muamele yapar. – imnk

+3

Çok teşekkürler, günümü kurtardı! – cyrilPA

18

Önceki yanıtı kullanarak kayıt yönelimli görüntü oluşturmak için kopyala ve yapıştır çözüm.

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); 
İlgili konular