c# - 在 C# 中使用 USB 网络摄像头自动检测和读取二维码
问题描述
我创建了一个带有 USB 网络摄像头的二维码阅读器。
我可以读取 QR 码按捕获按钮。我需要在检测到二维码时自动执行此操作。
我需要像这样创建我的应用程序。 Android Studio 教程 - 用相机扫描二维码
这是我的代码
using System;
using System.Drawing;
using System.Runtime.CompilerServices;
using System.Windows.Forms;
using WebCam_Capture;
using MessagingToolkit.QRCode.Codec;
using MessagingToolkit.QRCode.Codec.Data;
namespace WindowsFormsApp3
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private WebCamCapture _myWebcam;
private WebCamCapture MyWebcam
{
[MethodImpl(MethodImplOptions.Synchronized)]
get
{
return _myWebcam;
}
[MethodImpl(MethodImplOptions.Synchronized)]
set
{
if (_myWebcam != null)
{
_myWebcam.ImageCaptured -= MyWebcam_ImageCaptured;
}
_myWebcam = value;
if (_myWebcam != null)
{
_myWebcam.ImageCaptured += MyWebcam_ImageCaptured;
}
}
}
private QRCodeDecoder _reader;
private void MyWebcam_ImageCaptured(object source, WebcamEventArgs e)
{
PictureBox1.Image = e.WebCamImage;
}
private void StartWebcam()
{
try
{
StopWebcam();
MyWebcam = new WebCamCapture();
MyWebcam.Start(0);
}
catch (Exception ex)
{
}
}
private void StopWebcam()
{
try
{
MyWebcam.Stop();
MyWebcam.Dispose();
}
catch (Exception ex)
{
}
}
private void Capture()
{
try
{
_reader = new QRCodeDecoder();
TextBox1.Text = _reader.Decode(new QRCodeBitmapImage(PictureBox1.Image as Bitmap));
MessageBox.Show(@"QR code is detected!");
}
catch (Exception ex)
{
}
}
private void Form1_Load(object sender, EventArgs e)
{
StartWebcam();
TextBox1.Clear();
}
private void btn_capture_Click(object sender, EventArgs e)
{
Capture();
}
}
}
解决方案
推荐阅读
- c# - 使用复合 KeyFieldName 获取 ASPxGridView.RowUpdating 事件中的更新行
- python - Python安装问题
- javascript - Quill js 在编辑器中放置嵌入或 html 内容
- r - 基于R中多元回归中的变量从lm()中提取R2列表
- java - 以多线程方式浏览 Jms Queue
- git - 通过源树提交时如何停止打开流失败错误
- python - tkinter.Toplevel 大小自动适合其小部件
- ms-access - 基于在一个文本字段中具有多个条件的表单进行查询
- java - 使用 dnsjava 使用 java 查询?
- javascript - 当原始请求是 POST 方法时,身份验证刷新令牌不起作用