The C# Barcode Library
Go beyond basic barcode generation. Get advanced barcode reading and creation for .NET 10 with ML-powered preprocessing and batch processing.
- Read 30+ formats including all major 1D/2D types
- Create barcodes with styling, sizing, annotation control
- Batch process with async and multi-threading
- Free 30-day trial, full features, no credit card
Barcode Quickstart
See All Code Examplesusing IronBarCode;
using System.Drawing;
// Reading a barcode is easy with IronBarcode!
var resultFromFile = BarcodeReader.Read(@"file/barcode.png"); // From a file
var resultFromBitMap = BarcodeReader.Read(new Bitmap("barcode.bmp")); // From a bitmap
var resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")); // From an image file
var resultFromPdf = BarcodeReader.ReadPdf(@"file/mydocument.pdf"); // From PDF use ReadPdf
// To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
var myOptionsExample = new BarcodeReaderOptions
{
// Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
// There is a tradeoff in performance as more detail is set
Speed = ReadingSpeed.Balanced,
// Reader will stop scanning once a single barcode is found (if set to true)
ExpectMultipleBarcodes = true,
// By default, all barcode formats are scanned for
// Specifying a subset of barcode types to search for would improve performance
ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
// Utilize multiple threads to read barcodes from multiple images in parallel
Multithreaded = true,
// Maximum threads for parallelized barcode reading
// Default is 4
MaxParallelThreads = 2,
// The area of each image frame in which to scan for barcodes
// Specifying a crop area will significantly improve performance and avoid noisy parts of the image
CropArea = new Rectangle(),
// Special setting for Code39 barcodes
// If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
UseCode39ExtendedMode = true
};
// Read with the options applied
var results = BarcodeReader.Read("barcode.png", myOptionsExample);
// Create a barcode with one line of code
var myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8);
// After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100);
// Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg");
// Get the barcode as an image for further processing
var myBarcodeImage = myBarcode.Image;
Imports IronBarCode
Imports System.Drawing
' Reading a barcode is easy with IronBarcode!
Dim resultFromFile = BarcodeReader.Read("file/barcode.png") ' From a file
Dim resultFromBitMap = BarcodeReader.Read(New Bitmap("barcode.bmp")) ' From a bitmap
Dim resultFromImage = BarcodeReader.Read(Image.FromFile("barcode.jpg")) ' From an image file
Dim resultFromPdf = BarcodeReader.ReadPdf("file/mydocument.pdf") ' From PDF use ReadPdf
' To configure and fine-tune barcode reading, utilize the BarcodeReaderOptions class
Dim myOptionsExample As New BarcodeReaderOptions With {
' Choose a reading speed from: Faster, Balanced, Detailed, ExtremeDetail
' There is a tradeoff in performance as more detail is set
.Speed = ReadingSpeed.Balanced,
' Reader will stop scanning once a single barcode is found (if set to true)
.ExpectMultipleBarcodes = True,
' By default, all barcode formats are scanned for
' Specifying a subset of barcode types to search for would improve performance
.ExpectBarcodeTypes = BarcodeEncoding.AllOneDimensional,
' Utilize multiple threads to read barcodes from multiple images in parallel
.Multithreaded = True,
' Maximum threads for parallelized barcode reading
' Default is 4
.MaxParallelThreads = 2,
' The area of each image frame in which to scan for barcodes
' Specifying a crop area will significantly improve performance and avoid noisy parts of the image
.CropArea = New Rectangle(),
' Special setting for Code39 barcodes
' If a Code39 barcode is detected, try to read with both the base and extended ASCII character sets
.UseCode39ExtendedMode = True
}
' Read with the options applied
Dim results = BarcodeReader.Read("barcode.png", myOptionsExample)
' Create a barcode with one line of code
Dim myBarcode = BarcodeWriter.CreateBarcode("12345", BarcodeWriterEncoding.EAN8)
' After creating a barcode, we may choose to resize
myBarcode.ResizeTo(400, 100)
' Save our newly-created barcode as an image
myBarcode.SaveAsImage("EAN8.jpeg")
' Get the barcode as an image for further processing
Dim myBarcodeImage = myBarcode.ImageCross Platform Support
Designed for C#, F#, & VB.NET running on .NET 10, 9, 8, 7, 6, 5, Core, Standard, or Framework
For Mobile QR support, try our IronQR Library
.NET Versions:
- C#, VB.NET, F# Languages
- .NET Core (10, 9, 8, 7, 6, 5, and 3.1+)
- .NET Standard (2.0+)
- .NET Framework (4.6.2+)
OS & Processors:
- Windows (x64, x86)
- Mac (x64, ARM)
- Linux (x64)
.NET Project Types:
- Web (Blazor & WebForms)
- Mobile (MAUI)
- Desktop (WPF & MAUI)
- Console (App & Library)
App Environments:
- Windows (10+, Server 2016+)
- Linux (Ubuntu, Debian, CentOS, etc.)
- Mac (macOS 10+)
- Apple iOS (13+)
- Android API 24+ (v7 “Nougat”)
- Docker (Windows, Linux, Azure)
- Azure (VPS, WebApp, Function)
- AWS (EC2, Lambda)
IDEs:
- Microsoft Visual Studio
- Jetbrains ReSharper & Rider
Binary Certification
- Microsoft Authenticode
A C# Barcode Library that prioritizes accuracy, ease of use, and speed.
IronBarcode is the leading C# Barcode library for reading and creating barcodes in .NET. Its user friendly API allows developers to add Barcode functionality to .NET projects in minutes.
Get your free 30-day Trial Key instantly.
When you need to read, write, and style Barcodes, fast.
Generate
Output to Various Formats
Barcode Format Support
Style
Cross-Compatibility
Support Platforms
- .NET Languages (C#, F#, VB.NET)
- .NET Core & Framework (9, 8, 7, 6, 5, 3, 2 & 4.6.2+)
- Platforms (Windows, macOS, Linux, iOS & Android)
Read
Read Many Data Formats
- Images (SVG, JPEG, PNG, GIF, TIFF, BMP)
- IronDrawing
- System.Drawing.Object
- Streams
Fine-tune Reading Performance
Fault Tolerance
Fault Tolerance
Debugging
Image Correction Filters
Image Correction Filters
- Adaptive Threshold
- Binary Threshold
- Brightness
- Contrast
- Invert
- Sharpen
- Blur (Gaussian, Median, Bilateral)
- Histogram Equalization
- Erosion
- Dilation
Others
Support
Why IronBarcode?
Read and write any barcode. Ship fast. Runs on Windows, Linux, macOS & cloud.
Broad format support
- 50+ barcode types: Code 39/93/128, UPC, EAN, QR, Data Matrix, PDF417, Aztec, and more.
- Read and write barcodes in a single library, no separate tools needed.
- Export to image, PDF, or HTML in one call.
Up & running in 5 mins
- → 5-minute quick starts.
- Simple API:
BarcodeReader.Read(),BarcodeWriter.CreateBarcode(). - Smart defaults: auto image correction and barcode detection built-in.
Enterprise performance
- .NET 10, Core, Standard, or Framework
- Multithreading and batch scanning: process 1,000+ barcodes per minute.
- Deploys anywhere: cloud, on-premise, air-gapped, and serverless.
Accurate reading, any condition
- ML-powered preprocessing: auto-corrects skew, noise, orientation, and low DPI.
- 98%+ success rate on damaged or poorly printed barcodes in production.
- Crop regions and confidence scores for precise, auditable results.
Developer-first support & licensing
- Perpetual license: buy once, use forever. Optional updates and renewals.
- 24/5 engineer support (24/7 in Premium). Real humans, median chat response <1 min.
- 30-day money-back guarantee. Not the right fit? Full refund, no questions.
For builders
- Features you'll actually use:
- read/write barcodes
- QR code generation
- batch scanning
- image correction filters
- crop regions (ROI)
- confidence scores
- barcode styling
- PDF/HTML export
- logo embedding (QR)
- custom encoding
- Works everywhere: Windows, Linux, macOS, Docker, Azure, AWS, cloud.
For buyers
- Trusted by 2M+ engineers • 2M+ NuGet installs.
- Teams report -40% dev-time saved vs DIY/OSS wrappers.
- Redistribution/SaaS options available.
- Procurement-friendly: perpetual license, optional renewals, invoice available, multiple payment options (including local).
- 30-day money-back guarantee.
Trusted by millions of engineers worldwide
Every time developers ask, it's a YES! from IronBARCODE
Can IronBarcode read and write major barcode formats (QR, Aztec, Data Matrix, PDF417, UPC, EAN, Code128) in one .NET assembly?YES!
Can multiple barcodes of different types be read from a single image or PDF page at once?YES!
Does it read barcodes directly from PDFs without needing external page-to-image conversion?YES!
Can generated QR codes be styled with logos, custom colors, and adjusted borders?YES!
Does it apply image correction filters (denoising, contrast, deskewing) to improve read rates?YES!
Does it return detailed result data including value, binary data, orientation, and bounding box?YES!
Can barcodes be generated directly to Stream or byte[] without saving to disk?YES!
Is it fully cross-platform on .NET Core, Standard, and Framework across Windows, Linux, macOS, Docker, and Azure?YES!
Does it support multi-threading and async for high-performance batch processing?YES!
Can barcodes be output as HTML Data URIs or stamped onto existing PDFs?YES!
Does it support fault-tolerant barcodes that remain scannable when partially damaged?YES!
Can I test IronBarcode in my live project for free now?YES! Click here to start your 30-day free trial
Ready to Get Started?
Nuget Downloads 2,422,100|Version:2026.9just released


