2011-09-08 57 views
0

我試圖使QTMovie與圖片中的圖片。我有兩部電影,一部是來自文件的視頻,另一部是用相機錄製的。如何更改QTTrack的不透明度

我想讓相機電影在其他視頻上方顯示,並且略微透明。我可以使用qttrack將相機電影定位在其他視頻上,但我不知道如何更改視頻上qttrack的透明度。

這可能使用QTKit?

這是現在

QTTimeRange fullMovieDuration = QTMakeTimeRange(QTZeroTime, [mCameraMovie duration]); 
    QTTime startTime = QTMakeTime(0, [mCameraMovie currentTime].timeScale); 

    QTTrack *cameraTrack = [[mCameraMovie tracks] objectAtIndex:0]; 

    NSRect newCameraRect = NSMakeRect(100, 100, 320, 240); 

    [cameraTrack setAttribute:[NSValue valueWithRect:newCameraRect] forKey:QTTrackBoundsAttribute]; 

    [mMovie setAttribute:[NSNumber numberWithBool:YES] forKey:QTMovieEditableAttribute]; 
    [mMovie insertSegmentOfTrack:cameraTrack timeRange:fullMovieDuration atTime:startTime]; 

    [ibMovieView setMovie:mMovie]; 
+0

看[本主題] [1] [1]:http://stackoverflow.com/questions/1594381/cocoa-add-video-watermark-general-info – Davyd

+0

提到添加圖像,該圖像已經將透明度應用於視頻。我想添加一個新視頻。 – Randall

+0

就像我知道的那樣,你不能在QTKit中使用它,它非常有限。它可以在Quicktime框架中使用,但僅限於32位。如果您想在Lion或iOS 4.0或更高版本中使用AVFoundation。 – Davyd

回答

2

我可以使用QuickTime做我的代碼的例子。

這是一個完成它的類別。

部首

#import <QTKit/QTKit.h> 

@interface QTTrack (QTTrack_Opacity) 

-(void)setOpacity:(float)opacity; 

@end 

源文件

@implementation QTTrack (QTTrack_Opacity) 

-(void)setOpacity:(float)opacity 
{ 
    MediaHandler mh = GetMediaHandler([[self media] quickTimeMedia]); 
    RGBColor color = { (int)(opacity*255) << 8, (int)(opacity*255) << 8, (int)(opacity*255) << 8}; 
    MediaSetGraphicsMode(mh, graphicsModeStraightAlphaBlend, &color); 

} 

@end 
+0

不錯!我需要嘗試一下... – headkit

相關問題