This commit is contained in:
2024-04-19 02:24:05 +01:00
parent 13b8eda0c9
commit 7fd9f6998d
50 changed files with 3286 additions and 154 deletions

View File

@@ -0,0 +1,84 @@
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
// include the libraries
using AForge.Video;
using AForge.Video.DirectShow;
using ZXing;
namespace HCI_Coursework_EVCHARGE
{
public partial class QRReader : Form
{
// foxlearn.com/windows-forms/qr-code-scanner-using-camera-in-csharp-380.html
FilterInfoCollection filterInfoCollection;
VideoCaptureDevice videoCaptureDevice;
public QRReader()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
// this will list the available cameras
filterInfoCollection = new FilterInfoCollection(FilterCategory.VideoInputDevice);
foreach (FilterInfo Device in filterInfoCollection)
cboCamera.Items.Add(Device.Name);
cboCamera.SelectedIndex = 0;
// start the camera device
videoCaptureDevice = new VideoCaptureDevice(filterInfoCollection[cboCamera.SelectedIndex].MonikerString);
videoCaptureDevice.NewFrame += FinalFrame_NewFrame;
videoCaptureDevice.Start();
timer1.Start();
}
private void FinalFrame_NewFrame(object sender, NewFrameEventArgs eventArgs)
{
// show the video in the picturebox
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
// close the camera device when the app is closed
if (videoCaptureDevice.IsRunning == true)
videoCaptureDevice.Stop();
}
private void timer1_Tick(object sender, EventArgs e)
{
// try and detect a barcode/qrcode in the image frame
BarcodeReader Reader = new BarcodeReader();
Result result = Reader.Decode((Bitmap)pictureBox1.Image);
if (result != null && result.Text == "AB87654321")
{
BaySelection baySelection = new BaySelection(result.Text);
baySelection.Show();
baySelection.FormClosed += delegate
{
baySelection = null;
};
Close();
}
}
private void cancel_Click(object sender, EventArgs e)
{
Close();
}
}
}