These source code samples are listed and grouped by their programming language and functions they use. ByteScout BarCode Reader SDK can read barcode from live video cam. It can be used from C#. ByteScout BarCode Reader SDK is the SDK for barcode decoding. Can read all popular types from Code 128, GS1, UPC and Code 39 to QR Code, Datamatrix, PDF417. Images, pdf, TIF images and live web camera are supported as input. Designed to handle documents with noise and defects. Includes optional splitter and merger for pdf and tiff based on barcodes. Batch mode is optimized for high performance with multiple threads. Decoded values can be exported to XML, JSON, CSV or into custom data format.
Fast application programming interfaces of ByteScout BarCode Reader SDK for C# plus the instruction and the code below will help you quickly learn how to read barcode from live video cam. This C# sample code is all you need for your app. Just copy and paste the code, add references (if needs to) and you are all set! Further enhancement of the code will make it more vigorous.
ByteScout BarCode Reader SDK free trial version is available on our website. C# and other programming languages are supported.
On-demand (REST Web API) version:
Web API (on-demand version)
On-premise offline SDK for Windows:
60 Day Free Trial (on-premise)
namespace ReadFromVideoCamera
{
partial class MainForm
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.lblFoundBarcodes = new System.Windows.Forms.Label();
this.pictureBoxPreview = new System.Windows.Forms.PictureBox();
this.btnStop = new System.Windows.Forms.Button();
this.btnStart = new System.Windows.Forms.Button();
this.rtbFoundBarcodes = new System.Windows.Forms.RichTextBox();
this.label1 = new System.Windows.Forms.Label();
this.cmbCamera = new System.Windows.Forms.ComboBox();
this.btnExit = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.cmbBarcodeType = new System.Windows.Forms.ComboBox();
this.lblScanning = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.tbCameraWidth = new System.Windows.Forms.TextBox();
this.tbCameraHeight = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.cbStopOnFirstBarcode = new System.Windows.Forms.CheckBox();
this.btnUpdateCameraImageDimensions = new System.Windows.Forms.Button();
this.btnCameraProperties = new System.Windows.Forms.Button();
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPreview)).BeginInit();
this.SuspendLayout();
//
// lblFoundBarcodes
//
this.lblFoundBarcodes.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.lblFoundBarcodes.AutoSize = true;
this.lblFoundBarcodes.Location = new System.Drawing.Point(12, 600);
this.lblFoundBarcodes.Name = "lblFoundBarcodes";
this.lblFoundBarcodes.Size = new System.Drawing.Size(93, 13);
this.lblFoundBarcodes.TabIndex = 5;
this.lblFoundBarcodes.Text = "Found 0 barcodes";
//
// pictureBoxPreview
//
this.pictureBoxPreview.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.pictureBoxPreview.BackColor = System.Drawing.Color.White;
this.pictureBoxPreview.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D;
this.pictureBoxPreview.Location = new System.Drawing.Point(12, 117);
this.pictureBoxPreview.Name = "pictureBoxPreview";
this.pictureBoxPreview.Size = new System.Drawing.Size(640, 480);
this.pictureBoxPreview.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.pictureBoxPreview.TabIndex = 8;
this.pictureBoxPreview.TabStop = false;
//
// btnStop
//
this.btnStop.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnStop.Enabled = false;
this.btnStop.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnStop.Location = new System.Drawing.Point(98, 690);
this.btnStop.Name = "btnStop";
this.btnStop.Size = new System.Drawing.Size(80, 26);
this.btnStop.TabIndex = 7;
this.btnStop.Text = "Stop";
this.btnStop.UseVisualStyleBackColor = true;
this.btnStop.Click += new System.EventHandler(this.btnStop_Click);
//
// btnStart
//
this.btnStart.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)));
this.btnStart.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnStart.Location = new System.Drawing.Point(12, 690);
this.btnStart.Name = "btnStart";
this.btnStart.Size = new System.Drawing.Size(80, 26);
this.btnStart.TabIndex = 6;
this.btnStart.Text = "Start";
this.btnStart.UseVisualStyleBackColor = true;
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
//
// rtbFoundBarcodes
//
this.rtbFoundBarcodes.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.rtbFoundBarcodes.Location = new System.Drawing.Point(12, 616);
this.rtbFoundBarcodes.Name = "rtbFoundBarcodes";
this.rtbFoundBarcodes.Size = new System.Drawing.Size(640, 68);
this.rtbFoundBarcodes.TabIndex = 5;
this.rtbFoundBarcodes.Text = "";
//
// label1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(9, 42);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(80, 13);
this.label1.TabIndex = 20;
this.label1.Text = "Camera Device";
//
// cmbCamera
//
this.cmbCamera.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbCamera.FormattingEnabled = true;
this.cmbCamera.Location = new System.Drawing.Point(163, 39);
this.cmbCamera.Name = "cmbCamera";
this.cmbCamera.Size = new System.Drawing.Size(245, 21);
this.cmbCamera.TabIndex = 1;
this.cmbCamera.SelectedIndexChanged += new System.EventHandler(this.cmbCamera_SelectedIndexChanged);
//
// btnExit
//
this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.btnExit.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.btnExit.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.btnExit.Location = new System.Drawing.Point(562, 690);
this.btnExit.Name = "btnExit";
this.btnExit.Size = new System.Drawing.Size(90, 26);
this.btnExit.TabIndex = 8;
this.btnExit.Text = "Exit";
this.btnExit.UseVisualStyleBackColor = true;
this.btnExit.Click += new System.EventHandler(this.btnExit_Click);
//
// label3
//
this.label3.AutoSize = true;
this.label3.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.label3.Location = new System.Drawing.Point(9, 15);
this.label3.Name = "label3";
this.label3.Size = new System.Drawing.Size(131, 13);
this.label3.TabIndex = 23;
this.label3.Text = "Barcode Type To Scan";
//
// cmbBarcodeType
//
this.cmbBarcodeType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
this.cmbBarcodeType.FormattingEnabled = true;
this.cmbBarcodeType.Location = new System.Drawing.Point(163, 12);
this.cmbBarcodeType.Name = "cmbBarcodeType";
this.cmbBarcodeType.Size = new System.Drawing.Size(245, 21);
this.cmbBarcodeType.Sorted = true;
this.cmbBarcodeType.TabIndex = 0;
//
// lblScanning
//
this.lblScanning.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right)));
this.lblScanning.AutoSize = true;
this.lblScanning.Font = new System.Drawing.Font("Tahoma", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204)));
this.lblScanning.Location = new System.Drawing.Point(580, 600);
this.lblScanning.Name = "lblScanning";
this.lblScanning.Size = new System.Drawing.Size(67, 13);
this.lblScanning.TabIndex = 24;
this.lblScanning.Text = "Scanning...";
this.lblScanning.Visible = false;
//
// label2
//
this.label2.AutoSize = true;
this.label2.Location = new System.Drawing.Point(9, 69);
this.label2.Name = "label2";
this.label2.Size = new System.Drawing.Size(132, 13);
this.label2.TabIndex = 26;
this.label2.Text = "Camera Image Dimensions";
//
// tbCameraWidth
//
this.tbCameraWidth.Location = new System.Drawing.Point(163, 66);
this.tbCameraWidth.Name = "tbCameraWidth";
this.tbCameraWidth.Size = new System.Drawing.Size(35, 20);
this.tbCameraWidth.TabIndex = 2;
this.tbCameraWidth.Text = "640";
//
// tbCameraHeight
//
this.tbCameraHeight.Location = new System.Drawing.Point(222, 66);
this.tbCameraHeight.Name = "tbCameraHeight";
this.tbCameraHeight.Size = new System.Drawing.Size(35, 20);
this.tbCameraHeight.TabIndex = 3;
this.tbCameraHeight.Text = "480";
//
// label4
//
this.label4.AutoSize = true;
this.label4.Location = new System.Drawing.Point(204, 69);
this.label4.Name = "label4";
this.label4.Size = new System.Drawing.Size(12, 13);
this.label4.TabIndex = 29;
this.label4.Text = "x";
//
// cbStopOnFirstBarcode
//
this.cbStopOnFirstBarcode.AutoSize = true;
this.cbStopOnFirstBarcode.Location = new System.Drawing.Point(12, 94);
this.cbStopOnFirstBarcode.Name = "cbStopOnFirstBarcode";
this.cbStopOnFirstBarcode.Size = new System.Drawing.Size(154, 17);
this.cbStopOnFirstBarcode.TabIndex = 30;
this.cbStopOnFirstBarcode.Text = "Stop on first barcode found";
this.cbStopOnFirstBarcode.UseVisualStyleBackColor = true;
//
// btnUpdateCameraImageDimensions
//
this.btnUpdateCameraImageDimensions.Location = new System.Drawing.Point(263, 64);
this.btnUpdateCameraImageDimensions.Name = "btnUpdateCameraImageDimensions";
this.btnUpdateCameraImageDimensions.Size = new System.Drawing.Size(71, 24);
this.btnUpdateCameraImageDimensions.TabIndex = 4;
this.btnUpdateCameraImageDimensions.Text = "Update";
this.btnUpdateCameraImageDimensions.UseVisualStyleBackColor = true;
this.btnUpdateCameraImageDimensions.Click += new System.EventHandler(this.btnUpdateCameraImageDimensions_Click);
//
// btnCameraProperties
//
this.btnCameraProperties.Location = new System.Drawing.Point(414, 38);
this.btnCameraProperties.Name = "btnCameraProperties";
this.btnCameraProperties.Size = new System.Drawing.Size(131, 23);
this.btnCameraProperties.TabIndex = 31;
this.btnCameraProperties.Text = "Camera Properties";
this.btnCameraProperties.UseVisualStyleBackColor = true;
this.btnCameraProperties.Click += new System.EventHandler(this.btnCameraProperties_Click);
//
// MainForm
//
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.btnExit;
this.ClientSize = new System.Drawing.Size(664, 728);
this.Controls.Add(this.btnCameraProperties);
this.Controls.Add(this.btnUpdateCameraImageDimensions);
this.Controls.Add(this.cbStopOnFirstBarcode);
this.Controls.Add(this.label4);
this.Controls.Add(this.tbCameraHeight);
this.Controls.Add(this.tbCameraWidth);
this.Controls.Add(this.label2);
this.Controls.Add(this.lblScanning);
this.Controls.Add(this.label3);
this.Controls.Add(this.cmbBarcodeType);
this.Controls.Add(this.btnExit);
this.Controls.Add(this.label1);
this.Controls.Add(this.cmbCamera);
this.Controls.Add(this.rtbFoundBarcodes);
this.Controls.Add(this.btnStop);
this.Controls.Add(this.btnStart);
this.Controls.Add(this.pictureBoxPreview);
this.Controls.Add(this.lblFoundBarcodes);
this.Name = "MainForm";
this.ShowIcon = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Barcode Scanner";
this.Load += new System.EventHandler(this.Form_Load);
((System.ComponentModel.ISupportInitialize)(this.pictureBoxPreview)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.Label lblFoundBarcodes;
private System.Windows.Forms.PictureBox pictureBoxPreview;
private System.Windows.Forms.Button btnStop;
private System.Windows.Forms.Button btnStart;
private System.Windows.Forms.RichTextBox rtbFoundBarcodes;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.ComboBox cmbCamera;
private System.Windows.Forms.Button btnExit;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.ComboBox cmbBarcodeType;
private System.Windows.Forms.Label lblScanning;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox tbCameraWidth;
private System.Windows.Forms.TextBox tbCameraHeight;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.CheckBox cbStopOnFirstBarcode;
private System.Windows.Forms.Button btnUpdateCameraImageDimensions;
private System.Windows.Forms.Button btnCameraProperties;
}
}
60 Day Free Trial or Visit ByteScout BarCode Reader SDK Home Page
Explore ByteScout BarCode Reader SDK Documentation
Explore Samples
Sign Up for ByteScout BarCode Reader SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
using System;
using System.ComponentModel;
using System.Drawing;
using System.Media;
using System.Reflection;
using System.Text;
using System.Windows.Forms;
using System.Threading;
using Bytescout.BarCodeReader;
using TouchlessLib;
namespace ReadFromVideoCamera
{
public partial class MainForm: Form
{
// Scan delay, ms.
const int SCAN_DELAY = 1500; // scan barcodes every 1.5 sec
// Touchless SDK library manager (to use it you should have TouchlessLib.dll referenced and WebCamLib.dll in the build output directory)
readonly TouchlessMgr _touchlessLibManager;
// Background thread for barcode scanning
readonly BackgroundWorker _backgroundWorker = new BackgroundWorker();
// Synchronization event
readonly AutoResetEvent _synchronizationEvent = new AutoResetEvent(false);
// Form constructor
public MainForm()
{
InitializeComponent();
// Create Touchless library manager
_touchlessLibManager = new TouchlessMgr();
// Setup background worker
_backgroundWorker.WorkerSupportsCancellation = true;
_backgroundWorker.DoWork += BackgroundWorker_DoWork;
_backgroundWorker.RunWorkerCompleted += BackgroundWorker_RunWorkerCompleted;
}
// On form loading
private void Form_Load(object sender, EventArgs e)
{
// Fill devices combobox with available video cameras
foreach (Camera camera in _touchlessLibManager.Cameras)
cmbCamera.Items.Add(camera);
// Select the first available camera. See also cmbCamera_SelectedIndexChanged event handler.
if (_touchlessLibManager.Cameras.Count > 0)
cmbCamera.SelectedItem = _touchlessLibManager.Cameras[0];
else
MessageBox.Show("No video camera available. Please connect the camera.");
// Populate barcode types combobox
PopulateBarcodeTypesCombobox();
// Select some default barcode type
cmbBarcodeType.SelectedItem = "QRCode";
}
protected void PopulateBarcodeTypesCombobox()
{
cmbBarcodeType.Items.Clear();
foreach (PropertyInfo propertyInfo in typeof(BarcodeTypeSelector).GetProperties())
cmbBarcodeType.Items.Add(propertyInfo.Name);
}
// On camera selected
private void cmbCamera_SelectedIndexChanged(object sender, EventArgs e)
{
if (_touchlessLibManager.CurrentCamera != null)
_touchlessLibManager.CurrentCamera.OnImageCaptured -= CurrentCamera_OnImageCaptured;
if (cmbCamera.SelectedIndex != -1)
{
Camera camera = _touchlessLibManager.Cameras[cmbCamera.SelectedIndex];
if (camera != null)
{
// Set camera output image dimensions
camera.CaptureWidth = int.Parse(tbCameraWidth.Text);
camera.CaptureHeight = int.Parse(tbCameraHeight.Text);
camera.OnImageCaptured += CurrentCamera_OnImageCaptured;
// Select the camera
_touchlessLibManager.CurrentCamera = camera;
}
}
}
private void btnUpdateCameraImageDimensions_Click(object sender, EventArgs e)
{
if (_touchlessLibManager.CurrentCamera != null)
{
// Update camera's output image dimensions
_touchlessLibManager.CurrentCamera.CaptureWidth = int.Parse(tbCameraWidth.Text);
_touchlessLibManager.CurrentCamera.CaptureHeight = int.Parse(tbCameraHeight.Text);
}
}
public void StartDecoding()
{
if (cmbCamera.SelectedIndex == -1)
return;
// Clear the output text box
rtbFoundBarcodes.Clear();
// Check if we have camera selected
if (cmbCamera.SelectedIndex != -1)
{
// Start the decoding in the background thread
BarcodeTypeSelector barcodeTypesToFind = GetBarcodeTypeFromCombobox();
_backgroundWorker.RunWorkerAsync(barcodeTypesToFind);
UpdateControls(true);
}
else
{
MessageBox.Show("Please select the camera first!");
}
}
private void StopDecoding()
{
_backgroundWorker.CancelAsync();
// Wait until BackgroundWorker finished
if (_backgroundWorker.IsBusy)
_synchronizationEvent.WaitOne();
UpdateControls(false);
}
void UpdateControls(bool started)
{
if (started)
{
btnStart.Enabled = false;
btnStop.Enabled = true;
cmbBarcodeType.Enabled = false;
cmbCamera.Enabled = false;
tbCameraHeight.Enabled = false;
tbCameraWidth.Enabled = false;
btnUpdateCameraImageDimensions.Enabled = false;
cbStopOnFirstBarcode.Enabled = false;
lblScanning.Visible = true;
lblScanning.Text = "Scanning...";
}
else
{
btnStart.Enabled = true;
btnStop.Enabled = false;
cmbBarcodeType.Enabled = true;
cmbCamera.Enabled = true;
cbStopOnFirstBarcode.Enabled = true;
tbCameraHeight.Enabled = true;
tbCameraWidth.Enabled = true;
btnUpdateCameraImageDimensions.Enabled = true;
lblScanning.Visible = true;
}
}
void CurrentCamera_OnImageCaptured(object sender, CameraEventArgs e)
{
pictureBoxPreview.Image = e.Image;
}
private void btnStart_Click(object sender, EventArgs e)
{
StartDecoding();
}
private void btnStop_Click(object sender, EventArgs e)
{
StopDecoding();
}
// Background thread procedure used by BackgroundWorker
public void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
BackgroundWorker worker = (BackgroundWorker) sender;
BarcodeTypeSelector barcodeTypesToFind = (BarcodeTypeSelector) e.Argument;
// Create and setup barcode reader instance
using (Reader reader = new Reader())
{
reader.RegistrationName = "demo";
reader.RegistrationKey = "demo";
reader.BarcodeTypesToFind = barcodeTypesToFind;
// Work while not canceled
while (true)
{
// Check cancellation
if (worker.CancellationPending)
{
e.Cancel = true;
_synchronizationEvent.Set();
return;
}
// Get image from camera by invoking method from UI thread
Bitmap bitmap = (Bitmap) Invoke(new GetCameraImageDelegate(GetCameraImage));
if (bitmap == null)
{
e.Result = null;
return;
}
/* -----------------------------------------------------------------------
NOTE: We can read barcodes from specific page to increase performance.
For sample please refer to "Decoding barcodes from PDF by pages" program.
----------------------------------------------------------------------- */
// Search the image for barcodes
FoundBarcode[] result = reader.ReadFrom(bitmap);
// Update UI asynchronously
BeginInvoke(new Action<FoundBarcode[]>(UpdateStatus), new object[] { result });
// Pause
Thread.Sleep(SCAN_DELAY);
}
}
}
delegate Bitmap GetCameraImageDelegate();
Bitmap GetCameraImage()
{
if (!IsDisposed && !Disposing && _touchlessLibManager.CurrentCamera != null)
return _touchlessLibManager.CurrentCamera.GetCurrentImage();
return null;
}
// Update UI with found barcodes information
void UpdateStatus(FoundBarcode[] foundBarcodes)
{
if (foundBarcodes != null && foundBarcodes.Length > 0)
{
// Play sound if we found any barcode
SystemSounds.Beep.Play();
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.AppendFormat("Time: {0:HH:mm:ss:tt}", DateTime.Now);
stringBuilder.AppendLine();
// Display found barcodes in the output text box
foreach (FoundBarcode barcode in foundBarcodes)
{
stringBuilder.AppendFormat("Found barcode: {0} {1}", barcode.Type, barcode.Value);
stringBuilder.AppendLine();
}
rtbFoundBarcodes.Text = stringBuilder.ToString();
// Update status text with number of found barcodes
lblFoundBarcodes.Text = string.Format("Found {0} barcodes:", foundBarcodes.Length);
}
// Make "Scanning..." label flicker.
lblScanning.Visible = !lblScanning.Visible;
lblScanning.Refresh();
// Check if we need to stop on first barcode found
if (cbStopOnFirstBarcode.Checked && foundBarcodes != null && foundBarcodes.Length > 0)
{
StopDecoding();
}
}
// Background thread is finished
private void BackgroundWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
// Update UI asynchronously
BeginInvoke(new Action<RunWorkerCompletedEventArgs>(OnBackgroundWorkerFinished), new object[] { e });
}
void OnBackgroundWorkerFinished(RunWorkerCompletedEventArgs completedEventArgs)
{
if (completedEventArgs.Cancelled)
{
lblScanning.Text = "Stopped";
}
else if (completedEventArgs.Error != null)
{
lblScanning.Text = "Error: " + completedEventArgs.Error.Message;
}
else
{
lblScanning.Text = "Done!";
}
UpdateControls(false);
}
// Gets selected barcode type
private BarcodeTypeSelector GetBarcodeTypeFromCombobox()
{
BarcodeTypeSelector result = new BarcodeTypeSelector();
string selectedBarcodeTypeName = (string) cmbBarcodeType.SelectedItem;
PropertyInfo propertyInfo = typeof(BarcodeTypeSelector).GetProperty(selectedBarcodeTypeName);
propertyInfo.SetValue(result, true, null);
return result;
}
protected override void OnClosing(CancelEventArgs e)
{
StopDecoding();
_touchlessLibManager.Dispose();
base.OnClosing(e);
}
private void btnExit_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
Close();
}
private void btnCameraProperties_Click(object sender, EventArgs e)
{
try
{
if (_touchlessLibManager.CurrentCamera != null)
_touchlessLibManager.CurrentCamera.ShowPropertiesDialog(Handle);
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
}
}
}
60 Day Free Trial or Visit ByteScout BarCode Reader SDK Home Page
Explore ByteScout BarCode Reader SDK Documentation
Explore Samples
Sign Up for ByteScout BarCode Reader SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
using System;
using System.Windows.Forms;
namespace ReadFromVideoCamera
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[MTAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
MainForm dlg = new MainForm();
dlg.ShowDialog();
}
}
}
60 Day Free Trial or Visit ByteScout BarCode Reader SDK Home Page
Explore ByteScout BarCode Reader SDK Documentation
Explore Samples
Sign Up for ByteScout BarCode Reader SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples
60 Day Free Trial or Visit ByteScout BarCode Reader SDK Home Page
Explore ByteScout BarCode Reader SDK Documentation
Explore Samples
Sign Up for ByteScout BarCode Reader SDK Online Training
Get Your API Key
Explore Web API Docs
Explore Web API Samples