- - PR -
C# 複数のbitmapオブジェクトから動画ファイルを作成したい
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2005-02-10 15:11
>(1)無劣化であること。
>(2)データ構造が単純で1ピクセルごとの輝度値が配列に取り出せること。 >(b) 輝度配列byte[640,240,3,60] (幅,高さ,RGB,フィールド番号) これでいいのなら、無理にAVIにしなくても、Raw形式(生データ)で 保存しておけばいいのではないでしょうか? (配列の内容を全部そのまま書き出してファイルにするだけ) あとは、DirectShowとか使うことになるのではないかと思いますが、 こちらは難しいのでよくわかりません。 |
|
投稿日時: 2005-02-10 16:28
仕様からして最初からMPEGはありえなかったことになりますね。。
Video for Windows APIを見て、 AVIを作るのにどんなパラメータが必要か調べたのでしょうか? そんなに簡単に手でガリこめるとは私は思えませんが?? ”なか-chanさん”の意見とかぶるかもしれませんが・・。2つ簡単な方法。 (1)BITAMPのビットデータ部分を連結した巨大ピットマップを1つのファイルとして作成。 (W:640H:240×n枚 RGB24bitビットマップヘッダーをくっつける) 見るときは、DirectXのDirectDrawで見たいPOINTに(高さ:240×nフレーム) 画像を移動させれば十分高速に再生できます。 (※映画のフィルムのように再生) (2)BITMAPのままフレームを全部連結。そのファイルから各フレームを切り取って 元のビットマップオブジェクトと同じようにメモリ上に展開し、 PictureBoxにBITMAPオブジェクトとして読み込めば同じことになりませんか? でなければ、RGBのビットデータの連結で決まったサイズで切り出してお決まりの ヘッダーをつけるのでも良いと思います。 この方が、再生フレームレートは自分のコードでSleepして決められるし、 コマ落ちの問題・コマ送り・コマ進みの問題も起こらないです。 さらに、1ファイルに原本をすべて格納しておけます。 作成するのにファイル操作だけなので簡単だと思います。 お金もかかりません。 [ メッセージ編集済み 編集者: xxななおxx 編集日時 2005-02-10 17:03 ] [ メッセージ編集済み 編集者: xxななおxx 編集日時 2005-02-10 19:48 ] |
