2011-09-08 15 views
0

私は画像で画像を使ってQTMovieを作成しようとしています。私は2つの映画を持っています.1つはファイルからのビデオであり、もう1つはカメラで記録されたものです。QTTrackの不透明度を変更するには

カメラの動画を他の動画の上に表示して、やや透明にします。私はqttrackを使って他のビデオの細かい部分にカメラムービーを配置することができますが、ビデオ上のqttrackの透明度を変更する方法はわかりません。

これはQTKitを使用して可能ですか?ここで

は、私はQuickTimeのを使用してそれを行うことができた今

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

私のコードの例です。

ここではそれを達成したカテゴリがあります。 [このトピック]で

ヘッダー

#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

nice!私はそれを試す必要があります... – headkit

関連する問題