示例#1
0
 private void FrmEditorFaceBackList_Load(object sender, EventArgs e)
 {
     cbSex.SelectedIndex = 0;
     if (FACE != null)
     {
         this.Text   = "修改人脸黑名单";
         tbName.Text = FACE.Name;
         int sex = FACE.Sex == null?0:(int)FACE.Sex;
         if (sex < 0 || sex > 2)
         {
             sex = 0;
         }
         cbSex.SelectedIndex = sex;
         tbPicPath.Text      = FACE.FacePic;
         if (FACE.Description != null)
         {
             tbDesc.Text = Encoding.UTF8.GetString(FACE.Description);
         }
         if (!string.IsNullOrWhiteSpace(FACE.FacePic))
         {
             WebImageReader.ReadImageAsync(FACE.FacePic, new WebImageReader.ReadImageCallBack((i, ee) =>
             {
                 try
                 {
                     this.Invoke(new Action(() =>
                     {
                         if (picBox.Image != null)
                         {
                             picBox.Image.Dispose();
                             picBox.Image = null;
                         }
                         if (i != null)
                         {
                             picBox.Image = i;
                         }
                         else if (ee != null)
                         {
                             throw ee;
                         }
                     }));
                 }
                 catch (Exception ex)
                 {
                     log.Error("加载人脸失败:", ex);
                     WinInfoHelper.ShowInfoWindow(this, "加载人脸失败:" + ex.Message);
                 }
             }));
         }
     }
     else
     {
         this.Text = "添加人脸黑名单";
     }
 }
示例#2
0
        private void dgvData_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
            {
                string pic  = "";
                string name = dgvData.Columns[e.ColumnIndex].Name;
                if (name == "Col_CapPic" || name == "Col_OrigPic")
                {
                    object obj = dgvData.Rows[e.RowIndex].Cells[e.ColumnIndex].Value;
                    pic = obj == null ? null : (string)obj;
                }
                if (!string.IsNullOrWhiteSpace(pic))
                {
                    try
                    {
                        if (picImage.Image != null)
                        {
                            picImage.Image.Dispose();
                            picImage.Image = null;
                        }

                        WebImageReader.ReadImageAsync(pic, (o, ee) =>
                        {
                            if (o == null)
                            {
                                log.Error("获取图片错误:", ee);
                                WinInfoHelper.ShowInfoWindow(this, "获取图片错误:" + ee.Message);
                            }
                            else
                            {
                                this.Invoke(new Action(() =>
                                {
                                    if (picImage.Image != null)
                                    {
                                        picImage.Image.Dispose();
                                        picImage.Image = null;
                                    }
                                    picImage.Image     = o;
                                    panelImage.Visible = true;
                                    panelImage.BringToFront();
                                }));
                            }
                        });
                    }
                    catch (Exception ex)
                    {
                        log.Error("初始化图片路径错误:", ex);
                        WinInfoHelper.ShowInfoWindow(this, "获取图片错误:" + ex.Message);
                    }
                }
            }
        }
示例#3
0
 private void listFaces_ItemSelectionChanged(object sender, ListViewItemSelectionChangedEventArgs e)
 {
     if (listFaces.SelectedItems.Count > 0)
     {
         Maticsoft.Model.IMS_FACE_BLACKLIST bl = (Maticsoft.Model.IMS_FACE_BLACKLIST)listFaces.SelectedItems[0].Tag;
         tbName.Text = bl.Name;
         try
         {
             tbDesc.Text = Encoding.UTF8.GetString(bl.Description);
         }
         catch (Exception)
         {
         }
         if (bl.Sex == null)
         {
             bl.Sex = 0;
         }
         if (bl.Sex == 0)
         {
             tbSex.Text = "未知";
         }
         else if (bl.Sex == 1)
         {
             tbSex.Text = "男";
         }
         else
         {
             tbSex.Text = "女";
         }
         if (picBox.Image != null)
         {
             picBox.Image.Dispose();
             picBox.Image = null;
         }
         WebImageReader.ReadImageAsync(bl.FacePic, new WebImageReader.ReadImageCallBack((i, ee) =>
         {
             if (i != null)
             {
                 lock (this)
                 {
                     this.Invoke(new Action(() =>
                     {
                         picBox.Image = i;
                     }));
                 }
             }
         }));
     }
 }
示例#4
0
        private void AddFace(Maticsoft.Model.IMS_FACE_BLACKLIST bl, ListViewItem item = null)
        {
            ListViewItem lvi = null;

            if (item != null)
            {
                lvi = item;
            }
            else
            {
                lvi = new ListViewItem(bl.Name);
                listFaces.Items.Add(lvi);
            }
            lvi.Tag = bl;
            if (lvi.ImageKey == null || lvi.ImageKey == "")
            {
                lvi.ImageKey = "loading";
            }
            if (lvi.ImageKey != "loading")
            {
                Image image = imageList.Images[lvi.ImageKey];
                imageList.Images.RemoveByKey(lvi.ImageKey);
                image.Dispose();
            }
            WebImageReader.ReadImageAsync(bl.FacePic, new WebImageReader.ReadImageCallBack((i, e) =>
            {
                if (i != null)
                {
                    lock (this)
                    {
                        this.Invoke(new Action(() =>
                        {
                            string k = Guid.NewGuid().ToString("N");
                            imageList.Images.Add(k, i);
                            lvi.ImageKey = k;
                        }));
                    }
                }
            }));
        }
示例#5
0
        public System.Drawing.Image CaptureImage()
        {
            System.Drawing.Image image = null;
            if (_ipcamera == null)
            {
                return(image);
            }
            onvif_sdk.LOGIN_INFO loginInfo = new onvif_sdk.LOGIN_INFO();
            loginInfo.ip       = _ipcamera.IP;
            loginInfo.port     = _ipcamera.CapturePort;
            loginInfo.user     = _ipcamera.User;
            loginInfo.password = _ipcamera.Password;

            IntPtr ptr = Marshal.AllocHGlobal(Marshal.SizeOf(typeof(onvif_sdk.HTTP_URL)));

            try
            {
                int outCount = 0;
                int ret      = onvif_sdk.onvif_get_snapshot_media_urls(loginInfo, ptr, 1, ref outCount);
                if (ret == onvif_sdk.ONVIF_RET_OK && outCount > 0)
                {
                    onvif_sdk.HTTP_URL url = (onvif_sdk.HTTP_URL)Marshal.PtrToStructure(ptr, typeof(onvif_sdk.HTTP_URL));
                    log.Info(_ipcamera.IP + " Onvif截图地址为:" + url.url);
                    image = WebImageReader.ReadImage(url.url, loginInfo.user, loginInfo.password);
                }
                else if (ret == onvif_sdk.ONVIF_RET_OK)
                {
                }
                else
                {
                    throw new Exception("截图失败,错误码:" + ret + " 信息:" + onvif_sdk.onvif_get_error_msg(ret));
                }
            }
            finally
            {
                Marshal.FreeHGlobal(ptr);
            }
            return(image);
        }