ZXing-C++ ("zebra crossing") is an open-source, multi-format linear/matrix barcode image processing library implemented in C++.
The central class in the library is ZXing::Barcode, which represents a decoded or created barcode symbol, providing access to its content, format, position, and other metadata. It serves as the primary interface for working with barcodes in the library.
Reading barcodes
- Load your image into memory (3rd-party library required).
- Call ZXing::ReadBarcodes(), the simplest API to get a list of ZXing::Barcode objects.
A very simple example looks like this:
#include "ZXing/ZXingCpp.h"
#include <iostream>
int main(int argc, char** argv)
{
int width, height;
unsigned char* data;
for (const auto& b : barcodes)
return 0;
}
Simple class that stores a non-owning const pointer to image data plus layout and format information.
Definition ImageView.h:53
Configuration options for barcode reading and decoding behavior.
Definition ReaderOptions.h:74
const BarcodeFormats & formats() const noexcept
Specify a set of BarcodeFormats that should be searched for, the default is all supported formats.
@ Lum
Definition ImageView.h:20
Barcodes ReadBarcodes(const ImageView &image, const ReaderOptions &options={})
std::string ToString(BarcodeFormat format)
@ QRCode
Definition BarcodeFormat.h:100
Writing barcodes
- Create a ZXing::Barcode object using either ZXing::CreateBarcodeFromText() or ZXing::CreateBarcodeFromBytes().
- Call ZXing::WriteBarcodeToImage() or ZXing::WriteBarcodeToSVG() to get the output.
A very simple example looks like this:
#include "ZXing/ZXingCpp.h"
#include <iostream>
int main()
{
std::cout << svg << std::endl;
return 0;
}
Configuration options for barcode writing/generation.
Definition WriteBarcode.h:27
int scale() const noexcept
std::string WriteBarcodeToSVG(const Barcode &barcode, const WriterOptions &options={})
Write barcode symbol to SVG.
Barcode CreateBarcodeFromText(std::string_view contents, const CreatorOptions &options)
Generate Barcode from unicode text.