Example #1
0
 public static async Task <BitmapImage> SynthImageTask(SynthImage synthImage, Layer[] layers, Palette palette)
 {
     return(await Task.Run(() =>
     {
         return synthImage.GetIndexImage(layers, palette);
     }));
 }
        private void OpenSynthImageWindow(SynthImage synthImage)
        {
            SynthImageView window      = new SynthImageView(synthImage);
            var            currenCount = ListBoxLayers.Items.Count;

            window.Show();
            if (ListBoxLayers.Items.Count != currenCount)
            {
                ListBoxLayers.SelectedIndex = LayerManager.instance.SelectImage;
            }
        }
        public SynthImageView(SynthImage synthImage)
        {
            InitializeComponent();
            if (synthImage.GetType() == typeof(NDVI))
            {
                Title  = "NDVI";
                layers = new Layer[2] {
                    null, null
                };
                BandAButton.Content    = "NIR";
                BandGButton.Visibility = Visibility.Hidden;
                BandBButton.Visibility = Visibility.Hidden;
                CoeffName.Visibility   = Visibility.Hidden;
                CoeffValue.Visibility  = Visibility.Hidden;
            }
            else if (synthImage.GetType() == typeof(IPVI))
            {
                Title  = "IPVI";
                layers = new Layer[2] {
                    null, null
                };
                BandAButton.Content    = "NIR";
                BandGButton.Visibility = Visibility.Hidden;
                BandBButton.Visibility = Visibility.Hidden;
                CoeffName.Visibility   = Visibility.Hidden;
                CoeffValue.Visibility  = Visibility.Hidden;
            }
            else if (synthImage.GetType() == typeof(SAVI))
            {
                Title  = "SAVI";
                layers = new Layer[2] {
                    null, null
                };
                BandAButton.Content    = "NIR";
                BandGButton.Visibility = Visibility.Hidden;
                BandBButton.Visibility = Visibility.Hidden;
                CoeffName.Text         = "L";
            }
            else if (synthImage.GetType() == typeof(MSAVI))
            {
                Title  = "MSAVI";
                layers = new Layer[2] {
                    null, null
                };
                BandAButton.Content    = "NIR";
                BandGButton.Visibility = Visibility.Hidden;
                BandBButton.Visibility = Visibility.Hidden;
                CoeffName.Visibility   = Visibility.Hidden;
                CoeffValue.Visibility  = Visibility.Hidden;
            }
            else if (synthImage.GetType() == typeof(GEMI))
            {
                Title  = "GEMI";
                layers = new Layer[2] {
                    null, null
                };
                BandAButton.Content    = "NIR";
                BandGButton.Visibility = Visibility.Hidden;
                BandBButton.Visibility = Visibility.Hidden;
                CoeffName.Visibility   = Visibility.Hidden;
                CoeffValue.Visibility  = Visibility.Hidden;
            }
            else if (synthImage.GetType() == typeof(ARVI))
            {
                Title  = "SAVI";
                layers = new Layer[3] {
                    null, null, null
                };
                BandAButton.Content    = "NIR";
                BandBButton.Visibility = Visibility.Hidden;
                BandGButton.Content    = "B";
                BandGButton.Background = new SolidColorBrush(Color.FromRgb(128, 124, 218));
                CoeffName.Text         = "a";
            }
            else if (synthImage.GetType() == typeof(BlendChanel))
            {
                Title  = "Смешивание каналов";
                layers = new Layer[3] {
                    null, null, null
                };
                BandBButton.Visibility     = Visibility.Hidden;
                CoeffName.Visibility       = Visibility.Hidden;
                CoeffValue.Visibility      = Visibility.Hidden;
                SaveResButton.Visibility   = Visibility.Hidden;
                PaletteComboBox.Visibility = Visibility.Hidden;

                BandAButton.Content    = "R";
                BandAButton.Background = new SolidColorBrush(Color.FromRgb(218, 124, 124));
                BandRButton.Content    = "G";
                BandRButton.Background = new SolidColorBrush(Color.FromRgb(145, 218, 124));
                BandGButton.Content    = "B";
                BandGButton.Background = new SolidColorBrush(Color.FromRgb(128, 124, 218));
                CoeffName.Text         = "a";
            }
            else
            {
                MessageBox.Show("Произошла внуренняя ошибка", "Ошибка", MessageBoxButton.OK,
                                MessageBoxImage.Error);
                this.Close();
            }

            defaultName[0] = BandAButton.Content.ToString();
            defaultName[1] = BandRButton.Content.ToString();
            defaultName[2] = BandGButton.Content.ToString();
            defaultName[3] = BandBButton.Content.ToString();

            ListBoxLayers.ItemsSource   = LayerManager.instance.layers;
            ListBoxLayers.SelectedIndex = LayerManager.instance.SelectImage;
            this.synthImage             = synthImage;
        }