HOME

TheInfoList



OR:

Barcode library or Barcode SDK is a
software library In computer science, a library is a collection of non-volatile resources used by computer programs, often for software development. These may include configuration data, documentation, help data, message templates, pre-written code and subr ...
that can be used to add
barcode A barcode or bar code is a method of representing data in a visual, machine-readable form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly referred to as linear or o ...
features to desktop, web, mobile or embedded applications. Barcode library presents sets of
subroutine In computer programming, a function or subroutine is a sequence of program instructions that performs a specific task, packaged as a unit. This unit can then be used in programs wherever that particular task should be performed. Functions may ...
s or
objects Object may refer to: General meanings * Object (philosophy), a thing, being, or concept ** Object (abstract), an object which does not exist at any particular time or place ** Physical object, an identifiable collection of matter * Goal, an ...
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 form. Initially, barcodes represented data by varying the widths, spacings and sizes of parallel lines. These barcodes, now commonly referred to as linear or o ...
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 delive ...
application or even
augmented reality Augmented reality (AR) is an interactive experience that combines the real world and computer-generated content. The content can span multiple sensory modalities, including visual, auditory, haptic, somatosensory and olfactory. AR can be de ...
application.


History

The first Barcode SDKs were not implemented as software libraries but as standalone applications for
DOS DOS is shorthand for the MS-DOS and IBM PC DOS family of operating systems. DOS may also refer to: Computing * Data over signalling (DoS), multiplexing data onto a signalling channel * Denial-of-service attack (DoS), an attack on a communicat ...
and
Windows Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
and as Barcode
font In metal typesetting, a font is a particular size, weight and style of a typeface. Each font is a matched set of type, with a piece (a "sort") for each glyph. A typeface consists of a range of such fonts that shared an overall design. In mod ...
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 Optics, optical instrument that can capture an image. Most cameras can capture 2D images, with some more advanced models being able to capture 3D images. At a basic level, most cameras consist of sealed boxes (the camera body), ...
equipped devices (like
mobile phones A mobile phone, cellular phone, cell phone, cellphone, handphone, hand phone or pocket phone, sometimes shortened to simply mobile, cell, or just phone, is a portable telephone that can make and receive calls over a radio frequency link whil ...
) and document scanners became common for every day 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 materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or digital access (soft copies) materials, and may be a physical location or a vir ...
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, automation, and information. Computer science spans theoretical disciplines (such as algorithms, theory of computation, information theory, and automation) to Applied science, practical discipli ...
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 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 or free. Some file formats ...
. 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 MaxiCode is a public domain, machine-readable symbol system originally created and used by United Parcel Service. Suitable for tracking and managing the shipment of packages, it resembles an Aztec Code or QR code, but uses dots arranged in a h ...
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 way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
with multiple parameters processing. Barcode reading libraries are more complex, requiring
Computer Vision Computer vision is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to understand and automate tasks that the hum ...
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 Bresenham's line algorithm is a line drawing algorithm that determines the points of an ''n''-dimensional raster graphics, raster that should be selected in order to form a close approximation to a straight line between two points. It is commonly u ...
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 ZBar is an open-source C barcode reading library with C++, Python, Perl, and Ruby bindings. It is also implemented on Linux and Microsoft Windows as a command-line application, and as an iPhone application. It was originally developed a ...
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 or service. Advertising aims to put a product or service in the spotlight in hopes of drawing it attention from consumers. It is typically used to promote a ...
*
Augmented reality Augmented reality (AR) is an interactive experience that combines the real world and computer-generated content. The content can span multiple sensory modalities, including visual, auditory, haptic, somatosensory and olfactory. AR can be de ...
implementation as quick identification of virtual objects * Automatic data identification in document processing * Automatically identified hyperlinks 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 The Internet of things (IoT) describes physical objects (or groups of such objects) with sensors, processing ability, software and other technologies that connect and exchange data with other devices and systems over the Internet or other comm ...
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 delive ...
* Patient or medicine identification in healthcare services or industry * Quick information extraction from business cards * 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 outline font standard developed by Apple in the late 1980s as a competitor to Adobe's Type 1 fonts used in PostScript. It has become the most common format for fonts on the classic Mac OS, macOS, and Microsoft Windows operating sy ...
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 way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
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. Most programming languages are text-based formal languages, but they may also be graphical. They are a kind of computer language. The description of a programming ...
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 is an interdisciplinary scientific field that deals with how computers can gain high-level understanding from digital images or videos. From the perspective of engineering, it seeks to understand and automate tasks that the human ...
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 The International Article Number (also known as European Article Number or EAN) is a standard describing a barcode symbology and numbering system used in global trade to identify a specific retail product type, in a specific packaging configurat ...
, UPCA,
EAN 8 An EAN-8 is an EAN/UPC symbology barcode and is derived from the longer International Article Number (EAN-13) code. It was introduced for use on small packages where an EAN-13 barcode would be too large; for example on cigarettes, pencils, and c ...
or be used even without checksum like
Code 39 Code 39 (also known as Alpha39, Code 3 of 9, Code 3/9, Type 39, USS Code 39, or USD-3) is a variable length, discrete barcode symbology. The Code 39 specification defines 43 characters, consisting of uppercase letters (A through Z), numeric digi ...
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 data ...
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 unit ...
mode and this allows encoding both text in 256-bit national encoding charset and text in common Unicode charsets like UTF16 or UTF8. 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 A QR code (an initialism for quick response code) is a type of matrix barcode (or two-dimensional barcode) invented in 1994 by the Japanese company Denso Wave. A barcode is a machine-readable optical label that can contain information about th ...
can be only in square size, same
Aztec The Aztecs () were a Mesoamerican culture that flourished in central Mexico in the post-classic period from 1300 to 1521. The Aztec people included different Indigenous peoples of Mexico, ethnic groups of central Mexico, particularly those g ...
or
Datamatrix A Data Matrix is a two-dimensional code consisting of black and white "cells" or dots arranged in either a square or rectangular pattern, also known as a matrix. The information to be encoded can be text or numeric data. Usual data size is fr ...
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

{{reflist


External links


Advantages and disadvantages of barcodes and radio frequency identification in supply chain management

Free Barcode reading&writing web application

GS1 barcodes

Label and Barcode Detection in Wide Angle Image

Robust 1D Barcode Recognition on Mobile Devices

Ten steps to GS1 barcode implementation
Automatic identification and data capture Cross-platform software Computer vision software Application programming interfaces Barcodes Computer libraries Encodings