Barcode library or Barcode SDK is a
software library
In computing, a library is a collection of resources that can be leveraged during software development to implement a computer program. Commonly, a library consists of executable code such as compiled functions and classes, or a library can ...
that can be used to add
barcode
A barcode or bar code is a method of representing data in a visual, Machine-readable data, machine-readable form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly ref ...
features to desktop, web, mobile or embedded applications. Barcode library presents sets of
subroutine
In computer programming, a function (also procedure, method, subroutine, routine, or subprogram) is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.
Callable units provide a ...
s or
objects which allow to create barcode images and put them on surfaces or recognize
machine-encoded text / data from
scanned or
captured by camera images with embedded barcodes. The library can support two modes: generation and recognition mode, some libraries support barcode reading and writing in the same way, but some libraries support only one mode.
At this time
barcode
A barcode or bar code is a method of representing data in a visual, Machine-readable data, machine-readable form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly ref ...
technology allows to add machine reading tags or machine reading additional data to any object of real world with less than one cent cost. and use any of camera equipped device to identify additional data about an object. In this way, combination of barcode technology and barcode library allows to implement with low cost any automatic
document processing application,
OMR application,
package tracking
Package tracking or package logging is the process of localizing shipping containers, mail and parcel post at different points of time during sorting, warehousing, and package delivery to verify their provenance and to predict and aid delivery ...
application or even
augmented reality
Augmented reality (AR), also known as mixed reality (MR), is a technology that overlays real-time 3D computer graphics, 3D-rendered computer graphics onto a portion of the real world through a display, such as a handheld device or head-mounted ...
application.
History
The first Barcode SDKs were not implemented as software libraries but as
standalone applications for
DOS
DOS (, ) is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible syste ...
and
Windows
Windows is a Product lining, product line of Proprietary software, proprietary graphical user interface, graphical operating systems developed and marketed by Microsoft. It is grouped into families and subfamilies that cater to particular sec ...
and as Barcode
font
In metal typesetting, a font is a particular size, weight and style of a ''typeface'', defined as the set of fonts that share an overall design.
For instance, the typeface Bauer Bodoni (shown in the figure) includes fonts " Roman" (or "regul ...
s. At that time barcodes were used mostly in retail and for internal corporation needs, thus barcode users looked for all-inclusive hardware solutions to generate, print and recognize barcodes.
The situation changed when
camera
A camera is an instrument used to capture and store images and videos, either digitally via an electronic image sensor, or chemically via a light-sensitive material such as photographic film. As a pivotal technology in the fields of photograp ...
equipped devices (like
mobile phones
A mobile phone or cell phone is a portable telephone that allows users to make and receive calls over a radio frequency link while moving within a designated telephone service area, unlike fixed-location phones ( landline phones). This radio ...
) and
document scanners became common for everyday usage. Because barcodes could be scanned and recognized on common ordinary equipment and industrial and office users did not need to obtain expensive specialized one-function devices for barcode reading, the need for barcode writing and reading SDKs and
libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
increased.
Barcode writing libraries already had been implemented as barcode fonts or standalone applications in projects like GNU Barcode or Zint. Implementation of a barcode writing library does not require hard
Computer Science
Computer science is the study of computation, information, and automation. Computer science spans Theoretical computer science, theoretical disciplines (such as algorithms, theory of computation, and information theory) to Applied science, ...
skills because it just need to follow
AIM or
ISO specifications. It does not have any difference from encoding data in special
file format
A file format is a Computer standard, standard way that information is encoded for storage in a computer file. It specifies how bits are used to encode information in a digital storage medium. File formats may be either proprietary format, pr ...
.
2D barcodes encoding is more difficult because 2D barcodes instead of 1D barcodes have additional encoding data like columns, rows,
ECI or
data correction options. Some 2D barcodes like
MaxiCode or
Pdf 417 also have special encoding fields like
Post Address or metadata which convert these barcodes in multiple graphical files. These differences could not be solved by barcode fonts usage and required
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
with multiple parameters processing.
Barcode reading libraries are more complex, requiring
Computer Vision
Computer vision tasks include methods for image sensor, acquiring, Image processing, processing, Image analysis, analyzing, and understanding digital images, and extraction of high-dimensional data from the real world in order to produce numerical ...
techniques. However, they can be run on common camera or scanner equipped devices. The first libraries could recognize only
1D barcodes by
laser scanners mode emulation. This mode captured the whole image but then library made some scan-lines with
Bresenham's algorithm and tried to recognize data from these lines as hardware laser scanners did. The bright representation of these libraries is early ZXing project supported by Google,
ZBar or other solutions.
For the recognition of
2D barcodes laser scanners mode emulation is not suitable. Moreover, this method has difficulty with barcode area detection, which causes problems with 1D angled barcode detection. More complicated methods from Computer Vision were implemented to improve recognition quality for 1D and 2D barcodes.
Application
Barcode libraries have provided low cost
automatic identification and data capture
Automatic identification and data capture (AIDC) refers to the methods of automatically identifying objects, collecting data about them, and entering them directly into computer systems, without human involvement. Technologies typically considered ...
features to various fields of services and industry. This can be entertainment, healthcare, postal services, such as document processing or retail applications.
They can be used for:
*
Advertisement
Advertising is the practice and techniques employed to bring attention to a Product (business), product or Service (economics), service. Advertising aims to present a product or service in terms of utility, advantages, and qualities of int ...
*
Augmented reality
Augmented reality (AR), also known as mixed reality (MR), is a technology that overlays real-time 3D computer graphics, 3D-rendered computer graphics onto a portion of the real world through a display, such as a handheld device or head-mounted ...
implementation as quick identification of virtual objects
* Automatic data identification in
document processing
* Automatically identified
hyperlink
In computing, a hyperlink, or simply a link, is a digital reference providing direct access to Data (computing), data by a user (computing), user's point and click, clicking or touchscreen, tapping. A hyperlink points to a whole document or to ...
s to internet pages
* Automatically recognized
payment bills
*
Creative usage of barcodes in design
* Data entry for documents, like
driver ID, receipt or passport
* Encryption keys transfer and
documents validation
*
Food and goods tracking in retail
* Games in augmented reality
* In airports, bus / railroad stations for automatic tickets and passenger documents identification
*
Internet of Things
Internet of things (IoT) describes devices with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other communication networks. The IoT encompasse ...
with linkage of physical object to virtual representation
*
Package tracking
Package tracking or package logging is the process of localizing shipping containers, mail and parcel post at different points of time during sorting, warehousing, and package delivery to verify their provenance and to predict and aid delivery ...
* Patient or
medicine identification in healthcare services or industry
* Quick information extraction from
business card
Business cards are card stock, cards bearing business information about a company or individual. They are shared during formal introductions as a convenience and a memory aid. A business card typically includes the giver's name, types of co ...
s
* Tracking of rental cars, airline luggage and even nuclear wastes
*
Vehicles identification
Types
Barcode libraries and or Barcode SDKs can be split in different types, which is based on their functionality:
* Barcode Fonts
* Barcode Writing library
* Barcode Reading library
* Barcode Full support library
The first barcode libraries were fully transparent to user and used as simple printing text with specialized
TrueType
TrueType is an Computer font#Outline fonts, outline font standardization, standard developed by Apple Inc., Apple in the late 1980s as a competitor to Adobe Inc., Adobe's PostScript fonts#Type 1, Type 1 fonts used in PostScript. It has become the ...
Fonts. This works well for
1D barcodes, because 1D barcode just the same as linear text, sometimes with checksum. Usage of Barcode Fonts with
2D barcodes also possible but it has problem with metadata processing like setting barcode row and columns and metadata. This is solved with predefined different metadata values in set of fonts for the same type of barcode.
Barcode libraries with
API
An application programming interface (API) is a connection between computers or between computer programs. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how to build ...
calls have more customization features in writing and reading modes. However, only part of libraries has full support of writing and reading modes. More than half of libraries supports only one mode.
Barcode library list
Barcode libraries can support different barcode formats and
programming language
A programming language is a system of notation for writing computer programs.
Programming languages are described in terms of their Syntax (programming languages), syntax (form) and semantics (computer science), semantics (meaning), usually def ...
s. Also, they have different support of reading and writing functionality. Most common barcode libraries and SDKs are represented in the following list:
Recommendations and best practices
Barcodes is the way of adding
machine reading tags to any object of real world with low cost. All other ways like
RFID chips or object detection by
image recognition
Computer vision tasks include methods for acquiring, processing, analyzing, and understanding digital images, and extraction of high-dimensional data from the real world in order to produce numerical or symbolic information, e.g. in the form o ...
are more expensive and difficult to implement. There are more than 200 barcode types and this makes choice of barcode type ambiguous. First barcode was
standardized in 60th and there were two waves of barcode features development
The first wave of creation barcode standards was started in 60th and those were
1D barcodes. Main advantages of these barcodes were simple encoding and recognition with laser scanners for linear barcodes. All of these restrictions were tied to slow
8-bit processors, which were used at that time. This makes 1D barcodes have restricted symbol encoding like
Code 11 or have restricted barcode length like
EAN 13,
UPCA,
EAN 8 or be used even without checksum like
Code 39 barcodes. In addition to this, informational density encoding of these barcode types is too low.
Moreover, all of these 1D barcodes have low quality
checksum
A checksum is a small-sized block of data derived from another block of digital data for the purpose of detecting errors that may have been introduced during its transmission or storage. By themselves, checksums are often used to verify dat ...
or even do not have any checksum which makes recognition process unpredictable on images with too low quality.
Open source engines does not recognize 1D barcodes on images with low quality but barcode engines with advanced recognition algorithms can recognize these barcodes. Unfortunately, recognition of
low quality images could produce some incorrect symbols in recognized text. Low-density encoding, encoding restrictions and weak checksum makes 1D barcode unsuitable to current requirements to informational systems and data processing. Using of 1D barcodes in the new applications is reasonable if only it is required by
industrial standards
The second way of barcode standards implementation was
started in 90th and it was development of 2D barcodes. Main advantages of 2D barcodes are high encoding density, which is 10 times more, no restrictions to text encoding and
self-checked codes like Reed Solomon codes, which not only add confidence in correct recognition but also can restore some wiped or corrupted barcode data. Main disadvantage of 2D barcodes, they cannot be recognized by laser scanners, except
PDF 417, for recognition they require
photo scanners. Most of 2D barcodes can encode information in
byte
The byte is a unit of digital information that most commonly consists of eight bits. Historically, the byte was the number of bits used to encode a single character of text in a computer and for this reason it is the smallest addressable un ...
mode and this allows encoding both text in 8-bit national
encoding charset and text in common Unicode charsets like
UTF16 or
UTF8 with
ECI tag.
New projects should use 2D barcodes if industry standards permit. They do not have any restrictions to encoding text, they can be correctly restored on corrupted or low quality images and their recognition result is fully confidential. The informational density allows placing them on the same area or even lesser than 1D barcodes. The main question here could be requirement to marked area. Most common
QR code can be only in square size, same
Aztec
The Aztecs ( ) were a Mesoamerican civilization that flourished in central Mexico in the Post-Classic stage, post-classic period from 1300 to 1521. The Aztec people included different Indigenous peoples of Mexico, ethnic groups of central ...
or
Datamatrix in some sizes. If someone has a long rectangular area with low height, they can use Datamatrix with rectangular sizes, see DMRE
or PDF417, which can have difference width to height more than 64 times.
See also
References
External links
Advantages and disadvantages of barcodes and radio frequency identification in supply chain managementGS1 barcodesLabel and Barcode Detection in Wide Angle ImageRobust 1D Barcode Recognition on Mobile DevicesTen steps to GS1 barcode implementationExamples of data encoded in barcodes
{{Barcodes, state=uncollapsed
Automatic identification and data capture
Cross-platform software
Computer vision software
Application programming interfaces
Barcodes
Computer libraries