www.gusucode.com > 基于dwt的视频数字水印源代码 > 基于dwt的视频数字水印源代码\code\HaYDWT\WatRecover.cpp
//Download by http://www.NewXing.com //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "WatRecover.h" #include "EmbedRecoverProcess.h" #include "Main.h" #include "Common.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma link "RzListVw" #pragma link "RzPrgres" #pragma link "RzButton" #pragma link "RzEdit" #pragma link "RzPanel" #pragma link "RzRadChk" #pragma resource "*.dfm" TFormRecover *FormRecover; //--------------------------------------------------------------------------- __fastcall TFormRecover::TFormRecover(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TFormRecover::FormCreate(TObject *Sender) { cancelRecover = false; AllFrames = false; } //--------------------------------------------------------------------------- void __fastcall TFormRecover::FormClose(TObject *Sender, TCloseAction &Action) { Action = caFree; } //--------------------------------------------------------------------------- void __fastcall TFormRecover::ButtonRecoverClick(TObject *Sender) { RecoverWatermarkAVI_Lifting( this->Handle, FormMain->sRWInputFile, // watermark inputs FormMain->pRWbmpImage, FormMain->RWImageType, FormMain->Gray_Image_RW, FormMain->Gray_Image_RW_Width, FormMain->Gray_Image_RW_Height, // Key Image inputs FormMain->pRWKeybmpImage, FormMain->RWKImageType, FormMain->Gray_Image_RW_Key, FormMain->Gray_Image_RW_Key_Width, FormMain->Gray_Image_RW_Key_Height, // embed inputs FormMain->BetaFactorRW, FormMain->DWTLevelsRW, // wavelet tansform level FormMain->LevelEmbedRW, // in which level watermark has been embedded false, // Only selected frame FrameNo); } //--------------------------------------------------------------------------- void __fastcall TFormRecover::ButtonCancelClick(TObject *Sender) { cancelRecover = true; } //--------------------------------------------------------------------------- void __fastcall TFormRecover::RadioButtonAllFramesClick(TObject *Sender) { if (RadioButtonAllFrames->Checked) { if (FormMain->RWImageType == Img_NONE) { MessageDlg("The original watermark image does not exist. Go back and load the watermark.", mtError, TMsgDlgButtons() << mbOK, 0); RadioButtonAllFrames->Checked = false; RadioButtonFrameNo->Checked = true; RadioButtonFrameNo->OnClick(Sender); return; } AllFrames = true; ButtonCalcBER->Enabled = true; ButtonRecover->Enabled = false; } } //--------------------------------------------------------------------------- void __fastcall TFormRecover::RadioButtonFrameNoClick(TObject *Sender) { if (RadioButtonFrameNo->Checked) { AllFrames = false; ButtonCalcBER->Enabled = false; ButtonRecover->Enabled = true; } } //--------------------------------------------------------------------------- void __fastcall TFormRecover::EditFrameNoChange(TObject *Sender) { FrameNo = (long)EditFrameNo->Value; } //--------------------------------------------------------------------------- void __fastcall TFormRecover::ButtonCalcBERClick(TObject *Sender) { RecoverWatermarkAVI_Lifting( this->Handle, FormMain->sRWInputFile, // watermark inputs FormMain->pRWbmpImage, FormMain->RWImageType, FormMain->Gray_Image_RW, FormMain->Gray_Image_RW_Width, FormMain->Gray_Image_RW_Height, // Key Image inputs FormMain->pRWKeybmpImage, FormMain->RWKImageType, FormMain->Gray_Image_RW_Key, FormMain->Gray_Image_RW_Key_Width, FormMain->Gray_Image_RW_Key_Height, // embed inputs FormMain->BetaFactorRW, FormMain->DWTLevelsRW, // wavelet tansform level FormMain->LevelEmbedRW, // in which level watermark has been embedded true, // All Frames FrameNo); } //--------------------------------------------------------------------------- void __fastcall TFormRecover::ButtonSaveImageClick(TObject *Sender) { if ( ImageRecover->Picture != NULL) { SaveDialog->Filter = "Bitmap Files|*.bmp|All Files|*.*"; SaveDialog->DefaultExt = ".bmp"; SaveDialog->FileName = ""; SaveDialog->FilterIndex = 0; SaveDialog->Options << ofOverwritePrompt << ofPathMustExist; if (SaveDialog->Execute()) { if (FileExists(SaveDialog->FileName.c_str())) DeleteFileA(SaveDialog->FileName.c_str()); ImageRecover->Picture->SaveToFile(SaveDialog->FileName); } } } //--------------------------------------------------------------------------- void __fastcall TFormRecover::ButtonSaveResultsClick(TObject *Sender) { TListItem *ListItem; TItemStates stateNone = TItemStates() << isNone; AnsiString str = ""; TStringList* MyList = new TStringList(); long i; if ( ListResult->Items->Count > 0) { SaveDialog->Filter = "text Files|*.txt|All Files|*.*"; SaveDialog->DefaultExt = ".txt"; SaveDialog->FileName = ""; SaveDialog->FilterIndex = 0; SaveDialog->Options << ofOverwritePrompt << ofPathMustExist; if (SaveDialog->Execute()) { if (ListResult->Items->Count > 0) { if (FileExists(SaveDialog->FileName.c_str())) DeleteFileA(SaveDialog->FileName.c_str()); MyList->Add(recAllFrames); MyList->SaveToFile(SaveDialog->FileName); } } } delete MyList; } //---------------------------------------------------------------------------