private void SaveImages(AnalyzeCompletedEventArgs e, string postfix = "") { // save images var dt = DateTime.Now; postfix = string.IsNullOrEmpty(postfix) ? "" : "_" + postfix; var scFileNamePreview = string.Format("{4}Image_{0}_{1}_{2}_{3}{5}.png", dt.ToString("yyyy-MM-dd_HH_mm_ss"), TaskImageIdents.WmfId, TaskImageIdents.IIN.GetHashCode(), "preview", e.SourceDevice, postfix); var scFileNameFull = string.Format("{4}Image_{0}_{1}_{2}_{3}{5}.png", dt.ToString("yyyy-MM-dd_HH_mm_ss"), TaskImageIdents.WmfId, TaskImageIdents.IIN.GetHashCode(), "fullframe", e.SourceDevice, postfix); if (e.IsSuccess()) { e.FullImage.Save(Path.Combine(MediaDirectory, scFileNameFull)); e.PreviewImage.Save(Path.Combine(MediaDirectory, scFileNamePreview)); } }
private void ImageAnalyzer_AnalyzeCompleted(object sender, AnalyzeCompletedEventArgs e) { //this.ImageAnalyzer = new ImageAnalyzer(PythonPath); //this.ImageAnalyzer.AnalyzeCompleted -= ImageAnalyzer_AnalyzeCompleted; //this.ImageAnalyzer.AnalyzeImage -= ImageAnalyzer_AnalyzeImage; // мы нашли подходящее изображение switch (e.SourceDevice) { case DeviceType.Scanner: //if (ScannerAnalyzeResult == null) //{ if (e.IsSuccess()) { ScannerAnalyzeResult = e; SaveImages(e); } else { //UpdateRetry(DeviceType.Scanner); //не отсылаем последнее удачное фото на главную форму... //if (ScannerAnalyzeResult != null) //если есть чего возращать, давайте вернем.. //{ // ChangeScannerState(); // AnalyzeCompletedEventArgs LastSuccess = new AnalyzeCompletedEventArgs(e.SourceDevice, e.ErrorsList, ScannerAnalyzeResult.FullImage, ScannerAnalyzeResult.PreviewImage); // ScannerImageAnalyzeCompleted(this, LastSuccess); // break; //} } ChangeScannerState(); ScannerImageAnalyzeCompleted(this, e); //e.FullImage.Save(DateTime.Now.ToString("yyyy-MM-dd-hh-mm") + ".jpg"); //} break; case DeviceType.WebCam: //if (this.WebCamAnalyzeResult == null) // Console.WriteLine("ImageAnalyzer_AnalyzeCompleted webCam entering NULL"); //else // Console.WriteLine("ImageAnalyzer_AnalyzeCompleted webCam entering " + WebCamAnalyzeResult.ToString() + " " + WebCamAnalyzeResult.IsSuccess().ToString()); //if (WebCamAnalyzeResult == null || WebCamAnalyzeResult.IsSuccess() == false) //{ // lock (webCamLockObject) // { // if (WebCamAnalyzeResult == null || WebCamAnalyzeResult.IsSuccess() == false) // { webCam.Stop(); //создадим в куче копию найденных изображений if (e.IsSuccess()) { WebCamAnalyzeResult = e; //получаем результаты работы камеры и СОХРАНЯЕМ ИХ SaveImages(e); } else { //UpdateRetry(DeviceType.WebCam); // if (WebCamAnalyzeResult != null) //если есть чего возращать, давайте вернем.. //{ // ChangeWebCamState(); // AnalyzeCompletedEventArgs LastSuccess = new AnalyzeCompletedEventArgs(e.SourceDevice, e.ErrorsList, WebCamAnalyzeResult.FullImage, WebCamAnalyzeResult.PreviewImage); // WebCamImageAnalyzeCompleted(this, LastSuccess); // break; //} } ChangeWebCamState(); WebCamImageAnalyzeCompleted(this, e); //if (WebCamState.ErrorsList == null) //{ // WebCamState.ErrorsList = new List<AnalyzeImageResultType>(); //} //if (e.ErrorsList != null) //{ // WebCamState.ErrorsList.AddRange(e.ErrorsList); // WebCamState.ErrorsList = WebCamState.ErrorsList.Distinct().ToList(); //} var Analyser = (Tevian.Analyser)ImageAnalyzer; Analyser.StopCamAnalyze(); // } // } //} break; } }