Пример #1
0
 public async void FillAsync(HistoRaw value)
 {
     ClearAsync();
     //smooth the histogramm
     value.luma  = SmoothHistogram(value.luma);
     value.red   = SmoothHistogram(value.red);
     value.green = SmoothHistogram(value.green);
     value.blue  = SmoothHistogram(value.blue);
     //create a collection point
     int max = value.luma.Max();
     // first point (lower-left corner)
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
     {
         PointsL.Add(new Point(0, max));
         PointsR.Add(new Point(0, max));
         PointsG.Add(new Point(0, max));
         PointsB.Add(new Point(0, max));
         // middle points
         for (int i = 0; i < value.luma.Length; i++)
         {
             PointsL.Add(new Point(i, max - value.luma[i]));
             PointsR.Add(new Point(i, max - value.red[i]));
             PointsG.Add(new Point(i, max - value.green[i]));
             PointsB.Add(new Point(i, max - value.blue[i]));
         }
         // last point (lower-right corner)
         PointsL.Add(new Point(value.luma.Length - 1, max));
         PointsR.Add(new Point(value.luma.Length - 1, max));
         PointsG.Add(new Point(value.luma.Length - 1, max));
         PointsB.Add(new Point(value.luma.Length - 1, max));
     });
 }
Пример #2
0
 public async void ClearAsync()
 {
     await CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
     {
         if (PointsL.Count > 0)
         {
             PointsL.Clear();
             PointsR.Clear();
             PointsG.Clear();
             PointsB.Clear();
         }
     });
 }