diff --git a/delogo.rc b/delogo.rc index 1856330..6023900 100644 --- a/delogo.rc +++ b/delogo.rc @@ -35,19 +35,19 @@ FONT 9, " LTEXT "R", IDC_STATIC, 17,171,8,8 EDITTEXT IDC_RED, 25,169,30,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",IDC_SPINR,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 LTEXT "G", IDC_STATIC, 62,171,8,8 EDITTEXT IDC_GREEN, 70,169,30,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",IDC_SPING,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 LTEXT "B", IDC_STATIC, 107,171,8,8 EDITTEXT IDC_BLUE, 115,169,30,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",IDC_SPINB,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 // PUSHBUTTON "黒" , IDC_BLACK, 18,170,20,13, BS_CENTER|BS_VCENTER|BS_AUTORADIOBUTTON // PUSHBUTTON "白" , IDC_WHITE, 43,170,20,13, BS_CENTER|BS_VCENTER|BS_AUTORADIOBUTTON @@ -71,13 +71,13 @@ FONT 9, " CTEXT "X", IDC_STATIC, 6,37,30,8 EDITTEXT ID_EDIT_X, 36,35,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINX,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 CTEXT "Y", IDC_STATIC, 75,37,30,8 EDITTEXT ID_EDIT_Y, 105,35,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINY,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 @@ -86,25 +86,25 @@ FONT 9, " CTEXT "開始", IDC_STATIC, 6,37+35,30,8 EDITTEXT ID_EDIT_START, 36,35+34,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINST,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 CTEXT "終了", IDC_STATIC, 75,37+35,30,8 EDITTEXT ID_EDIT_END, 105,35+35,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINED,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 CTEXT "FadeIn", IDC_STATIC, 6,57+35,30,8 EDITTEXT ID_EDIT_FIN, 36,55+35,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINFI,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 CTEXT "FadeOut", IDC_STATIC, 75,57+35,30,8 EDITTEXT ID_EDIT_FOUT, 105,55+35,35,12, ES_RIGHT|ES_AUTOHSCROLL|ES_NUMBER|WS_TABSTOP CONTROL "Spin1",ID_EDIT_SPINFO,"msctls_updown32", - UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS, + UDS_ALIGNRIGHT | UDS_AUTOBUDDY | UDS_SETBUDDYINT | UDS_ARROWKEYS | UDS_NOTHOUSANDS, 0,0,0,0 DEFPUSHBUTTON "OK", IDOK, 20,80+35,50,14, BS_CENTER|BS_VCENTER @@ -130,7 +130,7 @@ FONT 9, " // VERSION INFO // VS_VIRSION_INFO VERSIONINFO - FILEVERSION 0,1,2,0 + FILEVERSION 0,1,2,1 PRODUCTVERSION 0,1,2 FILEFLAGSMASK 0x3FL FILEFLAGS 0x0L @@ -144,12 +144,12 @@ VS_VIRSION_INFO VERSIONINFO { // VALUE "Comments", "ロゴサンプル提供者募集中\0" VALUE "FileDescription", "透過性ロゴ フィルタ Plugin for AviUtl 0.98以降\0" - VALUE "FileVersion", "0.1.2.0\0" + VALUE "FileVersion", "0.1.2.1\0" VALUE "InternalName", "deLogo\0" VALUE "LegalCopyright", "(C) MakKi\0" VALUE "OriginalFilename", "delogo.aup\0" VALUE "ProductName", "透過性ロゴ フィルタ\0" - VALUE "ProductVersion", "0.12\0" + VALUE "ProductVersion", "0.12a\0" } } BLOCK "VarFileInfo" diff --git a/filter.c b/filter.c index 0f26ade..ef2ab3a 100644 --- a/filter.c +++ b/filter.c @@ -1,6 +1,6 @@ /********************************************************************* * 透過性ロゴ(BSマークとか)除去フィルタ -* ver 0.12 +* ver 0.13 * * 2003 * 02/01: 製作開始 @@ -71,11 +71,17 @@ * 開始・終了パラメタの範囲変更(負の値も許可) * ロゴファイルのデータ数を拡張(1byte -> 4byte) (0.11) * 06/21: 編集ダイアログで位置(X,Y)も編集できるようにした。(0.12) +* 07/03: スピンコントロールで桁区切りのカンマが付かないようにした +* ロゴ編集後、リストのロゴを選択状態にしなおすように +* RGBtoYCの計算式を整数演算に (0.12a) +* 09/29: スライダの最大最小値を変更できるようにした。(0.13) * *********************************************************************/ /* ToDo: * ・ロゴデータの作成・編集機能 +* ・複数導入した時、ロゴリストを共有するように +* ・フィルタの名称が変わっていてもロゴ解析から送信できるように * * MEMO: * ・ロゴの拡大縮小ルーチン自装しないとだめかなぁ。 @@ -103,7 +109,12 @@ * WM_FILTER_INITではコンボボックスアイテムからファイルに保存。(今までどおり) * オプション設定ダイアログでのロゴデータの読み込み・削除は今までどおり。 * OKボタンが押されたときは、リストアイテムからlogodata配列を作り直す。コンボアイテムの更新は今までどおり。 -* +* +* 複数導入でのロゴデータ共有の方法のアイディア (2009/01/24) +* 初期化時にfpを走査、func_proc() に適当なメッセージを送る。(ロゴフィルタかどうか&バージョンチェック) +* データ共有は最初のフィルタがロゴデータを保持、他のフィルタは 最初のにfunc_proc()にメッセージをなげて取得。 +* ロゴリスト編集ボタンどうしよう。最初のフィルタを呼び出すのがよいか。 +* ロゴ解析も同じ方法でロゴフィルタを特定できる。 */ #include #include @@ -181,21 +192,21 @@ BOOL func_proc_add_logo(FILTER *fp,FILTER_PROC_INFO *fpip,LOGO_HEADER *lgh,int); // FILTER_DLL構造体 //---------------------------- char filter_name[] = LOGO_FILTER_NAME; -char filter_info[] = LOGO_FILTER_NAME" ver 0.12 by MakKi"; +char filter_info[] = LOGO_FILTER_NAME" ver 0.13 by MakKi"; #define track_N 10 #if track_N -TCHAR *track_name[] = { "位置 X", "位置 Y", - "深度", "Y", "Cb", "Cr", - "開始", "FadeIn", "FadeOut", "終了" }; // トラックバーの名前 -int track_default[] = { 0, 0, - 128, 0, 0, 0, - 0, 0, 0, 0, 0 }; // トラックバーの初期値 -int track_s[] = { LOGO_XY_MIN, LOGO_XY_MIN, - 0, -100, -100, -100, - LOGO_STED_MIN, 0, 0, LOGO_STED_MIN }; // トラックバーの下限値 -int track_e[] = { LOGO_XY_MAX, LOGO_XY_MAX, - 256, 100, 100, 100, - LOGO_STED_MAX, LOGO_FADE_MAX, LOGO_FADE_MAX, LOGO_STED_MAX }; // トラックバーの上限値 +TCHAR *track_name[track_N] = { "位置 X", "位置 Y", + "深度", "Y", "Cb", "Cr", + "開始", "FadeIn", "FadeOut", "終了" }; // トラックバーの名前 +int track_default[track_N] = { 0, 0, + 128, 0, 0, 0, + 0, 0, 0, 0 }; // トラックバーの初期値 +int track_s[track_N] = { LOGO_XY_MIN, LOGO_XY_MIN, + 0, -100, -100, -100, + LOGO_STED_MIN, 0, 0, LOGO_STED_MIN }; // トラックバーの下限値 +int track_e[track_N] = { LOGO_XY_MAX, LOGO_XY_MAX, + 256, 100, 100, 100, + LOGO_STED_MAX, LOGO_FADE_MAX, LOGO_FADE_MAX, LOGO_STED_MAX }; // トラックバーの上限値 #endif #define check_N 3 #if check_N @@ -1323,6 +1334,21 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason,LPVOID lpvReserved) GetPrivateProfileString("string",key,filter.track_name[i],strings[i+1],FILTER_TRACK_MAX,ini_name); filter.track_name[i] = strings[i+1]; } + // トラック デフォルト値 + for(i=0;idll_hinst,"EDIT_DLG",hdlg,EditDlgProc,(LPARAM)n); else MessageBox(hdlg,"ロゴが選択されていません",filter_name,MB_OK|MB_ICONERROR); + + // アイテムを選択しなおす + SendDlgItemMessage(hdlg,IDC_LIST,LB_SETCURSEL,n,0); } /*-------------------------------------------------------------------- @@ -780,9 +783,13 @@ static void set_bgyc(HWND hdlg) *-------------------------------------------------------------------*/ static void RGBtoYCbCr(PIXEL_YC *ycp,const PIXEL *rgb) { - ycp->y = 0.2989*4096/256*rgb->r + 0.5866*4096/256*rgb->g + 0.1145*4096/256*rgb->b +0.5; - ycp->cb = -0.1687*4096/256*rgb->r - 0.3312*4096/256*rgb->g + 0.5000*4096/256*rgb->b +0.5; - ycp->cr = 0.5000*4096/256*rgb->r - 0.4183*4096/256*rgb->g - 0.0816*4096/256*rgb->b +0.5; + // ycp->y = 0.2989*4096/256*rgb->r + 0.5866*4096/256*rgb->g + 0.1145*4096/256*rgb->b +0.5; + // ycp->cb = -0.1687*4096/256*rgb->r - 0.3312*4096/256*rgb->g + 0.5000*4096/256*rgb->b +0.5; + // ycp->cr = 0.5000*4096/256*rgb->r - 0.4183*4096/256*rgb->g - 0.0816*4096/256*rgb->b +0.5; + + ycp->y = (( 4918*rgb->r+354)>>10)+(( 9655*rgb->g+585)>>10)+(( 1875*rgb->b+523)>>10); + ycp->cb = ((-2775*rgb->r+240)>>10)+((-5449*rgb->g+515)>>10)+(( 8224*rgb->b+256)>>10); + ycp->cr = (( 8224*rgb->r+256)>>10)+((-6887*rgb->g+110)>>10)+((-1337*rgb->b+646)>>10); } //*/ diff --git a/readme.txt b/readme.txt index bc273f8..faa8596 100644 --- a/readme.txt +++ b/readme.txt @@ -1,5 +1,5 @@ ----------------------------------------------------------------------- - 透過性ロゴ フィルタプラグイン ver0.12 by MakKi + 透過性ロゴ フィルタプラグイン ver0.13 by MakKi ----------------------------------------------------------------------- 【機能】 @@ -88,19 +88,30 @@ ・プレビュー背景色 プレビューの背景色を変更します - ○フィルタ名、パラメタ名の変更方法 + ○フィルタ名、パラメタ名、トラックバーの最大最小値の変更方法 - フィルタのファイル名+.ini(*.auf.ini)というファイルを作成し、[string]セクションで指定します。 - 次の例を参考に指定してください。 + フィルタのファイル名+.ini(デフォルトではdelogo.auf.ini)という + ファイルを作成し、フィルタ名とパラメタ名は[string]セクション、 + スライダ(トラックバー)の最大最小値は[int]セクションで指定します。 + スライダ、チェックボックスの指定は、一番上を0とした番号でおこないます。 + + 次の例では、フィルタ名「透過性ロゴ」を「フィルタの名称」、 + 「位置Y」を「トラック1」、「ロゴ付加モード」を「チェック0」、 + また「開始」スライダの範囲を -512〜512 に、デフォルトを128に変更しています。 例:delogo.auf.ini [string] name=フィルタの名称 track1=トラック1 - track5=トラック5 check0=チェック0 + [int] + track6_min=-512 + track6_max=512 + track6_def=128 フィルタの名称を変更した場合、ロゴ解析フィルタから直接データを送信できなくなります。 + また、スライダの最大最小値を変更し、本来指定できないような値を指定した場合、 + フィルタが正常に動作しなくなる場合があります。 【注意】 @@ -131,6 +142,7 @@ 【更新履歴】 + 2009/01/24 ver 0.13 ・スライダの最大最小デフォルト値を変更できるようにした 2008/08/15 ver 0.12a ・スピンコントロールで桁区切りのカンマが付かないようにした ・ロゴ編集後、リストのロゴを選択状態にしなおすようにした ・RGBtoYCの計算式を整数演算にした