WIA C# sample and WIA VB.NET sample will show you how to acquire images via WIA scanner to recognize barcodes.
In the latest version of BarCode Reader SDK we have implemented new WIAImageScanner class that allows to acquire images and works on Windows XP, Vista, 7, Windows 8 for both x86 and x64 platforms. Find source code samples of using this class below.
C#
using System; using System.IO; using System.Text; using System.Windows.Forms; using Bytescout.BarCodeReader; // This example demonstrates camera image acquiring using Windows Image Acquisition (WIA). // using built-in <span data-scayt_word="WIAImageScanner" data-scaytid="10">WIAImageScanner</span> class from <span data-scayt_word="barCode" data-scaytid="12">barCode</span> Reader SDK <span data-scayt_word="namespace" data-scaytid="13">namespace</span> <span data-scayt_word="BarcodeFromWebCam" data-scaytid="14">BarcodeFromWebCam</span> { static class Program { static void Main() { // create <span data-scayt_word="WIA" data-scaytid="15">WIA</span> scanner object <span data-scayt_word="WIAImageScanner" data-scaytid="16">WIAImageScanner</span> <span data-scayt_word="wiaScanner" data-scaytid="21">wiaScanner</span> = new <span data-scayt_word="WIAImageScanner" data-scaytid="17">WIAImageScanner</span>(); wiaScanner.OutputFileNameTemplate = "<span data-scayt_word="BarCodeReader-scanned" data-scaytid="22">BarCodeReader-scanned</span>"; wiaScanner.OutputImageFormat = WiaImageFormatType.PNG; wiaScanner.ImageQuality = WiaImageBias.MaximizeQuality; wiaScanner.ImageIntent = WiaImageIntent.UnspecifiedIntent; wiaScanner.ShowDeviceSelectionDialog = true; try { // run acquire and exit if canceled or zero images if (!wiaScanner.Acquire()) return; } catch (Exception E) { string message = E.Message; if (E.InnerException != null) message = message + "rnrn" + E.InnerException.Message; MessageBox.Show("Error while acquiring images:rnrn" + message); return; } // Read barcode: Reader <span data-scayt_word="barcodeReader" data-scaytid="25">barcodeReader</span> = new Reader(); <span data-scayt_word="FoundBarcode" data-scaytid="26">FoundBarcode</span>[] barcodes = barcodeReader.ReadFrom(wiaScanner.OutputFiles[0]); if (barcodes.Length > 0) { <span data-scayt_word="StringBuilder" data-scaytid="28">StringBuilder</span> builder = new <span data-scayt_word="StringBuilder" data-scaytid="29">StringBuilder</span>(); <span data-scayt_word="foreach" data-scaytid="30">foreach</span> (<span data-scayt_word="FoundBarcode" data-scaytid="27">FoundBarcode</span> barcode in barcodes) builder.AppendLine(String.Format("Found barcode with type '{0}' and value '{1}'", barcode.Type, barcode.Value)); MessageBox.Show(builder.ToString()); } else { MessageBox.Show(wiaScanner.OutputFiles[0] + "rnr<span data-scayt_word="nCould" data-scaytid="32">nCould</span> not find any barcode."); } } } }
Visual Basic .NET
Imports System.IO Imports System.Text Imports System.Windows.Forms Imports Bytescout.BarCodeReader ' This example demonstrates camera image acquiring using Windows Image Acquisition (WIA). ' using built-in <span data-scayt_word="WIAImageScanner" data-scaytid="35">WIAImageScanner</span> class from <span data-scayt_word="barCode" data-scaytid="36">barCode</span> Reader SDK <span data-scayt_word="NotInheritable" data-scaytid="40">NotInheritable</span> Class Program Private Sub New() End Sub Friend Shared Sub Main() ' use <span data-scayt_word="WIA" data-scaytid="37">WIA</span> barcode reader scanner Dim <span data-scayt_word="wiaScanner" data-scaytid="43">wiaScanner</span> As <span data-scayt_word="WIAImageScanner" data-scaytid="44">WIAImageScanner</span> = New <span data-scayt_word="WIAImageScanner" data-scaytid="45">WIAImageScanner</span> wiaScanner.OutputFileNameTemplate = "<span data-scayt_word="BarCodeReader-scanned" data-scaytid="50">BarCodeReader-scanned</span>" wiaScanner.OutputImageFormat = WiaImageFormatType.PNG wiaScanner.ImageQuality = WiaImageBias.MaximizeQuality wiaScanner.ImageIntent = WiaImageIntent.UnspecifiedIntent wiaScanner.ShowDeviceSelectionDialog = True Try ' run acquire and exit if canceled or zero images If Not wiaScanner.Acquire() Then Return End If Catch E As Exception Dim message As String = E.Message If E.InnerException <span data-scayt_word="IsNot" data-scaytid="53">IsNot</span> Nothing Then message = message + "rnrn" + E.InnerException.Message MessageBox.Show("Error while acquiring images:rnrn" + message) Return End If End Try ' Read barcode: Dim <span data-scayt_word="barcodeReader" data-scaytid="52">barcodeReader</span> As New Reader() Dim barcodes As <span data-scayt_word="FoundBarcode" data-scaytid="56">FoundBarcode</span>() = barcodeReader.ReadFrom(wiaScanner.OutputFiles(0)) If barcodes.Length > 0 Then Dim builder As New <span data-scayt_word="StringBuilder" data-scaytid="57">StringBuilder</span>() For Each barcode As <span data-scayt_word="FoundBarcode" data-scaytid="59">FoundBarcode</span> In barcodes builder.AppendLine([String].Format("Found barcode with type '{0}' and value '{1}'", barcode.Type, barcode.Value)) Next MessageBox.Show(builder.ToString()) Else MessageBox.Show(wiaScanner.OutputFiles(0) + "" & <span data-scayt_word="Chr" data-scaytid="62">Chr</span>(13) & "" & Chr(10) & "" & Chr(13) & "" & Chr(10) & "Could not find any barcode.") End If End Sub End Class
The demo video shows how to read Code39 barcode with ByteScout Barcode Reader SDK: