Thinkbox Software 製品
ブログ

3D動画(Side-By-Side)の作成

Side-By-Side方式の3D動画を作成します。

 

書き方:

encoder = Draft.VideoEncoder( ‘Patches.mov’, width=640*2 ,height=480) # ビデオエンコーダを横幅2倍で初期化
frame = Draft.Image.CreateImage( 640*2 , 480 )    # 横幅2倍でベース画像を作成
frame.CompositeWithAnchor( LEFTEYEIMAGE , Draft.Anchor.West, Draft.CompositeOperator.OverCompositeOp )          # 左目画像をベース画像の左側へ合成
frame.CompositeWithAnchor( RIGHTEYEIMAGE , Draft.Anchor.East, Draft.CompositeOperator.OverCompositeOp )           # 右目画像をベース画像の右側へ合成
encoder.FinalizeEncoding()        # 動画のファイナライズ

 

パラメータ:

LEFTEYEIMAGE :左目用画像を指定
RIGHTEYEIMAGE :右目用画像を指定

 

記述例:

右目用画像、左目用画像を200フレーム読込み、Side-By-Side方式の3D動画を作成します
# -*- coding: UTF-8 -*-
import Draft   # DRAFTのAPIのインポート
from DraftParamParser import *  # DEADLINE→DRAFTで利用するAPIをインポート

encoder = Draft.VideoEncoder( ‘Patches.mov’, width=640*2,height=480 ) # ビデオエンコーダを横幅2倍で初期化

for currFrame in range( 1, 201 ) :      # 1-200にナンバーリングされた画像を動画化

currFileL = ReplaceFilenameHashesWithNumber( ‘left_###.jpg’, currFrame )          # ファイル名の###を数字に置き換え
currFileR = ReplaceFilenameHashesWithNumber( ‘right_###.jpg’, currFrame )          # ファイル名の###を数字に置き換え
frameL = Draft.Image.ReadFromFile( currFileL )   # 左目用画像の読み込み
frameR = Draft.Image.ReadFromFile( currFileR )   # 右目用画像の読み込み

frame = Draft.Image.CreateImage( 640*2 , 480 )   # 横幅2倍でベース画像を作成
frame.CompositeWithAnchor( frameL, Draft.Anchor.West, Draft.CompositeOperator.OverCompositeOp )          # 左目画像をベース画像の左側へ合成
frame.CompositeWithAnchor( frameR, Draft.Anchor.East, Draft.CompositeOperator.OverCompositeOp )          # 右目画像をベース画像の左側へ合成
encoder.EncodeNextFrame( frame )     # 画像のエンコード

encoder.FinalizeEncoding()      # 動画のファイナライズ