예제 #1
0
        private void NoticeFaceEvent(SnapVideoImage videoImg)
        {
            BeginInvoke((MethodInvoker) delegate()
            {
                if (videoImg != null && videoImg.Img != null)
                {
                    for (int ie = _listboxcontrolCnt + _chanegelistboxcontrolCnt - 1; ie >= 1; ie--)
                    {
                        UcSnapImage pbctrl     = null;
                        UcSnapImage pbnextctrl = null;
                        if (this.plNewSnap.Controls[ie - 1] is UcSnapImage)
                        {
                            pbctrl = (UcSnapImage)this.plNewSnap.Controls[ie - 1];
                        }
                        if (this.plNewSnap.Controls[ie] is UcSnapImage)
                        {
                            pbnextctrl = (UcSnapImage)this.plNewSnap.Controls[ie];
                        }

                        if ((pbctrl != null) && (pbnextctrl != null))
                        {
                            if (ie == _listboxcontrolCnt + _chanegelistboxcontrolCnt + 1 && pbnextctrl.pbImage.Image != null)
                            {
                                pbnextctrl.Dispose();
                            }

                            if (pbctrl.pbImage.Image != null)
                            {
                                pbnextctrl.pbImage.Image = pbctrl.pbImage.Image;
                            }
                        }
                    }

                    Bitmap newImage = new Bitmap(videoImg.Img, new Size(_pictureboxWidth, _pictureboxHeight));
                    if (this.plNewSnap.Controls[0] is UcSnapImage)
                    {
                        UcSnapImage firstctrl = (UcSnapImage)this.plNewSnap.Controls[0];
                        if (firstctrl != null)
                        {
                            firstctrl.pbImage.Image = newImage;
                        }
                    }

                    // log
                    var currentCount = _verifyTask.GetCount();
                    Log4NetHelper.Instance.Info("等待进行比对的数量:" + currentCount.ToString());

                    _verifyTask.AddSnapImage(videoImg);
                }
            });
        }
예제 #2
0
        private void VideoAlert_SizeChanged(object sender, EventArgs e)
        {
            if (WindowState == FormWindowState.Normal && this.Created)
            {
                if (this.plNewSnap.Controls.Count == _listboxcontrolCnt + _chanegelistboxcontrolCnt)
                {
                    int backchanegelistboxcontrolCnt = _chanegelistboxcontrolCnt;
                    _chanegelistboxcontrolCnt = 0; // 优先调整
                    for (int index = _listboxcontrolCnt + backchanegelistboxcontrolCnt; index >= _listboxcontrolCnt + 1; index--)
                    {
                        string      pictureboxKey = "no" + index.ToString();
                        UcSnapImage pbox          = (UcSnapImage)this.plNewSnap.Controls[pictureboxKey];
                        if (pbox != null)
                        {
                            if (pbox.pbImage != null)
                            {
                                pbox.pbImage.Dispose();
                            }
                            this.plNewSnap.Controls.RemoveByKey(pictureboxKey);
                        }
                    }
                }
            }
            else if (WindowState == FormWindowState.Maximized && this.Created)
            {
                if (this.plNewSnap.Controls.Count == _listboxcontrolCnt)
                {
                    int newlistboxcontrolCnt = (int)Math.Round(this.plNewSnap.Width * 1.0D / _pictureboxWidth);
                    for (int index = _listboxcontrolCnt + 1; index <= newlistboxcontrolCnt; index++)
                    {
                        UcSnapImage picturebox = new UcSnapImage();
                        picturebox.Name           = "no" + index.ToString();
                        picturebox.Width          = _pictureboxWidth;
                        picturebox.Height         = _pictureboxHeight;
                        picturebox.SearchEvent   += UcSnapImg_SearchEvent;
                        picturebox.AddModelEvent += UcSnapImg_AddModelEvent;

                        picturebox.Left = (index - 1) * _pictureboxWidth;
                        picturebox.Top  = 1;
                        this.plNewSnap.Controls.Add(picturebox);
                    }
                    _chanegelistboxcontrolCnt = newlistboxcontrolCnt - _listboxcontrolCnt; // 最后调整
                }
            }
        }
예제 #3
0
        private void InitialSnapControl()
        {
            _listboxcontrolCnt = (int)(Math.Round(this.plNewSnap.Width * 1.0D / _pictureboxWidth));

            this.plNewSnap.Controls.Clear();
            for (int index = 1; index <= _listboxcontrolCnt; index++)
            {
                UcSnapImage picturebox = new UcSnapImage();
                picturebox.Name           = "no" + index.ToString();
                picturebox.Width          = _pictureboxWidth;
                picturebox.Height         = _pictureboxHeight;
                picturebox.SearchEvent   += UcSnapImg_SearchEvent;
                picturebox.AddModelEvent += UcSnapImg_AddModelEvent;

                picturebox.Left = (index - 1) * _pictureboxWidth;
                picturebox.Top  = 1;
                this.plNewSnap.Controls.Add(picturebox);
            }
        }