Read and decode 2D barcode symbologies, including QR code, Micro QR code, Data Matrix, PDF417, Aztec Code, and MaxiCode. Powered by AI and fuzzy logic, the barcode engine delivers fast, accurate recognition — even with blurred or damaged codes.
This SDK provides powerful 2D barcode recognition and generation for .NET applications. Decode and create QR codes, Data Matrix, PDF417, Aztec Code, and MaxiCode with Unicode support, flexible configuration options, and robust error correction for reliable results.
Decode 2D barcodes from images and PDFs — full-page or region-specific. Recognizes partially damaged symbols using error correction code (ECC) with full Unicode support for international character sets.
Generate 2D barcodes in image and PDF formats with vector or raster output. Configure error correction levels, encoding modes, and symbol sizes to match your application requirements.
Supports five major 2D barcode types: Data Matrix, PDF417, QR code, Micro QR code, Aztec Code, and MaxiCode. Read and write across all formats with consistent API methods.
Returns the decoded string value, barcode type, bounding box coordinates (top-left, top-right, bottom-left, bottom-right), and structural data, including row and column count for matrix barcodes.
Read barcodes on full pages or within specific regions of interest. Supports detection across multiple layouts and document types with configurable scanning parameters.
Access expert technical support for integration, optimization, and troubleshooting. Our team is available to help you implement barcode solutions effectively.
DEMO
Upload an image or PDF containing 2D barcodes to see instant recognition results. Test detection accuracy across QR codes, Data Matrix, PDF417, Aztec Code, and MaxiCode with various image qualities.
GET STARTED
Download and install the GdPicture.NET package to access compiled demo applications and multi-language sample projects with full source code.
\Samples\Bin\.\Samples\WinForm\.using GdPictureImaging gdpictureImaging = new GdPictureImaging();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Scan the barcodes.gdpictureImaging.BarcodeDataMatrixReaderDoScan(imageID);// Determine the number of scanned barcodes.int barcodeCount = gdpictureImaging.BarcodeDataMatrixReaderGetBarcodeCount();string content = "";if (barcodeCount > 0){ content = "Number of barcodes scanned: " + barcodeCount.ToString(); // Save the value of each barcode. for (int i = 1; i <= barcodeCount; i++) { content += $"\nBarcode Number: {i} Value: {gdpictureImaging.BarcodeDataMatrixReaderGetBarcodeValue(i)}"; }}// Write the values to the console.Console.WriteLine(content);// Release unnecessary resources.gdpictureImaging.BarcodeDataMatrixReaderClear();gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpictureImaging As GdPictureImaging = New GdPictureImaging() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Scan the barcodes. gdpictureImaging.BarcodeDataMatrixReaderDoScan(imageID) ' Determine the number of scanned barcodes. Dim barcodeCount As Integer = gdpictureImaging.BarcodeDataMatrixReaderGetBarcodeCount() Dim content = "" If barcodeCount > 0 Then content = "Number of barcodes scanned: " & barcodeCount.ToString() ' Save the value of each barcode. For i = 1 To barcodeCount content = content & vbLf & "Barcode Number: " & i.ToString() & " Value: " & gdpictureImaging.BarcodeDataMatrixReaderGetBarcodeValue(i).ToString() Next End If ' Write the values to the console. Console.WriteLine(content); ' Release unnecessary resources. gdpictureImaging.BarcodeDataMatrixReaderClear() gdpictureImaging.ReleaseGdPictureImage(imageID)End Usingusing GdPictureImaging gdpictureImaging = new GdPictureImaging();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Scan the barcodes.gdpictureImaging.BarcodePDF417ReaderDoScan(imageID);// Determine the number of scanned barcodes.int barcodeCount = gdpictureImaging.BarcodePDF417ReaderGetBarcodeCount();string content = "";if (barcodeCount > 0){ content = "Number of barcodes scanned: " + barcodeCount.ToString(); // Save the value of each barcode. for (int i = 1; i <= barcodeCount; i++) { content += $"\nBarcode Number: {i} Value: {gdpictureImaging.BarcodePDF417ReaderGetBarcodeValue(i)}"; }}// Write the values to the console.Console.WriteLine(content);// Release unnecessary resources.gdpictureImaging.BarcodePDF417ReaderClear();gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpictureImaging As GdPictureImaging = New GdPictureImaging() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Scan the barcodes. gdpictureImaging.BarcodePDF417ReaderDoScan(imageID) ' Determine the number of scanned barcodes. Dim barcodeCount As Integer = gdpictureImaging.BarcodePDF417ReaderGetBarcodeCount() Dim content = "" If barcodeCount > 0 Then content = "Number of barcodes scanned: " & barcodeCount.ToString() ' Save the value of each barcode. For i = 1 To barcodeCount content = content & vbLf & "Barcode Number: " & i.ToString() & " Value: " & gdpictureImaging.BarcodePDF417ReaderGetBarcodeValue(i).ToString() Next End If ' Write the values to the console. Console.WriteLine(content); ' Release unnecessary resources. gdpictureImaging.BarcodePDF417ReaderClear() gdpictureImaging.ReleaseGdPictureImage(imageID)End Usingusing GdPictureImaging gdpictureImaging = new GdPictureImaging();// Select the image to process.int imageID = gdpictureImaging.CreateGdPictureImageFromFile(@"C:\temp\source.png");// Scan the barcodes.gdpictureImaging.BarcodeQRReaderDoScan(imageID);// Determine the number of scanned barcodes.int barcodeCount = gdpictureImaging.BarcodeQRReaderGetBarcodeCount();string content = "";if (barcodeCount > 0){ content = "Number of barcodes scanned: " + barcodeCount.ToString(); // Save the value of each barcode. for (int i = 1; i <= barcodeCount; i++) { content += $"\nBarcode Number: {i} Value: {gdpictureImaging.BarcodeQRReaderGetBarcodeValue(i)}"; }}// Write the values to the console.Console.WriteLine(content);// Release unnecessary resources.gdpictureImaging.BarcodeQRReaderClear();gdpictureImaging.ReleaseGdPictureImage(imageID);Using gdpictureImaging As GdPictureImaging = New GdPictureImaging() ' Select the image to process. Dim imageID As Integer = gdpictureImaging.CreateGdPictureImageFromFile("C:\temp\source.png") ' Scan the barcodes. gdpictureImaging.BarcodeQRReaderDoScan(imageID) ' Determine the number of scanned barcodes. Dim barcodeCount As Integer = gdpictureImaging.BarcodeQRReaderGetBarcodeCount() Dim content = "" If barcodeCount > 0 Then content = "Number of barcodes scanned: " & barcodeCount.ToString() ' Save the value of each barcode. For i = 1 To barcodeCount content = content & vbLf & "Barcode Number: " & i.ToString() & " Value: " & gdpictureImaging.BarcodeQRReaderGetBarcodeValue(i).ToString() Next End If ' Write the values to the console. Console.WriteLine(content); ' Release unnecessary resources. gdpictureImaging.BarcodeQRReaderClear() gdpictureImaging.ReleaseGdPictureImage(imageID)End UsingLearn how to implement barcode reading and generation in your .NET applications. These short tutorials cover common integration patterns and best practices.
The GdPicture.NET SDK supports a comprehensive range of 2D barcode symbologies, including:
This extensive support ensures compatibility with various industry standards and applications.
Yes. The GdPicture.NET SDK is capable of detecting and decoding multiple 2D barcodes within a single page or image. It can process barcodes on an entire page or within a specified region of interest, providing flexibility for various use cases
The SDK incorporates error correction code (ECC) algorithms to recognize and reconstruct partially destroyed or obscured symbols. This feature enhances the reliability of barcode recognition, even when dealing with damaged documents.
Yes. The SDK is designed to function efficiently in multithreaded environments. It supports AnyCPU configurations, making it suitable for both 32-bit and 64-bit applications, and ensuring high performance in concurrent processing scenarios.
Upon detecting a barcode, the SDK returns detailed information, including:
This comprehensive data aids developers in accurately interpreting and utilizing the barcode information within their applications.
60-day free trial