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); } }); }
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; // 最后调整 } } }
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); } }