2011-09-08 108 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

相关问题