0

ピクチャーインピクチャーでQTMovieを作成しようとしています。私は2つの映画を持っています。1つはファイルからのビデオで、もう1つはカメラで録画されたものです。

カメラムービーを他のビデオの上に表示し、少し透明にしたい。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];
4

1 に答える 1

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
于 2011-09-13T12:45:50.050 に答える