Пример #1
0
 private void OpenMenu_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         var op = new OpenFileDialog
         {
             RestoreDirectory = true,
             InitialDirectory = "C:\\",
             FilterIndex      = 1,
             Title            = "Alegeti poza",
             Filter           = "|*.jpg;*.jpeg;*.png|" +
                                "(*.jpg;*.jpeg)|*.jpg;*.jpeg|" +
                                "(*.png)|*.png"
         };
         if (op.ShowDialog() == true)
         {
             Stream imageStreamSource = new FileStream(op.FileName, FileMode.Open, FileAccess.Read,
                                                       FileShare.Read);
             //PixelFormat
             var decoder = new JpegBitmapDecoder(imageStreamSource, BitmapCreateOptions.None,
                                                 BitmapCacheOption.Default);
             BitmapSource bitmapSource = decoder.Frames[0];
             BmsEngine.Init(bitmapSource);
             ImgPhoto.Source = _rgbBms = bitmapSource;
             _rgbValues      = BmsEngine.GetRgbData();
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show("Eroare: " + ex.Message, "Efecte poze", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
Пример #2
0
 private void DesaturateMenu_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (_desaturateBms == null)
         {
             var newJpegBytes = BmsEngine.GetRgbData();
             for (var i = 0; i < BmsEngine.DataLength; i += 4)
             {
                 var minRgb = Math.Min(Math.Min(_rgbValues[i + (int)Rgb.Blue], _rgbValues[i + (int)Rgb.Green]),
                                       _rgbValues[i + (int)Rgb.Red]);
                 var maxRgb = Math.Max(Math.Max(_rgbValues[i + (int)Rgb.Blue], _rgbValues[i + (int)Rgb.Green]),
                                       _rgbValues[i + (int)Rgb.Red]);
                 var desatVal = (byte)((minRgb + maxRgb) / 2);
                 newJpegBytes[i + (int)Rgb.Blue]  = desatVal;
                 newJpegBytes[i + (int)Rgb.Green] = desatVal;
                 newJpegBytes[i + (int)Rgb.Red]   = desatVal;
             }
             _desaturateBms = BmsEngine.CloneBms(newJpegBytes);
         }
         ImgPhoto.Source = _desaturateBms;
     }
     catch (Exception ex)
     {
         MessageBox.Show("Eroare: " + ex.Message, "Efecte poze", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
Пример #3
0
 private void YellowMenu_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (_yellowBms == null)
         {
             var newJpegBytes = BmsEngine.GetRgbData();
             for (var i = 0; i < BmsEngine.DataLength; i += 4)
             {
                 newJpegBytes[i + (int)Rgb.Blue] = 0;  //Yellow=R+G;
             }
             _yellowBms = BmsEngine.CloneBms(newJpegBytes);
         }
         ImgPhoto.Source = _yellowBms;
     }
     catch (Exception ex)
     {
         MessageBox.Show("Eroare: " + ex.Message, "Efecte poze", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }
Пример #4
0
 private void GrayMenu_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (_grayBms == null)
         {
             var newJpegBytes = BmsEngine.GetRgbData();
             for (var i = 0; i < BmsEngine.DataLength; i += 4)
             {
                 var grayVal = 0.114 * _rgbValues[i + (int)Rgb.Blue] + 0.587 * _rgbValues[i + (int)Rgb.Green] +
                               0.299 * _rgbValues[i + (int)Rgb.Red];
                 newJpegBytes[i + (int)Rgb.Blue]  = (byte)grayVal; //blue
                 newJpegBytes[i + (int)Rgb.Green] = (byte)grayVal; //green
                 newJpegBytes[i + (int)Rgb.Red]   = (byte)grayVal; //red
             }
             _grayBms = BmsEngine.CloneBms(newJpegBytes);
         }
         ImgPhoto.Source = _grayBms;
     }
     catch (Exception ex)
     {
         MessageBox.Show("Eroare: " + ex.Message, "Efecte poze", MessageBoxButton.OK, MessageBoxImage.Error);
     }
 }