CVR-100U身份证读卡器检测、接入、读取、显示

Former-commit-id: d1db9dc5a69a83caf6a2e22093cc8b81cccfcfbc
TangShanKaiPing
wanggang 5 years ago
parent a3fa7858ed
commit a561516604

@ -78,6 +78,7 @@
<ItemGroup>
<Compile Include="CVRSDK.cs" />
<Compile Include="Infrastructure\CameraHelper.cs" />
<Compile Include="Infrastructure\IdcModel.cs" />
<Compile Include="MainForm.cs">
<SubType>Form</SubType>
</Compile>
@ -122,7 +123,6 @@
</PackageReference>
</ItemGroup>
<ItemGroup>
<Content Include="DirectShowLib-2005.dll" />
<Content Include="sdtapi.dll">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>

@ -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; }
}
}

@ -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;
}
}

@ -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<string> _cameras = new List<string>();
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();
}
}
}

@ -123,6 +123,9 @@
<metadata name="statusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>138, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>40</value>
</metadata>

Loading…
Cancel
Save