/// <summary> /// 视频截图,默认BMP格式 /// </summary> /// <param name="saveImageFilePath">图片格式存储全路径;eg:D:\20170913162510.jpeg</param> /// <param name="imageType">图片格式</param> /// <returns>操作结果</returns> public OperatedResult Capture(string saveImageFilePath, CaptureImageType imageType = CaptureImageType.BMP) { if (!IsPreviewing) { return(OperatedResult.Fail("尚未处于视频预览状态,不能进行视频截图操作.")); } string _captureImageFile = string.IsNullOrEmpty(saveImageFilePath) != true ? saveImageFilePath : string.Format(@"{0}\{1}.{2}", CaptureFolders, DateTime.Now.ToString("yyyyMMddHHmmss"), imageType.ToString().ToLower()); bool _result = false; switch (imageType) { case CaptureImageType.BMP: _result = CHCNetSDK.NET_DVR_CapturePicture(previewId, _captureImageFile); break; case CaptureImageType.JPEG: CHCNetSDK.NET_DVR_JPEGPARA _jpegParamter = new CHCNetSDK.NET_DVR_JPEGPARA(); _jpegParamter.wPicQuality = 0; //图像质量 Image quality _jpegParamter.wPicSize = 0xff; //抓图分辨率 Picture size: 2- 4CIF,0xff- Auto(使用当前码流分辨率),抓图分辨率需要设备支持,更多取值请参考SDK文档 _result = CHCNetSDK.NET_DVR_CaptureJPEGPicture(UserId, CurPreviewChannelNo, ref _jpegParamter, _captureImageFile); break; } return(_result == true?OperatedResult.Success(_captureImageFile) : OperatedResult.Fail(LastErrorMessage)); }
private void UpdateBtnStatus(CaptureImageType newStatus) { captureImageType = newStatus; switch (captureImageType) { case CaptureImageType.None: StopPreview(); txtDetail.Text = ""; txtScore.Text = ""; txtUsrename.Text = ""; LvFaceList.Clear(); LvFaceList.Enabled = true; ImageBoxCapturedImage.Image = null; BtnCancel.Enabled = false; BtnStartPreview.Enabled = true; BtnStartPreview.Text = "New Person"; BtnSaveFace.Enabled = false; BtnCheckFace.Enabled = false; BtnListPeople.Enabled = true; BtnCaptureFace.Enabled = false; if (tracker != null) { tracker.Dispose(); tracker.TrackingFaces.Clear(); } if (people != null) { people.Clear(); } selectedPerson = null; //ListFaceFromServer(); UpdateDeleteBtn(); break; case CaptureImageType.NewPerson: LvFaceList.Clear(); LvFaceList.Enabled = false; BtnCancel.Enabled = true; BtnStartPreview.Enabled = false; BtnSaveFace.Enabled = false; BtnCheckFace.Enabled = false; BtnListPeople.Enabled = false; BtnCaptureFace.Enabled = true; UpdateDeleteBtn(); break; case CaptureImageType.CurrentPerson: BtnCancel.Enabled = true; BtnStartPreview.Enabled = true; BtnStartPreview.Text = "Start Preview"; UpdateSaveBtn(); BtnCheckFace.Enabled = false; BtnListPeople.Enabled = false; BtnCaptureFace.Enabled = false; UpdateDeleteBtn(); break; case CaptureImageType.UpdatePerson: LvFaceList.Clear(); LvFaceList.Enabled = false; BtnCancel.Enabled = true; BtnStartPreview.Enabled = false; BtnSaveFace.Enabled = false; BtnCheckFace.Enabled = false; BtnListPeople.Enabled = false; BtnCaptureFace.Enabled = true; UpdateDeleteBtn(); break; case CaptureImageType.NewPersonCaptured: LvFaceList.Enabled = true; LvFaceList.Items[0].Selected = true; LvFaceList.Items[0].Checked = true; BtnCancel.Enabled = true; BtnStartPreview.Enabled = false; UpdateSaveBtn(); UpdateCheckImageBtn(); BtnListPeople.Enabled = false; BtnCaptureFace.Enabled = true; UpdateDeleteBtn(); break; case CaptureImageType.UpdatePersonCaptured: LvFaceList.Enabled = true; LvFaceList.Items[0].Selected = true; LvFaceList.Items[0].Checked = true; BtnCancel.Enabled = true; BtnStartPreview.Enabled = false; UpdateSaveBtn(); UpdateCheckImageBtn(); BtnListPeople.Enabled = false; BtnCaptureFace.Enabled = true; UpdateDeleteBtn(); break; } TxtErrorMessage.Text = captureImageType.ToString(); }