예제 #1
0
        private void svd_pso_Click(object sender, EventArgs e)
        {
            Watermarked = new ImageCtrl();
            Bitmap res    = new Bitmap(OriginalPic.Image, new Size(watermarkedImg.Width, watermarkedImg.Height));
            Bitmap temp   = new Bitmap(RDWTImage.Image);
            Bitmap tempwm = new Bitmap(RDWTWatermark.Image);

            markedred   = new double[Hostred.GetLength(0), Hostred.GetLength(1)];
            markedblue  = new double[Hostblue.GetLength(0), Hostblue.GetLength(1)];
            markedgreen = new double[Hostgreen.GetLength(0), Hostgreen.GetLength(1)];
            for (int i = 0; i < markedred.GetLength(0); i++)
            {
                for (int j = 0; j < markedred.GetLength(1); j++)
                {
                    markedred[i, j]   = Hostred[i, j];
                    markedblue[i, j]  = Hostblue[i, j];
                    markedgreen[i, j] = Hostgreen[i, j];
                }
            }
            markedred   = svd_pso_operation(markedred, Wmred, temp, tempwm, vtWmRed, "red");
            markedgreen = svd_pso_operation(markedgreen, Wmgreen, temp, tempwm, vtWmGreen, "green");
            markedblue  = svd_pso_operation(markedblue, Wmblue, temp, tempwm, vtWmBlue, "blue");
            generateImage(markedred, markedgreen, markedblue, res);
            watermarkedImg.Image = res;
        }
예제 #2
0
 private void WaitingThread(object flag)
 {
     while (true)
     {
         if (_downloadThread.ThreadState == ThreadState.Stopped)
         {
             _downloadThread = ImageCtrl.AsyncDownload();
         }
         if (ImageCtrl.CheckCurrent((bool)flag))
         {
             this.Dispatcher.BeginInvoke(new Action(delegate
             {
                 if ((bool)flag)
                 {
                     BtnLeft_Click(null, null);
                 }
                 else
                 {
                     BtnRight_Click(null, null);
                 }
             }));
             break;
         }
         Thread.Sleep(100);
     }
 }
예제 #3
0
 public MainWindow()
 {
     InitializeComponent();
     SettingCtrl.InitializeParameter(this);
     ImageCtrl.InitializeParameter(SettingCtrl.SettingInstant, this);
     _downloadThread = ImageCtrl.AsyncDownload();
     StateSwitch(State.Busy);
     AsyncWaiting(true);
 }
예제 #4
0
 private void BtnRight_Click(object sender, RoutedEventArgs e)
 {
     if (!ImageCtrl.CheckCurrent(false))
     {
         StateSwitch(State.Busy);
         AsyncWaiting(false);
     }
     else
     {
         StateSwitch(State.BeforeSlide);
         ImageCtrl.LoadRightImage();
     }
 }
예제 #5
0
 private void BtnOK_Click(object sender, RoutedEventArgs e)
 {
     if (_state.Equals(State.Setting))
     {
         ImageCtrl.Visibility = Visibility.Visible;
         SettingCtrl.Hide();
         //Download now
         ImageCtrl.InitializeParameter(SettingCtrl.SettingInstant, this);
         _downloadThread = ImageCtrl.AsyncDownload();
         StateSwitch(State.Busy);
         AsyncWaiting(true);
     }
     else
     {
         ImageCtrl.SetWallpaper();
     }
 }
예제 #6
0
 public void CheckButton()
 {
     if (ImageCtrl.CheckMax())
     {
         BtnLeft.Visibility = Visibility.Hidden;
     }
     else
     {
         BtnLeft.Visibility = Visibility.Visible;
     }
     if (ImageCtrl.CheckMin())
     {
         BtnRight.Visibility = Visibility.Hidden;
     }
     else
     {
         BtnRight.Visibility = Visibility.Visible;
     }
     BtnSetting.Visibility = Visibility.Visible;
     BtnOK.Visibility      = Visibility.Visible;
 }