zxing-cpp v3.0
Loading...
Searching...
No Matches
Introduction

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

  1. Load your image into memory (3rd-party library required).
  2. 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;
// load your image data from somewhere. ImageFormat::Lum assumes grey scale image data.
auto image = ZXing::ImageView(data, width, height, ZXing::ImageFormat::Lum);
auto barcodes = ZXing::ReadBarcodes(image, options);
for (const auto& b : barcodes)
std::cout << ZXing::ToString(b.format()) << ": " << b.text() << "\n";
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

  1. Create a ZXing::Barcode object using either ZXing::CreateBarcodeFromText() or ZXing::CreateBarcodeFromBytes().
  2. 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()
{
auto options = ZXing::WriterOptions().scale(4).addQuietZones(false);
auto svg = ZXing::WriteBarcodeToSVG(barcode, options);
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.