protected virtual void OnImageAvailable(ImageAvailableEventArgs e) { var handler = ImageAvailable; if (handler != null) { handler(this, e); } }
void CameraVehicle_ImageAvailable(object sender, ImageAvailableEventArgs e) { //long tick = DateTime.UtcNow.GetUnixTimestamp(); //Debug.WriteLine("vehicle_ImageAvailable,本机时间{0},远程时间{1},相差{2}毫秒。", tick, e.Tick, tick - e.Tick); //if (Math.Abs(tick - e.Tick) > 0) //{ // MessageBox.Show("The computer's time and the phone's time differ too much."); // App.Current.Shutdown(1); //} lastImageTick = Environment.TickCount; currentTimeTextBlock.Text = e.Tick.ToString(); Image <Bgr, byte> img = e.Image; if (showGridCheckBox.IsChecked.GetValueOrDefault(false)) { imageControl.Source = DrawGrid(img).ToBitmapSource(); } else { imageControl.Source = img.ToBitmapSource(); } if (analysisWorker.IsBusy == false) { if (getBackgroundCheckBox.IsChecked.GetValueOrDefault(false)) { if (saveToFileCheckBox.IsEnabled) { Task.Factory.StartNew(obj => { ImageAvailableEventArgs eArgs = (ImageAvailableEventArgs)obj; eArgs.Image.Save(Path.Combine("images", eArgs.Tick + ".jpg")); }, e); } analysisWorker.RunWorkerAsync(e); } else if (saveToFileCheckBox.IsChecked.GetValueOrDefault(false) && saveToFileCheckBox.IsEnabled) { Task.Factory.StartNew(obj => { ImageAvailableEventArgs eArgs = (ImageAvailableEventArgs)obj; eArgs.Image.Save(Path.Combine("images", eArgs.Tick + ".jpg")); }, e); } } }