This page provides you the information about development history of VintaSoft Barcode .NET SDK.
The information about the SDK API history can be obtained from documentation.
Added the ability to recognize and generate Japan Post barcodes.
Added the ability to recognize and generate Italian Post 2 of 5 barcodes.
Now the barcode generator can generate vector representation of barcode with barcode text (for example EAN-13 barcode with text under barcode). Previously the barcode generator was able to generate vector representation of barcode without barcode text only.
Now the barcode generator can generate SVG-image of barcode with barcode text (for example EAN-13 barcode with text under barcode). Previously the barcode generator was able to generate SVG-image of barcode without barcode text only.
Now ISO15415 barcode print quality test can return the modulation matrix of analyzed barcode. The modulation matrix can be used to identify problems in printed barcode.
Increased the recognition performance of QR barcodes up to 20%.
Increased the recognition performance of DataMatrix barcodes up to 20%.
Improved the recognition of 1D and PDF417 barcodes on images with low quality.
BarcodeDemo: Added the ability to view the modulation matrix for a 2D barcode if the barcode was verified using ISO15415 barcode print quality test.
Improved the algorithm that recognizes barcodes in automatic mode:
Improved the recognition of barcodes on images with uneven lighting.
Improved the recognition of barcodes on images with low modulation.
Improved the recognition of barcodes on images with poor focus.
Increased the recognition speed of QR barcodes.
Increased the recognition speed of DataMatrix barcodes.
Increased the recognition speed of Aztec barcodes.
Increased the recognition speed of barcodes in multithreaded environment.
Added the ability to select the adaptive binarization type using the Vintasoft.Barcode.ReaderSettings.AdaptiveBinarizationType property.
Added the ability to specify minimum (Vintasoft.Barcode.ReaderSettings.QrMinSymbolVersion property) and maximum (Vintasoft.Barcode.ReaderSettings.QrMaxSymbolVersion property) version of symbol of recognizable QR barcodes.
If the barcode reader knows the symbol version of recognizable QR barcodes, this allows significantly increase the recognition speed of QR barcodes from an image that contains many similar QR barcodes.
API changes:
Default value of Vintasoft.Barcode.ReaderSettings.AutomaticRecognition property is changed to True (previous value was False).
Default value of Vintasoft.Barcode.ReaderSettings.ScanDirection property is changed to "ScanDirection.Vertical | ScanDirection.Horizontal" value (previous value was ScanDirection.LeftToRight).
Default value of Vintasoft.Barcode.ReaderSettings.AdaptiveBinarizationType property is changed to AdaptiveBinarizationType.HighQuality value (previous value was AdaptiveBinarizationType.Fast).
Added support for .NET 7 in Windows, Linux and macOS.
Refactored the SDK architecture:
Vintasoft.Barcode.dll assembly does not depend from System.Drawing library anymore and can be used in Windows, Linux and macOS.
Vintasoft.Barcode.dll assembly now depends on Vintasoft.Shared.dll assembly.
Now Vintasoft.Barcode.dll assembly uses Vintasoft.Imaging.VintasoftBitmap class (from Vintasoft.Shared.dll assembly) for working with bitmap - this allows to get/transfer bitmap from/to VintaSoft Imaging .NET SDK without memory duplication.
Created Vintasoft.Barcode.Gdi.dll assembly - an extension, which allows to work with barcodes using System.Drawing library in Windows.
Created Vintasoft.Barcode.Wpf.dll assembly - an extension, which allows to work with barcodes in WPF.
Created Vintasoft.Barcode.SkiaSharp.dll assembly - an extension, which allows to work with barcodes using SkiaSharp library (.NET library with unmanaged code) in Windows, Linux, macOS.
Created Vintasoft.Barcode.ImageSharp.dll assembly - extension, which allows to work with barcodes using SixLabors.ImageSharp library (fully managed .NET library) in Windows, Linux, macOS.
Discontinued the support of Vintasoft.WpfBarcode.dll assembly. Use Vintasoft.Barcode.dll and Vintasoft.Barcode.Wpf.dll assemblies instead of Vintasoft.WpfBarcode.dll assembly.
Added WebSwissQrCodeJS class that allows to provide the structured value of Swiss QR Code barcode for barcode generator.
Now WebBarcodeReaderJS class parses the value of recognized AAMVA, Swiss QR Code, Mailmark CCMD, PPN barcode and returns the structured value of barcode.
Xamarin development:
Added the ability to recognize and generate 2D component of GS1 composite barcode symbology, which is based on MicroPDF417 or PDF417 barcode.
Added the ability to recognize GS1 Composite barcode symbologies:
Improved the multithreading in barcode recognition algorithms:
Increased the recognition performance of QR barcodes up to 30%.
Increased the recognition performance of DataMatrix barcodes up to 40%.
Increased the recognition performance of PDF417 barcodes up to 15%.
Increased the recognition performance of 1D barcodes up to 20%.
Examples for .NET Core:
Created the Vintasoft Barcode Scanner Console Demo project, which shows how to recognize barcodes from image or PDF document in .NET Core console application.
Created the Vintasoft Barcode Generator Console Demo project, which shows how to generate a barcode image in .NET Core console application.
Created the ASP.NET Core MVC Barcode Demo project, which shows how to recognize barcodes and generate barcode images in ASP.NET Core MVC application.
Added the ability to recognize and generate barcodes in applications for Android devices:
Implemented the support for Xamarin platform for Android 4.0.3 (API level 15) and higher.
Created classes for recognition of 80+ linear, postal and 2D barcodes.
Created classes for generation of raster and vector images of 80+ linear, postal and 2D barcodes.
Added the ability to generate a barcode as SVG image.
Improved the QR barcode recognition performance up to 20%.
Created the CameraBarcodeScanner class for optimal barcode recognition from camera image stream.
Added the ability to recognize barcodes in any image source type using new ImageSource class.
Created the StructuredAppendBarcodeInfo class, which allows to simplify merging of barcodes linked using the structure append feature.
Examples for Xamarin.Android:
Created the Vintasoft Barcode Scanner Demo project, which shows how to capture images from camera of mobile device and recognize barcodes in captured images.
Created the Vintasoft Barcode Generator Demo project, which shows how to generate barcode image and show the barcode image on the screen of mobile device.
Free end-user applications, which support Android 4.0.3 (API level 15) and higher:
Released the free end-user application Vintasoft Barcode Scanner, which allows to recognize 80+ linear, postal and 2D barcodes.
Released the free end-user application Vintasoft Barcode Generator, which allows to generate 80+ linear, postal and 2D barcodes.
Added the ability to recognize QR Code Model 1 barcodes.
Added the ability to recognize Code 39 barcodes without start/stop symbols.
Added the ability to recognize Pharmacode barcodes, which contain just 3 bars.
Added the ability to stop barcode recognition by timeout.
Added the ability to recognize mirrored reversed Aztec, QR and Micro QR Code barcodes.
Added the ability to get centers of search patterns for Aztec, QR, Micro QR and Han Xin Code barcodes.
Added the ability to get the "Mask Pattern" parameter of QR Code barcode.
Added the ability to scale image with barcodes before barcode recognition.
The barcode recognition performance for large barcodes can be greatly increased if correct scale factor for barcode image is specified.
The barcode recognition quality can be increased for very small barcodes if correct scale factor for barcode image is specified.
Added the ability to specify the maximum size of 2D barcode cell for Aztec, QR, Micro QR, DataMatrix, Han Xin Code and Maxicode barcodes.
The previous version always tries to recognize 2D barcodes with cell size from 1 to 64 pixels.
The speed of barcode recognition can be increased up to 30% if the maximum cell size is reduced, for example, if only 2D barcodes with cell size from 1 to 20 pixels will be searched.
Barcode generation:
Added the ability to generate Aztec, DataMatrix, QR Code, Micro QR Code, HanXin Code barcode as the "structure of 2D barcode".
The "structure of 2D barcode" has the following advantages:
The barcode is represented by a tree structure, which consists from data layers and fixed elements.
Barcode drawing process is simplified, because the search and aligning patterns are represented by separate objects.
For each barcode cell is possible to determine the importance, which depends on the layer of barcode the cell belongs to:
search patterns
orientation patterns
aligning patterns
timing patterns
service information (format, version, error correction level)
user data
Added the ability to generate "design" Aztec, DataMatrix, QR, MicroQR, HanXinCode barcodes.
Added the ability to generate QR Code Model 1 barcodes.
Added the ability to generate Pharmacode barcodes, which contain just 3 bars.
Added the ability to generate barcode image of strictly specified size.
Added the ability to specify and get the "Mask Pattern" parameter of QR barcode.
Added the ability to specify the "Quiet Zones" for generated barcode.
New assembly Vintasoft.Barcode.Web.Services has been created, which includes platform-independent web service for reading and writing barcodes. The platform-independent web service allows quickly create web service for any .NET compatible web platform, for example, for ASP.NET WebForms, ASP.NET MVC, ServiceStack.
New assembly Vintasoft.Barcode.Web.Api2Controllers has been created, which includes Web API 2 controller for reading and writing barcodes in ASP.NET MVC 5.
JavaScript code of Vintasoft.Barcode.js has been verified for compatibility with jQuery 2 and 3.
Created new demo application, which demonstrates how to read and write barcodes in ASP.NET MVC 5.
Now the barcode reading and writing functionality can be very easily added into a web application:
Vintasoft.Barcode.Web.HttpHandlers assembly may be used on server side of an ASP.NET application and allows to create an HTTP handler for barcode recognition and generation.
Vintasoft.Barcode.Web.WcfServices assembly may be used on server side of an ASP.NET application and allows to create a WCF service for barcode recognition and generation.
Vintasoft.Barcode.Web.ApiControllers assembly may be used on server side of an ASP.NET MVC application and allows to create a Web controller for barcode recognition and generation.
Vintasoft.Barcode.js file written in JavaScript may be used on client side of an ASP.NET application and includes the classes and enumerations, which simplify the reading and writing of barcodes.
Improved the recognition algorithm of Code 128, EAN, RSS/GS1, Aztec, HanXin and MaxiCode barcodes.
Improved the DataMatrix barcode recognition algorithm. Now it is possible to recognize DataMatrix barcodes with different cell widths.
Improved the QR Code barcode recognition algorithm:
Now the algorithm can read QR barcodes with large axial non-uniformity, i.e. unproportional QR Code barcodes.
Added new property – ReaderSettings.QRMaxAxialNonuniformity that allows to specify maximum permitted axial non-uniformity taking place in a QR barcode. The QR Code barcode recognition speed since could be greatly increased unless the barcode has axial non-uniformity.
Improved the error correction algorithm for 2D barcodes.
Fixed the bug in algorithm that calculates the FixedPatternDamage parameter for ISO15415 barcode print quality test.
Fixed the bug in deserialization of ReaderSettings.ThresholdIterations property. The maximum allowable value of ReaderSettings.ThresholdIterations property is extended up to 75.
AspNetMvcBarcodeDemo - the new ASP.NET MVC demo application has been created. It demonstrates how to recognize and generate barcodes in ASP.NET MVC. The application references Vintasoft.Barcode.Web.ApiControllers assembly and Vintasoft.Barcode.js file.
Added the ability to recognize and generate Han Xin Code (Chinese Sensible Code):
Seven encoding modes:
Text mode (up to 4350 text characters)
Byte mode (up to 3261 bytes)
Numeric mode (up to 7827 numeric characters)
Common Chinese Characters in Region One mode (up to 2174 GB18030 characters)
Common Chinese Characters in Region Two mode (up to 2174 GB18030 characters)
GB18030 2-byte Region mode (up to 1739 GB18030 characters)
GB18030 4-byte Region mode (up to 1044 GB18030 characters)
Reed-Solomon error detection and correction (4 levels)
ECI Character
Support for recognition of barcodes with spatial or nonlinear distortions, e.g. taken from mobile phone camera or photographic camera.
Implemented the ISO 15415 barcode print quality test for Han Xin Code barcode.
Defined the following subsets of barcode symbologies:
XFA Compressed Aztec
XFA Compressed QRCode
XFA Compressed DataMatrix
XFA Compressed PDF417
Improved the algorithm of QR code recognition: added support for recognition of barcodes with spatial or nonlinear distortions, e.g. taken from mobile phone camera or photographic camera.
Improved the algorithm of Aztec barcode recognition: added support for recognition of barcodes with spatial or nonlinear distortions, e.g. taken from mobile phone camera or photographic camera.
Improved the algorithm of searching for DataMatrix barcodes. Now is possible to recognize the barcodes with damaged L search pattern. The new ReaderSettings.DataMatrixLPatternMaxErasures parameter of barcode reader settings allows to specify the maximum count of allowable erasures in the L search pattern of DataMatrix barcode.
Added the ability to recognize and generate the following new barcode types:
Code 16K
Matrix 2 of 5
IATA 2 of 5 (2/5 IATA, International Air Transport Association 2 of 5)
PPN (IFA PPN-Code)
PZN (PZN7, PZN8, Pharmazentralnummer)
FedEx Ground 96
DHL AWB
VIN (Vehicle Identification Number)
OPC (Optical Product Code)
Deutsсhe Post Leitcode
Deutsche Post Identcode
SSCC-18
VICS BOL (VICS Bill of Lading)
VICS SCAC PRO (SCAC/Pro)
JAN (JAN8, JAN13)
Swiss PostParcel
EAN-Velocity
Numly Number
Added the ability to use Structured Append feature for PDF417 (Macro PDF417) barcodes.
Added the ability to use Structured Append feature for Micro PDF417 barcodes.
Added the ability to use Structured Append feature for Code 16K barcodes.
Improved the recognition quality of Code 39 barcode. Minimized the probability of appearing an error during recognition of Code 39 barcodes from very noisy images.
Accelerated up to 25% and improved the recognition quality of Code 128 barcode. Minimized the probability of appearing an error during recognition of Code 128 barcodes from very noisy images.
Improved the recognition quality of RSS 14 Stacked and RSS Expanded Stacked barcodes.
Improved the recognition quality of Interleaved 2 of 5 barcodes.
Added the ability to get a single bar width of recognized 1D barcode.
Added the ability to get a matrix size and a single cell dimensions of recognized 2D barcode.
Added the ability to encode GS1 barcodes using GS1 Printable Value.
Extended the ISO 15415 barcode print quality test. Now the test allows to obtain additional parameters defined in ISO 16022 Annex M. Also the test allows now to obtain information about Quiet Zone around the barcode and a distortion angle of barcode.
The Decode parameter of ISO 15416 barcode print quality test now takes into account a Quiet Zone around the barcode.
Royal Mail Mailmark barcode family support added to barcode reader and generator:
Mailmark 4-state C
Mailmark 4-state L
Mailmark CMDM Type7
Mailmark CMDM Type9
Mailmark CMDM Type29
Added the print quality test for multi-row barcode symbologies with cross-row scanning ability (PDF417, PDF417Compact, MicroPDF417) in accordance with ISO 15415 and ISO 15416 specification.
Created the open architecture, allowing to define subsets for barcode types, which makes easier the implementation of custom rules for barcode recognition and creation.
Defined the following subsets of barcode symbologies:
Added the ability to write barcode in vector form (to GraphicsPath).
Added the ability to create user-defined barcode verification method (ReaderSettings.VerifyBarcodeMethod).
Added the ability to write barcode with specified size and resolution.
Improved PDF file reader engine: barcode recognition from image resources of non-encrypted PDF file version 1.0-1.7 supported.
Created and successfully tested the compatibility between generated via VintaSoft Barcode .NET SDK PDF417 barcode and its following recognition via hardware barcode scanners.