IRONSOFTWAREHOME
USING IRONBARCODE

C# QR Code Reader (Step by Step Tutorial for Beginner)

Curtis Chau
Curtis Chau
Updated: April 21, 2026

In today's digitally driven world, QR codes (Quick Response Codes) have become ubiquitous, seamlessly connecting physical and digital realms. From marketing to logistics, finance to healthcare, QR codes play a pivotal role in facilitating efficient data exchange.

In this article, we delve into the realm of C# development, exploring how IronQR, one of the best QR code libraries in the market, empowers developers to harness the power of QR code recognition, effortlessly decode data, and innovate across various domains.

IronQR from Iron Software stands out as a robust .NET QR code reader library. The advanced machine learning model implemented by IronQR empowers your applications to decode QR codes with unmatched accuracy and efficiency, even in challenging scenarios.

How to Read QR Codes using C# with IronQR

  1. Create a Visual Studio project with a .NET Windows Forms Application template.
  2. Install IronQR from the NuGet package manager.
  3. Get the QR code from the camera as an image using the AForge library.
  4. Read QR Codes using IronQR.

IronQR stands out as the premier C# QR code reader library designed to both scan and generate QR code images within the .NET framework. Through the utilization of cutting-edge ML technology, IronQR has elevated QR code reading to unprecedented levels.

Whether you are scanning QR codes from images, videos, or live camera feeds, the ML-powered solution guarantees swift and reliable information retrieval.

This innovative approach not only streamlines data extraction but also enhances security by discerning between authentic QR codes and potential threats. With its intuitive API, developers can seamlessly integrate QR code capabilities into their .NET projects in a matter of minutes.

IronQR seamlessly integrates with .NET Core (8, 7, 6, 5, and 3.1+), .NET Standard (2.0+), and .NET Framework (4.6.2+). The present .NET Core version extends its support to client operating systems like Linux, Unix, and macOS, along with compatibility to develop mobile apps.

Prerequisites

  1. Visual Studio: Make sure you have Visual Studio or any other .NET development environment installed.
  2. Compatible Camera: Ensure that the camera is connected to your device.
  3. NuGet Package Manager: Verify that you can utilize NuGet to manage packages in your project.

Step 1: Create a Visual Studio project with a .NET Windows Forms Application template

Let's get started by creating a Windows Forms .NET application to read QR code barcodes from camera video streams or image files. Open Visual Studio, select Create New Project, and then select the .NET Windows Forms Application template.

Visual Studio Setup

Click Next and enter the project name.

Project Naming

Select the desired .NET Versions and then click the Create button.

Create Project

Step 2: Install IronQR from the NuGet package manager

IronQR can be installed using the NuGet package manager or Visual Studio Package Manager.

NuGet Installation

Below shows how you can do it using Visual Studio.

Visual Studio NuGet

Step 3: Get the QR code from the camera as an image using the AForge Library

To scan QR codes from camera devices, we need to install the AForge.Video.DirectShow library. This can be done using the Visual Studio package manager. Right-click on the Solution Explorer and open the Package Manager.

AForge Installation Step 1

This library can also be installed using the NuGet package console as shown below. Click the Install button to install the library.

AForge Installation Step 2

Step 4: Read QR Codes using IronQR

The next step is to create a PictureBox component in the Form, which is required to scan the QR code image from the camera device connected to the machine.

This can be done by dragging and dropping from the toolbox. This PictureBox is required to read the QR code data from the camera device.

Add PictureBox

Next, drag and drop a Text box to show the read QR codes.

Add TextBox

Add the below code to read QR codes and decode them using IronQR.

using AForge.Video.DirectShow;
using AForge.Video;
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Windows.Forms;
using IronQR;

namespace ReadQR
{
    public partial class Form1 : Form
    {
        // Declare a video capture device
        private VideoCaptureDevice videoSource;

        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.FormClosing += Form1_FormClosing;
        }

        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            // Stop the video source when the form is closing
            if (videoSource != null && videoSource.IsRunning)
            {
                videoSource.SignalToStop();
                videoSource.WaitForStop();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Retrieve video input devices connected to the machine
            FilterInfoCollection videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice);

            if (videoDevices.Count > 0)
            {
                // Use the first available video device
                videoSource = new VideoCaptureDevice(videoDevices[0].MonikerString);
                videoSource.NewFrame += VideoSource_NewFrame;
                videoSource.Start();
            }
            else
            {
                MessageBox.Show("No video devices found.");
                Close();
            }
        }

        private void VideoSource_NewFrame(object sender, NewFrameEventArgs eventArgs)
        {
            // Update the PictureBox with the new frame from the camera
            pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

            var image = (Bitmap)eventArgs.Frame.Clone();

            // Set the license key for IronQR. Replace "YourKey" with your actual key
            License.LicenseKey = "YourKey";

            // Prepare the image for QR code reading
            QrImageInput imageInput = new QrImageInput(image);

            // Create a QR reader object
            QrReader reader = new QrReader();

            // Read QR codes from the image
            IEnumerable<QrResult> results = reader.Read(imageInput);

            // Display the first QR code result in a MessageBox
            if (results.Any())
            {
                MessageBox.Show(results.First().Value);
            }
        }
    }
}

Input Image file

The encoded text in the QR code is: I Love IronQR

QR Code Example

Output

QR Code Result

Example Code Explanation

  1. We have registered two events in Windows Forms: Form1_Load and Form1_FormClosing.
  2. We have also registered VideoSource_NewFrame to an instance of videoSource from the AForge.Video.DirectShow library.
  3. We read the QR codes from the live video stream.
  4. When a QR code is detected, we show a MessageBox with the decoded text.

Licensing (Free Trial Available)

IronQR requires a license key. A trial key can be obtained from the website here. This key needs to be placed in appsettings.json.

{
    "IronQR.LicenseKey": "MYLICENSE.KEY.TRIAL"
}
JSON

Provide the email ID to get a trial license, and after submitting, the key will be delivered via email.

License Key

Conclusion

In conclusion, QR codes have transcended their origins to become indispensable in our digital ecosystem. With IronQR, C# developers can harness the power of QR code recognition, decode data in various types of QR codes with ease, and innovate across various domains.

As QR codes continue to evolve and integrate into new technologies, their importance in facilitating seamless data exchange and enhancing user experiences will only grow. Embrace the potential of QR codes with IronQR and embark on a journey of innovation and efficiency in C# development.

Curtis Chau
Technical Writer

Curtis Chau holds a Bachelor’s degree in Computer Science (Carleton University) and specializes in front-end development with expertise in Node.js, TypeScript, JavaScript, and React. Passionate about crafting intuitive and aesthetically pleasing user interfaces, Curtis enjoys working with modern frameworks and creating well-structured, visually appealing manuals.

...
Read More

Related Articles

Key in blue circle

Get your free 30-day Trial Key instantly.

Your trial license will be sent to your email address

No limitations. 100% unlocked. No credit card.

bullet_checkedNo credit card or account creation requiredNo limitations. 100% unlocked. No credit card.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Book your free Live Demo
Booking Badge

Trusted by Millions of Engineers Worldwide

Iron Software's customer logos
Get Your No-Obligation Consult
Complete the form below or email sales@ironsoftware.com
Your details will always be kept confidential.
Trusted by Millions of Engineers Worldwide
Iron Software's customer logos
Get your free 30-day Trial Key instantly.
No credit card or account creation required