From 509251c800b40ccb8d05be93b035843018a56663 Mon Sep 17 00:00:00 2001 From: kbinani Date: Wed, 9 Sep 2009 11:35:48 +0000 Subject: [PATCH] git-svn-id: http://svn.sourceforge.jp/svnroot/lipsync@15 b1f601f4-4f45-0410-8980-aecacb008692 --- trunk/LipSync/LipSync.sln | 9 ++ trunk/LipSync/LipSync/LipSync.csproj | 4 + .../OverlayImpeller/OverlayImpeller.cs | 84 +++++++++++++++++++ .../OverlayImpeller/OverlayImpeller.csproj | 56 +++++++++++++ 4 files changed, 153 insertions(+) create mode 100644 trunk/LipSync/OverlayImpeller/OverlayImpeller.cs create mode 100644 trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj diff --git a/trunk/LipSync/LipSync.sln b/trunk/LipSync/LipSync.sln index 136543e..77b5f5a 100644 --- a/trunk/LipSync/LipSync.sln +++ b/trunk/LipSync/LipSync.sln @@ -2,6 +2,9 @@ Microsoft Visual Studio Solution File, Format Version 10.00 # Visual C# Express 2008 Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LipSync", "LipSync\LipSync.csproj", "{15B51EEA-0D7F-4B59-AC7B-879A7BDB4A56}" + ProjectSection(ProjectDependencies) = postProject + {604390C3-BA02-4583-8C41-7B3B14437D6F} = {604390C3-BA02-4583-8C41-7B3B14437D6F} + EndProjectSection EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IPlugin", "IPlugin\IPlugin.csproj", "{FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00}" EndProject @@ -25,6 +28,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "bocoree", "..\bocoree\bocor EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Boare.Lib.Swf", "..\Boare.Lib.Swf\Boare.Lib.Swf.csproj", "{D861973B-3BC6-4F52-83BE-49A8C269C09F}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OverlayImpeller", "OverlayImpeller\OverlayImpeller.csproj", "{604390C3-BA02-4583-8C41-7B3B14437D6F}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -79,6 +84,10 @@ Global {D861973B-3BC6-4F52-83BE-49A8C269C09F}.Debug|Any CPU.Build.0 = Debug|Any CPU {D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.ActiveCfg = Release|Any CPU {D861973B-3BC6-4F52-83BE-49A8C269C09F}.Release|Any CPU.Build.0 = Release|Any CPU + {604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {604390C3-BA02-4583-8C41-7B3B14437D6F}.Debug|Any CPU.Build.0 = Debug|Any CPU + {604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.ActiveCfg = Release|Any CPU + {604390C3-BA02-4583-8C41-7B3B14437D6F}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/trunk/LipSync/LipSync/LipSync.csproj b/trunk/LipSync/LipSync/LipSync.csproj index 32196c8..75e92ce 100644 --- a/trunk/LipSync/LipSync/LipSync.csproj +++ b/trunk/LipSync/LipSync/LipSync.csproj @@ -434,6 +434,10 @@ {6CBD22A6-34C4-4444-8F90-9EE0D150CEC1} NicoComment + + {604390C3-BA02-4583-8C41-7B3B14437D6F} + OverlayImpeller + {E5F9AD85-0C02-4286-AC4C-F5B34EA10650} VFlip diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs new file mode 100644 index 0000000..2cce77d --- /dev/null +++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.cs @@ -0,0 +1,84 @@ +using System; +using Plugin; +using System.Drawing; +using System.Windows.Forms; + +public class OverlayImpeller : IPlugin { + private string m_config; + + /// + /// フレームに加工を施す関数 + /// + /// 加工の対象 + /// ビデオの先頭からの時刻(秒) + /// エントリの開始時刻 + /// エントリの終了時刻 + /// エントリの設定値 + public void Apply( ref Bitmap frame, float time, float e_begin, float e_end, ref string e_body ) { + double rpm = 11.5821; + int centerx = 135; + int centery = 135; + int impeller_diameter = 153; + int impeller_height_half = 12; + double theta0 = 0.0; + + double omega = 2.0 * Math.PI / (60.0 / rpm); + double theta = theta0 + time * omega; + int current_width = Math.Abs( (int)(impeller_diameter * Math.Cos( theta ) / 2.0) ); + using ( Graphics g = Graphics.FromImage( frame ) ) { + g.DrawRectangle( new Pen( Color.Black, 2 ), new Rectangle( centerx - current_width, centery - impeller_height_half, current_width * 2, impeller_height_half * 2 ) ); + } + } + + public void ApplyLanguage( string lang ) { + } + + /// + /// プラグインの名称 + /// + public string Name { + get { + return "OverlayImpeller"; + } + } + + /// + /// プラグインの簡潔な説明文。 + /// + public string Abstract { + get { + return "OverlayImpeller"; + } + } + + /// + /// プラグイン用の設定値を格納した文字列を指定します。 + /// + /// + public string Config { + get { + return m_config; + } + set { + m_config = value; + } + } + + public DialogResult BaseSetting() { + return DialogResult.Cancel; + } + + public DialogResult EntrySetting( ref string entry_setting ) { + return DialogResult.Cancel; + } + + public void Render( Graphics g, Size size, float time, string mouth, string Reserved ) { + } + + public ulong Type { + get { + return Constants.LS_NO_EVENT_HANDLER | Constants.LS_ENABLES_ENTRY_SETTING; + } + } +} + diff --git a/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj new file mode 100644 index 0000000..64835d9 --- /dev/null +++ b/trunk/LipSync/OverlayImpeller/OverlayImpeller.csproj @@ -0,0 +1,56 @@ + + + + Debug + AnyCPU + 9.0.21022 + 2.0 + {604390C3-BA02-4583-8C41-7B3B14437D6F} + Library + Properties + OverlayImpeller + OverlayImpeller + v2.0 + 512 + + + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + {FB0C1FBD-3CB7-46BF-8E39-57BE2C8D1F00} + IPlugin + + + + + + + + + + \ No newline at end of file