From a56151660414480962ae16cee2e1850743950663 Mon Sep 17 00:00:00 2001 From: wanggang <76527413@qq.com> Date: Fri, 21 Feb 2020 11:16:06 +0800 Subject: [PATCH] =?UTF-8?q?CVR-100U=E8=BA=AB=E4=BB=BD=E8=AF=81=E8=AF=BB?= =?UTF-8?q?=E5=8D=A1=E5=99=A8=E6=A3=80=E6=B5=8B=E3=80=81=E6=8E=A5=E5=85=A5?= =?UTF-8?q?=E3=80=81=E8=AF=BB=E5=8F=96=E3=80=81=E6=98=BE=E7=A4=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Former-commit-id: d1db9dc5a69a83caf6a2e22093cc8b81cccfcfbc --- labs/CameraCardDemo/CameraCardDemo.csproj | 2 +- labs/CameraCardDemo/DirectShowLib-2005.dll | Bin 303104 -> 0 bytes .../CameraCardDemo/Infrastructure/IdcModel.cs | 20 + labs/CameraCardDemo/MainForm.Designer.cs | 558 +++++++++++++++--- labs/CameraCardDemo/MainForm.cs | 281 +++++++-- labs/CameraCardDemo/MainForm.resx | 3 + 6 files changed, 716 insertions(+), 148 deletions(-) delete mode 100644 labs/CameraCardDemo/DirectShowLib-2005.dll create mode 100644 labs/CameraCardDemo/Infrastructure/IdcModel.cs diff --git a/labs/CameraCardDemo/CameraCardDemo.csproj b/labs/CameraCardDemo/CameraCardDemo.csproj index 64ce2a8e..224ac7b5 100644 --- a/labs/CameraCardDemo/CameraCardDemo.csproj +++ b/labs/CameraCardDemo/CameraCardDemo.csproj @@ -78,6 +78,7 @@ + Form @@ -122,7 +123,6 @@ - PreserveNewest diff --git a/labs/CameraCardDemo/DirectShowLib-2005.dll b/labs/CameraCardDemo/DirectShowLib-2005.dll deleted file mode 100644 index ba11a16058f764762a06d51865eef51b53d03d12..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 303104 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 diff --git a/labs/CameraCardDemo/Infrastructure/IdcModel.cs b/labs/CameraCardDemo/Infrastructure/IdcModel.cs new file mode 100644 index 00000000..77cdbd46 --- /dev/null +++ b/labs/CameraCardDemo/Infrastructure/IdcModel.cs @@ -0,0 +1,20 @@ +namespace CameraCardDemo.Infrastructure +{ + internal class IdcModel + { + public string Name { get; internal set; } + public string CnName { get; internal set; } + public string Sex { get; internal set; } + public string Nation { get; internal set; } + public string NationCode { get; internal set; } + public string Birthday { get; internal set; } + public string IdCardNo { get; internal set; } + public string Address { get; internal set; } + public string Department { get; internal set; } + public string ValidDateStart { get; internal set; } + public string ValidDateEnd { get; internal set; } + public string SamID { get; internal set; } + public string Type { get; internal set; } + public string Image { get; internal set; } + } +} \ No newline at end of file diff --git a/labs/CameraCardDemo/MainForm.Designer.cs b/labs/CameraCardDemo/MainForm.Designer.cs index 9ae27136..75201bf9 100644 --- a/labs/CameraCardDemo/MainForm.Designer.cs +++ b/labs/CameraCardDemo/MainForm.Designer.cs @@ -29,6 +29,39 @@ private void InitializeComponent() { System.Windows.Forms.TabPage tab1; + this.idcGroupBox = new System.Windows.Forms.GroupBox(); + this.idcSamIDValue = new System.Windows.Forms.Label(); + this.idcSamIDLabel = new System.Windows.Forms.Label(); + this.idcValidDateValue = new System.Windows.Forms.Label(); + this.idcValidDateLabel = new System.Windows.Forms.Label(); + this.idcDepartmentValue = new System.Windows.Forms.Label(); + this.idcDepartmentLabel = new System.Windows.Forms.Label(); + this.idcIdCardNoValue = new System.Windows.Forms.Label(); + this.idcIdCardNoLabel = new System.Windows.Forms.Label(); + this.idcBirthdayValue = new System.Windows.Forms.Label(); + this.idcBirthdayLabel = new System.Windows.Forms.Label(); + this.idcNationCodeValue = new System.Windows.Forms.Label(); + this.idcNationCodeLabel = new System.Windows.Forms.Label(); + this.idcNationValue = new System.Windows.Forms.Label(); + this.idcNationLabel = new System.Windows.Forms.Label(); + this.idcSexValue = new System.Windows.Forms.Label(); + this.idcSexLabel = new System.Windows.Forms.Label(); + this.idcAddressValue = new System.Windows.Forms.Label(); + this.idcAddressLabel = new System.Windows.Forms.Label(); + this.idcCnNameValue = new System.Windows.Forms.Label(); + this.idcCnNameLabel = new System.Windows.Forms.Label(); + this.idcNameValue = new System.Windows.Forms.Label(); + this.idcNameLable = new System.Windows.Forms.Label(); + this.idcPicture = new System.Windows.Forms.PictureBox(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.shotBtn = new System.Windows.Forms.Button(); + this.log = new System.Windows.Forms.RichTextBox(); + this.panel1 = new System.Windows.Forms.Panel(); + this.nameValue = new System.Windows.Forms.TextBox(); + this.nameLabel = new System.Windows.Forms.Label(); + this.classSecletor = new System.Windows.Forms.ComboBox(); + this.classLabel = new System.Windows.Forms.Label(); this.cameraSelector = new System.Windows.Forms.ComboBox(); this.cameraRender = new System.Windows.Forms.PictureBox(); this.tabControl1 = new System.Windows.Forms.TabControl(); @@ -36,38 +69,376 @@ this.tab3 = new System.Windows.Forms.TabPage(); this.tab4 = new System.Windows.Forms.TabPage(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.comboBox1 = new System.Windows.Forms.ComboBox(); - this.label2 = new System.Windows.Forms.Label(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.richTextBox1 = new System.Windows.Forms.RichTextBox(); - this.shotBtn = new System.Windows.Forms.Button(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); + this.numberValue = new System.Windows.Forms.TextBox(); + this.numberLabel = new System.Windows.Forms.Label(); + this.searchButton = new System.Windows.Forms.Button(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.pullDataMenu = new System.Windows.Forms.ToolStripMenuItem(); + this.exitMenu = new System.Windows.Forms.ToolStripMenuItem(); tab1 = new System.Windows.Forms.TabPage(); tab1.SuspendLayout(); + this.idcGroupBox.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.idcPicture)).BeginInit(); + this.groupBox1.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.cameraRender)).BeginInit(); this.tabControl1.SuspendLayout(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); + this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // tab1 // - tab1.Controls.Add(this.pictureBox1); + tab1.Controls.Add(this.idcGroupBox); + tab1.Controls.Add(this.groupBox1); tab1.Controls.Add(this.shotBtn); - tab1.Controls.Add(this.richTextBox1); + tab1.Controls.Add(this.log); tab1.Controls.Add(this.panel1); tab1.Controls.Add(this.cameraSelector); tab1.Controls.Add(this.cameraRender); tab1.Location = new System.Drawing.Point(4, 22); tab1.Name = "tab1"; tab1.Padding = new System.Windows.Forms.Padding(3); - tab1.Size = new System.Drawing.Size(1000, 703); + tab1.Size = new System.Drawing.Size(1000, 679); tab1.TabIndex = 0; tab1.Text = "图像采集"; tab1.UseVisualStyleBackColor = true; // + // idcGroupBox + // + this.idcGroupBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.idcGroupBox.Controls.Add(this.idcSamIDValue); + this.idcGroupBox.Controls.Add(this.idcSamIDLabel); + this.idcGroupBox.Controls.Add(this.idcValidDateValue); + this.idcGroupBox.Controls.Add(this.idcValidDateLabel); + this.idcGroupBox.Controls.Add(this.idcDepartmentValue); + this.idcGroupBox.Controls.Add(this.idcDepartmentLabel); + this.idcGroupBox.Controls.Add(this.idcIdCardNoValue); + this.idcGroupBox.Controls.Add(this.idcIdCardNoLabel); + this.idcGroupBox.Controls.Add(this.idcBirthdayValue); + this.idcGroupBox.Controls.Add(this.idcBirthdayLabel); + this.idcGroupBox.Controls.Add(this.idcNationCodeValue); + this.idcGroupBox.Controls.Add(this.idcNationCodeLabel); + this.idcGroupBox.Controls.Add(this.idcNationValue); + this.idcGroupBox.Controls.Add(this.idcNationLabel); + this.idcGroupBox.Controls.Add(this.idcSexValue); + this.idcGroupBox.Controls.Add(this.idcSexLabel); + this.idcGroupBox.Controls.Add(this.idcAddressValue); + this.idcGroupBox.Controls.Add(this.idcAddressLabel); + this.idcGroupBox.Controls.Add(this.idcCnNameValue); + this.idcGroupBox.Controls.Add(this.idcCnNameLabel); + this.idcGroupBox.Controls.Add(this.idcNameValue); + this.idcGroupBox.Controls.Add(this.idcNameLable); + this.idcGroupBox.Controls.Add(this.idcPicture); + this.idcGroupBox.Location = new System.Drawing.Point(174, 274); + this.idcGroupBox.Name = "idcGroupBox"; + this.idcGroupBox.Size = new System.Drawing.Size(425, 222); + this.idcGroupBox.TabIndex = 7; + this.idcGroupBox.TabStop = false; + this.idcGroupBox.Text = "身份证"; + // + // idcSamIDValue + // + this.idcSamIDValue.AutoSize = true; + this.idcSamIDValue.Location = new System.Drawing.Point(82, 199); + this.idcSamIDValue.Name = "idcSamIDValue"; + this.idcSamIDValue.Size = new System.Drawing.Size(41, 12); + this.idcSamIDValue.TabIndex = 28; + this.idcSamIDValue.Text = "label3"; + // + // idcSamIDLabel + // + this.idcSamIDLabel.AutoSize = true; + this.idcSamIDLabel.Location = new System.Drawing.Point(8, 199); + this.idcSamIDLabel.Name = "idcSamIDLabel"; + this.idcSamIDLabel.Size = new System.Drawing.Size(77, 12); + this.idcSamIDLabel.TabIndex = 27; + this.idcSamIDLabel.Text = "安全模块号:"; + // + // idcValidDateValue + // + this.idcValidDateValue.AutoSize = true; + this.idcValidDateValue.Location = new System.Drawing.Point(76, 175); + this.idcValidDateValue.Name = "idcValidDateValue"; + this.idcValidDateValue.Size = new System.Drawing.Size(41, 12); + this.idcValidDateValue.TabIndex = 26; + this.idcValidDateValue.Text = "label4"; + // + // idcValidDateLabel + // + this.idcValidDateLabel.AutoSize = true; + this.idcValidDateLabel.Location = new System.Drawing.Point(8, 175); + this.idcValidDateLabel.Name = "idcValidDateLabel"; + this.idcValidDateLabel.Size = new System.Drawing.Size(65, 12); + this.idcValidDateLabel.TabIndex = 25; + this.idcValidDateLabel.Text = "有效期限:"; + // + // idcDepartmentValue + // + this.idcDepartmentValue.AutoSize = true; + this.idcDepartmentValue.Location = new System.Drawing.Point(74, 148); + this.idcDepartmentValue.Name = "idcDepartmentValue"; + this.idcDepartmentValue.Size = new System.Drawing.Size(41, 12); + this.idcDepartmentValue.TabIndex = 24; + this.idcDepartmentValue.Text = "label3"; + // + // idcDepartmentLabel + // + this.idcDepartmentLabel.AutoSize = true; + this.idcDepartmentLabel.Location = new System.Drawing.Point(7, 150); + this.idcDepartmentLabel.Name = "idcDepartmentLabel"; + this.idcDepartmentLabel.Size = new System.Drawing.Size(65, 12); + this.idcDepartmentLabel.TabIndex = 23; + this.idcDepartmentLabel.Text = "签发机关:"; + // + // idcIdCardNoValue + // + this.idcIdCardNoValue.AutoSize = true; + this.idcIdCardNoValue.Location = new System.Drawing.Point(74, 124); + this.idcIdCardNoValue.Name = "idcIdCardNoValue"; + this.idcIdCardNoValue.Size = new System.Drawing.Size(41, 12); + this.idcIdCardNoValue.TabIndex = 22; + this.idcIdCardNoValue.Text = "label4"; + // + // idcIdCardNoLabel + // + this.idcIdCardNoLabel.AutoSize = true; + this.idcIdCardNoLabel.Location = new System.Drawing.Point(7, 124); + this.idcIdCardNoLabel.Name = "idcIdCardNoLabel"; + this.idcIdCardNoLabel.Size = new System.Drawing.Size(65, 12); + this.idcIdCardNoLabel.TabIndex = 21; + this.idcIdCardNoLabel.Text = "身份证号:"; + // + // idcBirthdayValue + // + this.idcBirthdayValue.AutoSize = true; + this.idcBirthdayValue.Location = new System.Drawing.Point(49, 72); + this.idcBirthdayValue.Name = "idcBirthdayValue"; + this.idcBirthdayValue.Size = new System.Drawing.Size(41, 12); + this.idcBirthdayValue.TabIndex = 20; + this.idcBirthdayValue.Text = "label3"; + // + // idcBirthdayLabel + // + this.idcBirthdayLabel.AutoSize = true; + this.idcBirthdayLabel.Location = new System.Drawing.Point(7, 72); + this.idcBirthdayLabel.Name = "idcBirthdayLabel"; + this.idcBirthdayLabel.Size = new System.Drawing.Size(41, 12); + this.idcBirthdayLabel.TabIndex = 19; + this.idcBirthdayLabel.Text = "出生:"; + // + // idcNationCodeValue + // + this.idcNationCodeValue.AutoSize = true; + this.idcNationCodeValue.Location = new System.Drawing.Point(250, 48); + this.idcNationCodeValue.Name = "idcNationCodeValue"; + this.idcNationCodeValue.Size = new System.Drawing.Size(41, 12); + this.idcNationCodeValue.TabIndex = 18; + this.idcNationCodeValue.Text = "label3"; + // + // idcNationCodeLabel + // + this.idcNationCodeLabel.AutoSize = true; + this.idcNationCodeLabel.Location = new System.Drawing.Point(193, 48); + this.idcNationCodeLabel.Name = "idcNationCodeLabel"; + this.idcNationCodeLabel.Size = new System.Drawing.Size(65, 12); + this.idcNationCodeLabel.TabIndex = 17; + this.idcNationCodeLabel.Text = "民族代码:"; + // + // idcNationValue + // + this.idcNationValue.AutoSize = true; + this.idcNationValue.Location = new System.Drawing.Point(132, 48); + this.idcNationValue.Name = "idcNationValue"; + this.idcNationValue.Size = new System.Drawing.Size(41, 12); + this.idcNationValue.TabIndex = 16; + this.idcNationValue.Text = "label4"; + // + // idcNationLabel + // + this.idcNationLabel.AutoSize = true; + this.idcNationLabel.Location = new System.Drawing.Point(95, 49); + this.idcNationLabel.Name = "idcNationLabel"; + this.idcNationLabel.Size = new System.Drawing.Size(41, 12); + this.idcNationLabel.TabIndex = 15; + this.idcNationLabel.Text = "民族:"; + // + // idcSexValue + // + this.idcSexValue.AutoSize = true; + this.idcSexValue.Location = new System.Drawing.Point(47, 49); + this.idcSexValue.Name = "idcSexValue"; + this.idcSexValue.Size = new System.Drawing.Size(41, 12); + this.idcSexValue.TabIndex = 14; + this.idcSexValue.Text = "label3"; + // + // idcSexLabel + // + this.idcSexLabel.AutoSize = true; + this.idcSexLabel.Location = new System.Drawing.Point(7, 49); + this.idcSexLabel.Name = "idcSexLabel"; + this.idcSexLabel.Size = new System.Drawing.Size(41, 12); + this.idcSexLabel.TabIndex = 13; + this.idcSexLabel.Text = "性别:"; + // + // idcAddressValue + // + this.idcAddressValue.AutoSize = true; + this.idcAddressValue.Location = new System.Drawing.Point(49, 97); + this.idcAddressValue.Name = "idcAddressValue"; + this.idcAddressValue.Size = new System.Drawing.Size(41, 12); + this.idcAddressValue.TabIndex = 12; + this.idcAddressValue.Text = "label3"; + // + // idcAddressLabel + // + this.idcAddressLabel.AutoSize = true; + this.idcAddressLabel.Location = new System.Drawing.Point(7, 97); + this.idcAddressLabel.Name = "idcAddressLabel"; + this.idcAddressLabel.Size = new System.Drawing.Size(41, 12); + this.idcAddressLabel.TabIndex = 11; + this.idcAddressLabel.Text = "地址:"; + // + // idcCnNameValue + // + this.idcCnNameValue.AutoSize = true; + this.idcCnNameValue.Location = new System.Drawing.Point(219, 24); + this.idcCnNameValue.Name = "idcCnNameValue"; + this.idcCnNameValue.Size = new System.Drawing.Size(41, 12); + this.idcCnNameValue.TabIndex = 10; + this.idcCnNameValue.Text = "label3"; + // + // idcCnNameLabel + // + this.idcCnNameLabel.AutoSize = true; + this.idcCnNameLabel.Location = new System.Drawing.Point(156, 24); + this.idcCnNameLabel.Name = "idcCnNameLabel"; + this.idcCnNameLabel.Size = new System.Drawing.Size(65, 12); + this.idcCnNameLabel.TabIndex = 9; + this.idcCnNameLabel.Text = "中文姓名:"; + // + // idcNameValue + // + this.idcNameValue.AutoSize = true; + this.idcNameValue.Location = new System.Drawing.Point(45, 24); + this.idcNameValue.Name = "idcNameValue"; + this.idcNameValue.Size = new System.Drawing.Size(41, 12); + this.idcNameValue.TabIndex = 8; + this.idcNameValue.Text = "label3"; + // + // idcNameLable + // + this.idcNameLable.AutoSize = true; + this.idcNameLable.Location = new System.Drawing.Point(7, 23); + this.idcNameLable.Name = "idcNameLable"; + this.idcNameLable.Size = new System.Drawing.Size(41, 12); + this.idcNameLable.TabIndex = 7; + this.idcNameLable.Text = "姓名:"; + // + // idcPicture + // + this.idcPicture.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.idcPicture.Location = new System.Drawing.Point(299, 20); + this.idcPicture.Name = "idcPicture"; + this.idcPicture.Size = new System.Drawing.Size(120, 147); + this.idcPicture.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.idcPicture.TabIndex = 6; + this.idcPicture.TabStop = false; + // + // groupBox1 + // + this.groupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.groupBox1.Controls.Add(this.pictureBox1); + this.groupBox1.Location = new System.Drawing.Point(173, 6); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(426, 252); + this.groupBox1.TabIndex = 6; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "学籍信息"; + // + // pictureBox1 + // + this.pictureBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.pictureBox1.Location = new System.Drawing.Point(300, 19); + this.pictureBox1.Name = "pictureBox1"; + this.pictureBox1.Size = new System.Drawing.Size(120, 147); + this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom; + this.pictureBox1.TabIndex = 5; + this.pictureBox1.TabStop = false; + // + // shotBtn + // + this.shotBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); + this.shotBtn.Location = new System.Drawing.Point(764, 462); + this.shotBtn.Name = "shotBtn"; + this.shotBtn.Size = new System.Drawing.Size(75, 34); + this.shotBtn.TabIndex = 4; + this.shotBtn.Text = "拍照"; + this.shotBtn.UseVisualStyleBackColor = true; + this.shotBtn.Click += new System.EventHandler(this.shotBtn_Click); + // + // log + // + this.log.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.log.Location = new System.Drawing.Point(173, 516); + this.log.Name = "log"; + this.log.Size = new System.Drawing.Size(819, 142); + this.log.TabIndex = 3; + this.log.Text = ""; + // + // panel1 + // + this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); + this.panel1.Controls.Add(this.searchButton); + this.panel1.Controls.Add(this.numberValue); + this.panel1.Controls.Add(this.numberLabel); + this.panel1.Controls.Add(this.nameValue); + this.panel1.Controls.Add(this.nameLabel); + this.panel1.Controls.Add(this.classSecletor); + this.panel1.Controls.Add(this.classLabel); + this.panel1.Location = new System.Drawing.Point(7, 6); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(160, 652); + this.panel1.TabIndex = 2; + // + // nameValue + // + this.nameValue.Location = new System.Drawing.Point(55, 44); + this.nameValue.Name = "nameValue"; + this.nameValue.Size = new System.Drawing.Size(100, 21); + this.nameValue.TabIndex = 3; + // + // nameLabel + // + this.nameLabel.AutoSize = true; + this.nameLabel.Location = new System.Drawing.Point(8, 49); + this.nameLabel.Name = "nameLabel"; + this.nameLabel.Size = new System.Drawing.Size(41, 12); + this.nameLabel.TabIndex = 2; + this.nameLabel.Text = "姓名:"; + // + // classSecletor + // + this.classSecletor.FormattingEnabled = true; + this.classSecletor.Location = new System.Drawing.Point(55, 11); + this.classSecletor.Name = "classSecletor"; + this.classSecletor.Size = new System.Drawing.Size(100, 20); + this.classSecletor.TabIndex = 1; + // + // classLabel + // + this.classLabel.AutoSize = true; + this.classLabel.Location = new System.Drawing.Point(7, 16); + this.classLabel.Name = "classLabel"; + this.classLabel.Size = new System.Drawing.Size(41, 12); + this.classLabel.TabIndex = 0; + this.classLabel.Text = "班级:"; + // // cameraSelector // this.cameraSelector.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); @@ -96,11 +467,10 @@ this.tabControl1.Controls.Add(this.tab2); this.tabControl1.Controls.Add(this.tab3); this.tabControl1.Controls.Add(this.tab4); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); + this.tabControl1.Location = new System.Drawing.Point(0, 24); this.tabControl1.Name = "tabControl1"; this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(1008, 729); + this.tabControl1.Size = new System.Drawing.Size(1008, 705); this.tabControl1.SizeMode = System.Windows.Forms.TabSizeMode.Fixed; this.tabControl1.TabIndex = 2; // @@ -142,82 +512,53 @@ this.statusStrip1.TabIndex = 3; this.statusStrip1.Text = "statusStrip1"; // - // panel1 - // - this.panel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.panel1.Controls.Add(this.textBox1); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.comboBox1); - this.panel1.Controls.Add(this.label1); - this.panel1.Location = new System.Drawing.Point(7, 6); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(160, 676); - this.panel1.TabIndex = 2; + // numberValue // - // label1 + this.numberValue.Location = new System.Drawing.Point(55, 80); + this.numberValue.Name = "numberValue"; + this.numberValue.Size = new System.Drawing.Size(100, 21); + this.numberValue.TabIndex = 5; // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(5, 19); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 12); - this.label1.TabIndex = 0; - this.label1.Text = "班级:"; + // numberLabel // - // comboBox1 + this.numberLabel.AutoSize = true; + this.numberLabel.Location = new System.Drawing.Point(8, 85); + this.numberLabel.Name = "numberLabel"; + this.numberLabel.Size = new System.Drawing.Size(53, 12); + this.numberLabel.TabIndex = 4; + this.numberLabel.Text = "考籍号:"; // - this.comboBox1.FormattingEnabled = true; - this.comboBox1.Location = new System.Drawing.Point(55, 11); - this.comboBox1.Name = "comboBox1"; - this.comboBox1.Size = new System.Drawing.Size(100, 20); - this.comboBox1.TabIndex = 1; + // searchButton // - // label2 + this.searchButton.Location = new System.Drawing.Point(9, 118); + this.searchButton.Name = "searchButton"; + this.searchButton.Size = new System.Drawing.Size(146, 30); + this.searchButton.TabIndex = 6; + this.searchButton.Text = "检索"; + this.searchButton.UseVisualStyleBackColor = true; // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(7, 54); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(41, 12); - this.label2.TabIndex = 2; - this.label2.Text = "姓名:"; + // menuStrip1 // - // textBox1 + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.pullDataMenu, + this.exitMenu}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(1008, 25); + this.menuStrip1.TabIndex = 4; + this.menuStrip1.Text = "menuStrip1"; // - this.textBox1.Location = new System.Drawing.Point(55, 44); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(100, 21); - this.textBox1.TabIndex = 3; + // pullDataMenu // - // richTextBox1 + this.pullDataMenu.Name = "pullDataMenu"; + this.pullDataMenu.Size = new System.Drawing.Size(68, 21); + this.pullDataMenu.Text = "更新数据"; // - this.richTextBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.richTextBox1.Location = new System.Drawing.Point(173, 516); - this.richTextBox1.Name = "richTextBox1"; - this.richTextBox1.Size = new System.Drawing.Size(819, 166); - this.richTextBox1.TabIndex = 3; - this.richTextBox1.Text = ""; + // exitMenu // - // shotBtn - // - this.shotBtn.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.shotBtn.Location = new System.Drawing.Point(764, 473); - this.shotBtn.Name = "shotBtn"; - this.shotBtn.Size = new System.Drawing.Size(75, 23); - this.shotBtn.TabIndex = 4; - this.shotBtn.Text = "拍照"; - this.shotBtn.UseVisualStyleBackColor = true; - this.shotBtn.Click += new System.EventHandler(this.shotBtn_Click); - // - // pictureBox1 - // - this.pictureBox1.Location = new System.Drawing.Point(251, 84); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(100, 50); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 5; - this.pictureBox1.TabStop = false; + this.exitMenu.Name = "exitMenu"; + this.exitMenu.Size = new System.Drawing.Size(44, 21); + this.exitMenu.Text = "退出"; // // MainForm // @@ -225,6 +566,7 @@ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(1008, 729); this.Controls.Add(this.statusStrip1); + this.Controls.Add(this.menuStrip1); this.Controls.Add(this.tabControl1); this.Name = "MainForm"; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; @@ -232,12 +574,17 @@ this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_FormClosing); this.Load += new System.EventHandler(this.MainFrom_Load); tab1.ResumeLayout(false); - tab1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.cameraRender)).EndInit(); - this.tabControl1.ResumeLayout(false); + this.idcGroupBox.ResumeLayout(false); + this.idcGroupBox.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.idcPicture)).EndInit(); + this.groupBox1.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); this.panel1.ResumeLayout(false); this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.cameraRender)).EndInit(); + this.tabControl1.ResumeLayout(false); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -253,12 +600,43 @@ private System.Windows.Forms.TabPage tab4; private System.Windows.Forms.StatusStrip statusStrip1; private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox comboBox1; - private System.Windows.Forms.Label label1; + private System.Windows.Forms.TextBox nameValue; + private System.Windows.Forms.Label nameLabel; + private System.Windows.Forms.ComboBox classSecletor; + private System.Windows.Forms.Label classLabel; private System.Windows.Forms.Button shotBtn; - private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.RichTextBox log; private System.Windows.Forms.PictureBox pictureBox1; + private System.Windows.Forms.GroupBox idcGroupBox; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.PictureBox idcPicture; + private System.Windows.Forms.Label idcNameValue; + private System.Windows.Forms.Label idcNameLable; + private System.Windows.Forms.Label idcCnNameValue; + private System.Windows.Forms.Label idcCnNameLabel; + private System.Windows.Forms.Label idcAddressValue; + private System.Windows.Forms.Label idcAddressLabel; + private System.Windows.Forms.Label idcSexValue; + private System.Windows.Forms.Label idcSexLabel; + private System.Windows.Forms.Label idcNationValue; + private System.Windows.Forms.Label idcNationLabel; + private System.Windows.Forms.Label idcNationCodeLabel; + private System.Windows.Forms.Label idcNationCodeValue; + private System.Windows.Forms.Label idcBirthdayValue; + private System.Windows.Forms.Label idcBirthdayLabel; + private System.Windows.Forms.Label idcIdCardNoValue; + private System.Windows.Forms.Label idcIdCardNoLabel; + private System.Windows.Forms.Label idcDepartmentValue; + private System.Windows.Forms.Label idcDepartmentLabel; + private System.Windows.Forms.Label idcValidDateValue; + private System.Windows.Forms.Label idcValidDateLabel; + private System.Windows.Forms.Label idcSamIDValue; + private System.Windows.Forms.Label idcSamIDLabel; + private System.Windows.Forms.Button searchButton; + private System.Windows.Forms.TextBox numberValue; + private System.Windows.Forms.Label numberLabel; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem pullDataMenu; + private System.Windows.Forms.ToolStripMenuItem exitMenu; } } \ No newline at end of file diff --git a/labs/CameraCardDemo/MainForm.cs b/labs/CameraCardDemo/MainForm.cs index b38a0763..03fcd68f 100644 --- a/labs/CameraCardDemo/MainForm.cs +++ b/labs/CameraCardDemo/MainForm.cs @@ -3,11 +3,13 @@ using OpenCvSharp; using OpenCvSharp.Extensions; using System; using System.Collections.Generic; -using System.Diagnostics; using System.Drawing; using System.Drawing.Drawing2D; using System.Drawing.Imaging; +using System.Globalization; +using System.IO; using System.Linq; +using System.Text; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; @@ -16,12 +18,12 @@ namespace CameraCardDemo { public partial class MainForm : Form { - private CancellationTokenSource _cameraScanCts = new CancellationTokenSource(); + private CancellationTokenSource _cts = new CancellationTokenSource(); private List _cameras = new List(); private VideoCapture _videoCapture; - private CancellationToken cancellationToken = new CancellationToken(); private Rectangle _rect; private Pen _pen; + private int _cvrStatus = 0; public MainForm() { @@ -30,24 +32,62 @@ namespace CameraCardDemo private void MainFrom_Load(object sender, EventArgs e) { + foreach (Control item in this.idcGroupBox.Controls) + { + if (item is Label && item.Name.EndsWith("Value")) + { + (item as Label).Text = ""; + } + } this.CreateRect(); Task.Run(async () => { - while (!this._cameraScanCts.IsCancellationRequested) + while (!this._cts.IsCancellationRequested) { this.ScanCameras(); await Task.Delay(1000); } }); - try + Task.Run(async () => { - //读卡器 - InitCardReader(); - } - catch (Exception ex) + while (!this._cts.IsCancellationRequested) + { + this.ScanCardReader(); + await Task.Delay(1000); + } + }); + Task.Run(() => { - MessageBox.Show(ex.Message); - } + while (!this._cts.IsCancellationRequested) + { + try + { + if (this._cvrStatus == 1 && CVRSDK.CVR_Authenticate() == 1 && CVRSDK.CVR_Read_FPContent() == 1) + { + var nameBytes = new byte[128]; + var length = 128; + CVRSDK.GetPeopleName(ref nameBytes[0], ref length); + var name = System.Text.Encoding.GetEncoding("GB2312").GetString(nameBytes); + this.Invoke(new Action(() => + { + this.FillData(); + this.log.AppendText(name); + this.log.AppendText(Environment.NewLine); + })); + } + } + catch (Exception ex) + { + this.Invoke(new Action(() => + { + this.log.AppendText(ex.Message); + this.log.AppendText(Environment.NewLine); + })); + } + + Thread.Sleep(600); + } + }); } private void CreateRect() @@ -85,49 +125,183 @@ namespace CameraCardDemo })); } - private void InitCardReader() + private void ScanCardReader() { - int iPort, iRetUSB = 0; - for (iPort = 1001; iPort <= 1016; iPort++) + for (var usbPort = 1001; usbPort <= 1016; usbPort++) { - iRetUSB = CVRSDK.CVR_InitComm(iPort); - if (iRetUSB == 1) + this._cvrStatus = CVRSDK.CVR_InitComm(usbPort); + if (this._cvrStatus == 1) { break; } } + if (this._cvrStatus != 1) + { + this.Invoke(new Action(() => + { + this.idcGroupBox.Text = $"身份证(设备未连接)"; + })); + } + else + { + this.Invoke(new Action(() => + { + this.idcGroupBox.Text = $"身份证(设备已连接)"; + })); + } + } - if (iRetUSB == 1) + public void FillData() + { + try { - Debug.WriteLine("读卡器初始化成功"); - Task.Run(() => + byte[] imgData = new byte[40960]; + int length = 40960; + CVRSDK.GetBMPData(ref imgData[0], ref length); + using (var myStream = new MemoryStream()) { - while (!this.cancellationToken.IsCancellationRequested) + for (int i = 0; i < length; i++) { - if (CVRSDK.CVR_Authenticate() == 1 && CVRSDK.CVR_Read_FPContent() == 1) - { - var name = new byte[128]; - var length = 128; - CVRSDK.GetPeopleName(ref name[0], ref length); - MessageBox.Show(System.Text.Encoding.GetEncoding("GB2312").GetString(name)); - } - Thread.Sleep(600); + myStream.WriteByte(imgData[i]); } - }); + Image myImage = Image.FromStream(myStream); + idcPicture.Image = myImage; + } + + byte[] name = new byte[128]; + length = 128; + CVRSDK.GetPeopleName(ref name[0], ref length); + + byte[] cnName = new byte[128]; + length = 128; + CVRSDK.GetPeopleChineseName(ref cnName[0], ref length); + + byte[] number = new byte[128]; + length = 128; + CVRSDK.GetPeopleIDCode(ref number[0], ref length); + + byte[] peopleNation = new byte[128]; + length = 128; + CVRSDK.GetPeopleNation(ref peopleNation[0], ref length); + + byte[] peopleNationCode = new byte[128]; + length = 128; + CVRSDK.GetNationCode(ref peopleNationCode[0], ref length); + + byte[] validtermOfStart = new byte[128]; + length = 128; + CVRSDK.GetStartDate(ref validtermOfStart[0], ref length); + + byte[] birthday = new byte[128]; + length = 128; + CVRSDK.GetPeopleBirthday(ref birthday[0], ref length); + + byte[] address = new byte[128]; + length = 128; + CVRSDK.GetPeopleAddress(ref address[0], ref length); + + byte[] validtermOfEnd = new byte[128]; + length = 128; + CVRSDK.GetEndDate(ref validtermOfEnd[0], ref length); + + byte[] signdate = new byte[128]; + length = 128; + CVRSDK.GetDepartment(ref signdate[0], ref length); + + byte[] sex = new byte[128]; + length = 128; + CVRSDK.GetPeopleSex(ref sex[0], ref length); + + byte[] samid = new byte[128]; + CVRSDK.CVR_GetSAMID(ref samid[0]); + + bool bCivic = true; + byte[] certType = new byte[32]; + length = 32; + CVRSDK.GetCertType(ref certType[0], ref length); + + string strType = System.Text.Encoding.ASCII.GetString(certType); + int nStart = strType.IndexOf("I"); + if (nStart != -1) bCivic = false; + var model = new IdcModel + { + Type = bCivic ? "居民身份证" : "外国人永居证", + Name = GetString(name), + CnName = bCivic ? "" : GetString(name), + Sex = GetString(sex), + Nation = GetString(peopleNation), + NationCode = GetString(peopleNationCode), + Birthday = GetDataString(GetString(birthday)), + IdCardNo = GetString(number), + Address = bCivic ? GetString(address) : "", + Department = GetString(signdate), + ValidDateStart = GetString(validtermOfStart), + ValidDateEnd = GetString(validtermOfEnd), + SamID = GetString(samid), + }; + //using (var ms = new MemoryStream()) + //{ + // idcPicture.Image.Save(ms, ImageFormat.Bmp); + // model.Image = Convert.ToBase64String(ms.ToArray()); + //} + if (bCivic) + { + this.idcAddressLabel.Visible = true; + this.idcAddressValue.Visible = true; + this.idcCnNameLabel.Visible = false; + this.idcCnNameValue.Visible = false; + this.idcAddressLabel.Visible = true; + this.idcAddressValue.Visible = true; + this.idcAddressValue.Text = model.Address; + this.idcNameLable.Text = "民族:"; + this.idcNationCodeLabel.Text = "民族代码:"; + this.idcIdCardNoLabel.Text = "身份证号"; + } + else + { + this.idcAddressLabel.Visible = false; + this.idcAddressValue.Visible = false; + this.idcCnNameLabel.Visible = true; + this.idcCnNameValue.Visible = true; + this.idcAddressLabel.Visible = false; + this.idcAddressValue.Visible = false; + this.idcCnNameValue.Text = model.CnName; + this.idcNameLable.Text = "国籍:"; + this.idcNationCodeLabel.Text = "国籍代码:"; + this.idcIdCardNoLabel.Text = "证件号码"; + } + this.idcNameValue.Text = model.Name; + this.idcSexValue.Text = model.Sex; + this.idcNationValue.Text = model.Nation; + this.idcNationCodeValue.Text = model.NationCode; + this.idcBirthdayValue.Text = model.Birthday; + this.idcIdCardNoValue.Text = model.IdCardNo; + this.idcDepartmentValue.Text = model.Department; + this.idcValidDateValue.Text = $"{ GetDataString(model.ValidDateStart, '.')}-{GetDataString(model.ValidDateEnd, '.')}"; + this.idcSamIDValue.Text = model.SamID; } - else + catch (Exception ex) { - //MessageBox.Show("读卡器初始化失败"); + MessageBox.Show(ex.ToString()); } } + private string GetString(byte[] data) + { + return Encoding.GetEncoding("GB2312").GetString(data).Replace("\0", "").Trim(); + } + + private string GetDataString(string value, char sep = '-') + { + return DateTime.ParseExact(value, "yyyyMMdd", CultureInfo.InvariantCulture).ToString($"yyyy{sep}MM{sep}dd"); + } + private void cameraSelector_SelectedIndexChanged(object sender, EventArgs e) { Release(); this._videoCapture = new VideoCapture((sender as ComboBox).SelectedIndex); if (this._videoCapture.IsOpened()) { - //this.ResizeCamera(); Task.Run(() => { while (this._videoCapture.IsOpened()) @@ -140,7 +314,7 @@ namespace CameraCardDemo this.cameraRender.Image = mat.ToBitmap(); } } - catch (Exception ex) + catch { this._videoCapture.Release(); break; @@ -150,36 +324,13 @@ namespace CameraCardDemo } } - private void Release() - { - if (this._videoCapture != null && _videoCapture.IsOpened()) - { - this._videoCapture.Release(); - } - } - - private void MainForm_FormClosing(object sender, FormClosingEventArgs e) - { - this._cameraScanCts.Cancel(); - Release(); - this._pen.Dispose(); - } - - private void button1_Click(object sender, EventArgs e) - { - this._cameras.Add("14123"); - } - private void shotBtn_Click(object sender, EventArgs e) { - //剪裁 var bitmap = this.ClipImage(); - - //缩放 bitmap = this.ResizeImage(bitmap); pictureBox1.Image = bitmap; var eps = new EncoderParameters(1); - eps.Param[0] = new EncoderParameter(Encoder.Quality, 70L); + eps.Param[0] = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, 70L); bitmap.Save("temp.jpeg", ImageFormat.Jpeg); } @@ -216,5 +367,21 @@ namespace CameraCardDemo { e.Graphics.DrawRectangle(this._pen, _rect); } + + private void Release() + { + if (this._videoCapture != null && _videoCapture.IsOpened()) + { + this._videoCapture.Release(); + } + } + + private void MainForm_FormClosing(object sender, FormClosingEventArgs e) + { + this._cts.Cancel(); + Release(); + this._pen.Dispose(); + CVRSDK.CVR_CloseComm(); + } } } \ No newline at end of file diff --git a/labs/CameraCardDemo/MainForm.resx b/labs/CameraCardDemo/MainForm.resx index 5be4ca86..0d95232e 100644 --- a/labs/CameraCardDemo/MainForm.resx +++ b/labs/CameraCardDemo/MainForm.resx @@ -123,6 +123,9 @@ 17, 17 + + 138, 17 + 40