プログラミングやパソコン設定など備忘録

あきらちんの技術メモ

C#

C#で映画のエンドロールみたいな その2

投稿日:

はじめに

前回の改良版になります。

今回の改良ポイントは、行ごとにフォントサイズを変更出来るようにしました。

それからテキスト以外にもロゴなどの画像もスクロール出来るようにしました。

さらに表示した内容をAVI形式の動画として保存出来るようにしました。

 

出来上がりイメージ

できあがる動画(AVI形式)のサイズが大きいので、Windows10標準の「フォト」でトリミングしてMP4形式で保存してあります。

ソースのダウンロード

VisualStudio 2019 Comunityで作成したソースファイルをzip圧縮してあります。

ちょこっと解説

動画の保存には、Accord Video for Windowsを利用してみました。

インストールは、VisualStudio のツールメニューから

「NuGetパッケージマネージャ」の「ソリューションのNuGetパッケージ管理」を実行して表示された画面の左上の「参照」をクリックします。

検索欄にvfwと入力すると「Accord.Video.VFW」が表示されるのでクリックします。

プロジェクトを選択してインストールできます。

動画関連で追加したコード【RollForm.cs】

11行目 using Accord.Video.VFW; を追加

31行目 AVIWriter mAviWriter = new AVIWriter(); を追加

93行目 mAviWriter.FrameRate = 60; を追加。フレームレートを60で設定

94行目 mAviWriter.Open("EndRoll.avi", SCR_WIDTH, SCR_HEIGHT); を追加。動画ファイル名をEndRoll.aviとしてRollFormのサイズでオープンします。

140行目 mAviWriter.AddFrame(mScreen); を追加。ここで表示画面を動画に追加してます。

149行目~153行目 に画面が閉じる際に動画ファイルをクローズするようにしてます。

mAviWriter.Close();

ほんの数行で簡単に実装できました。

フォントサイズで追加・変更となったコード

前回は表示テキストをひとまとめにしてましたが、行ごとに分割しました。

73行目 mRollText = this.RollText.Split('\n');

改行コードで分割して配列に格納してます。

 

RollForm_Paintでテキストを出力していましたが、OutputText(Graphics g)を作成してテキスト出力部分を移動しました。179行目以降

 

今回、出力するテキストの先頭に種類とフォントサイズを指定出来るようにしました。指定方法は以下の通りです。

TXT,11;ここに出力される文字

セミコロン”;”で区切ります。”ここに出力される文字”を11ポイントで出力できます。

ロゴなどの画像の指定は以下の通りです。

IMG,327,54;画像.jpg

TXTと同様にセミコロン”;”で区切ります。IMGの後の数字は画像サイズです。327が幅で54が高さです。

 

ソースコード

最後に

前回、今回とはじめてYouTubeに動画をアップして記事中に埋め込んでみましたが意外と簡単にできてホットしております。

とりあえずやってみたかったことが大体実現できることがわかったので、ひとまず完了です。

 

スポンサードリンク

スポンサードリンク

-C#
-, , , ,

Copyright© あきらちんの技術メモ , 2023 All Rights Reserved Powered by STINGER.