ZBar Bar Code Reader is an open source software suite for reading bar codes from various sources

ZBAR BAR CODE READER
====================

ZBar Bar Code Reader is an open source software suite for reading bar
codes from various sources, such as video streams, image files and raw
intensity sensors. It supports EAN-13/UPC-A, UPC-E, EAN-8, Code 128,
Code 39, Codabar, Interleaved 2 of 5 and QR Code.  Included with the
library are basic applications for decoding captured bar code images and
using a video device (eg, webcam) as a bar code scanner.  For application
developers, language bindings are included for C, C++, Python and Perl
as well as GUI widgets for Qt, GTK and PyGTK.

Check the ZBar home page for the latest release, mailing lists, etc.
    http://zbar.sourceforge.net/

License information can be found in 'COPYING'.


BUILDING
========

See 'INSTALL' for generic configuration and build instructions.

The scanner/decoder library itself only requires a few standard
library functions which should be avilable almost anywhere.

The zbarcam program uses the video4linux API (v4l1 or v4l2) to access
the video device.  This interface is part of the linux kernel, a 2.6
kernel is recommended for full support.  More information is available
at
    http://www.linuxtv.org/wiki/

pkg-config is used to locate installed libraries.  You should have
installed pkg-config if you need any of the remaining components.
pkg-config may be obtained from
    http://pkg-config.freedesktop.org/

The zbarimg program uses ImageMagick to read image files in many
different formats.  You will need at least ImageMagick version 6.2.6
if you want to scan image files.  ImageMagick may be obtained from
    http://www.imagemagick.org/

The Qt widget requires Qt4.  You will need Qt4 if you would like to
use or develop a Qt GUI application with an integrated bar code
scanning widget.  Qt4 may be obtained from
    http://qt.nokia.com/products

The GTK+ widget requires GTK+-2.x.  You will need GTK+ if you would
like to use or develop a GTK+ GUI application with an integrated bar
code scanning widget.  GTK+ may be obtained from
    http://www.gtk.org/

The PyGTK wrapper for the GTK+ widget requires Python and PyGTK.  You
will need both if you would like to use or develop a PyGTK GUI
application with an integrated bar code scanning widget.  PyGTK may be
obtained from
    http://www.pygtk.org/

The Python bindings require Python (version?).  You will need Python
if you would like to scan images or video directly using Python.
Python is available from
    http://python.org/

The Perl bindings require Perl (version?).  You will need Perl if you
would like to scan images or video directly using Perl.  Perl is
available from
    http://www.perl.org/

If required libraries are not available you may disable building for
the corresponding component using configure (see configure --help).

The Perl bindings must be built separately after installing the
library.  see
    perl/README


RUNNING
=======

'make install' will install the library and application programs.  Run
'zbarcam' to start the video scanner.  use 'zbarimg barcode.jpg' to
decode a saved image file.  Check the manual to find specific options
for each program.


REPORTING BUGS
==============

Bugs can be reported on the sourceforge project page
    http://www.sourceforge.net/projects/zbar/

Please include the ZBar version number and a detailed description of
the problem.  You'll probably have better luck if you're also familiar
with the concepts from:
    http://www.catb.org/~esr/faqs/smart-questions.html
Comments
  • Fix memory leak of view.

    Fix memory leak of view.

    This memory leak caused the AV capture system to create potentially hundreds of megabytes of notification objects after only a handful of scans. Easy fix.

  • Wrap logical not operations into parentheses

    Wrap logical not operations into parentheses

    Otherwise it fails like this:

    zbar/decoder/ean.c: In function 'ean_part_end4': zbar/decoder/ean.c:297:13: error: logical not is only applied to the left hand side of comparison [-Werror=logical-not-parentheses] if(!par == fwd) {

    Signed-off-by: Vicente Olivert Riera [email protected]

  • Add cmake conan support

    Add cmake conan support

    This PR adds support for building the QR code part of ZBar with cmake. Additionally, a conan recipe and a test package were included.

    The build and the recipe were tested in Ubuntu 18.04, with C compiler GNU 7.4.0.

  • how can i get the CMakeLists.txt,thank you

    how can i get the CMakeLists.txt,thank you

    i want to compile it by myself with cmake-gui,but i found that the CMakeLists.txt is deficiency,thus i can not generate the .sln flie, so...how do you make it ,could you tell me the detail,thank you

  • Create SECURITY.md

    Create SECURITY.md

    I'd like to report a security issue but cannot find contact instructions on your repository.

    If not a hassle, might you kindly add a SECURITY.md file with an email, or another contact method? GitHub recommends this best practice to ensure security issues are responsibly disclosed, and it would serve as a simple instruction for security researchers in the future.

    Thank you for your consideration!

  • Replace UIWebView with WKWebView

    Replace UIWebView with WKWebView

    As UIWebView is deprecated, Apple will stop accepting apps using UIWebView. So need to migrate to WKWebView. Ref: https://developer.apple.com/news/?id=12232019b

  • segfault at zbar_image_convert  if cross compile without libjpeg

    segfault at zbar_image_convert if cross compile without libjpeg

    I cross compile libzbar, include config.h.

    SIGSEGV caught, and It took some time to figure it out.

    However it's not always easy to figure it out in some embedded system, toolchain included gdb in embedded system sometimes not works well as Linux/Unix/Darwin. For example, I can't list source of current file or function in my arm-linux device, even make with the option -g -O0 -rdynamic, and sometimes addr2line works not as well. And no execinfo.h, I can't backtrace with uclibc, I caught SIGSEGV but didn't know segment fault at where, which function, which line.

    Another significant influence is that program will abort if segment fault occur. It sounds unreasonable in multithread environment.

    I finally found sefault at zbar_image_convert_resize .

    I cross compile without libjpeg, no -ljpeg.

    I scan jpeg image, conversions[ZBAR_FMT_JPEG][ZBAR_FMT_GRAY].func will be NULL, not _zbar_convert_jpeg_to_y callback.

    I print the value with gdb

    (gdb) p conversions
    $33 = {{{cost = 0, func = 0xb6cf3384 <convert_copy>}, {cost = 8, func = 0xb6cf3500 <convert_uvp_append>}, {cost = 24, func = 0xb6cf2114 <convert_yuv_pack>}, {cost = 32, 
          func = 0xb6cf2418 <convert_yuvp_to_rgb>}, {cost = 8, func = 0xb6cf3500 <convert_uvp_append>}, {cost = -1, func = 0x0}}, {{cost = 1, func = 0xb6cf3384 <convert_copy>}, {cost = 48, 
          func = 0xb6cf28e4 <convert_uvp_resample>}, {cost = 64, func = 0xb6cf2114 <convert_yuv_pack>}, {cost = 128, func = 0xb6cf2418 <convert_yuvp_to_rgb>}, {cost = 40, 
          func = 0xb6cf3500 <convert_uvp_append>}, {cost = -1, func = 0x0}}, {{cost = 24, func = 0xb6cf2ae0 <convert_yuv_unpack>}, {cost = 52, func = 0xb6cf2ae0 <convert_yuv_unpack>}, {cost = 20, 
          func = 0xb6cf2c70 <convert_uv_resample>}, {cost = 144, func = 0xb6cf2630 <convert_yuv_to_rgb>}, {cost = 18, func = 0xb6cf2ae0 <convert_yuv_unpack>}, {cost = -1, func = 0x0}}, {{cost = 112, 
          func = 0xb6cf2e3c <convert_rgb_to_yuvp>}, {cost = 160, func = 0xb6cf2e3c <convert_rgb_to_yuvp>}, {cost = 144, func = 0xb6cf30dc <convert_rgb_to_yuv>}, {cost = 120, 
          func = 0xb6cf1e70 <convert_rgb_resample>}, {cost = 152, func = 0xb6cf2e3c <convert_rgb_to_yuvp>}, {cost = -1, func = 0x0}}, {{cost = 1, func = 0xb6cf3384 <convert_copy>}, {cost = 8, 
          func = 0xb6cf3500 <convert_uvp_append>}, {cost = 24, func = 0xb6cf2114 <convert_yuv_pack>}, {cost = 32, func = 0xb6cf2418 <convert_yuvp_to_rgb>}, {cost = 8, 
          func = 0xb6cf3500 <convert_uvp_append>}, {cost = -1, func = 0x0}}, {{cost = -1, func = 0x0}, {cost = -1, func = 0x0}, {cost = -1, func = 0x0}, {cost = -1, func = 0x0}, {cost = -1, func = 0x0}, {
          cost = -1, func = 0x0}}}
    (gdb) p conversions[5][0]
    $32 = {cost = -1, func = 0x0}
    

    suggest

    if (NULL == func){
            return (NULL);
    }
    else{
           func(dst, dstfmt, src, srcfmt);
    }
    

    so people will handle the error if zbar_image_convert failed, without bothering another thread. NULL returned if NULL == func, we can quickly know the problem and do the error handle.

    And I will add #define HAVE_LIBJPEG 1, #define HAVE_JPEGLIB_H 1, and -ljpeg latter.

Related tags
Single header KTX/DDS reader

dds-ktx: Portable single header DDS/KTX reader for C/C++ @septag Parses from memory blob. No allocations No dependencies Single-header for easy integr

Dec 26, 2022
Source Codes for Codimensional Incremental Potential Contact (C-IPC)

Source Codes for Codimensional Incremental Potential Contact (C-IPC) Reference This repository provides source code for: Minchen Li, Danny M. Kaufman,

Dec 29, 2022
Source Codes for Injective Deformation Processing (IDP) with Incremental Potential Contact (IPC)

Source Codes for Injective Deformation Processing Reference This repository provides source code for: Yu Fang*, Minchen Li* (equal contribution), Chen

Dec 6, 2022
Dust3D is a cross-platform open-source 3D modeling software
Dust3D is a cross-platform open-source 3D modeling software

Dust3D is a cross-platform open-source 3D modeling software. Auto UV unwrapping, auto rigging with PBR Material support, pose and motion authoring all in one.

Dec 30, 2022
C++ (with python bindings) library for easily reading/writing/manipulating common animation particle formats such as PDB, BGEO, PTC. See the discussion group @ http://groups.google.com/group/partio-discuss

Partio - A library for particle IO and manipulation This is the initial source code release of partio a tool we used for particle reading/writing. It

Dec 29, 2022
This module is a simple, lightweight and flexible way to generate QR codes in Godot
This module is a simple, lightweight and flexible way to generate QR codes in Godot

QRCodeTexture Godot Module Summary This module is a simple, lightweight and flexible way to generate QR codes in Godot. It provides a new type of text

Oct 20, 2022
A basic 3D scene implemented with various engines, frameworks or APIs.
A basic 3D scene implemented with various engines, frameworks or APIs.

Here be dragons Hic sunt dracones. This repository contains multiple implementations of the same 3D scene, using different APIs and frameworks on vari

Dec 27, 2022
A personal project that uses DX12 to implement various render techniques to ultimately create breathtaking real-time visuals

D3D12Playground (Real Time) A personal project that uses DX12 to implement various render techniques to ultimately create breathtaking real-time visua

Apr 27, 2022
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform AAA Open 3D Engine
Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform AAA Open 3D Engine

Open 3D Engine (O3DE) is an Apache 2.0-licensed multi-platform 3D engine that enables developers and content creators to build AAA games, cinema-quality 3D worlds, and high-fidelity simulations without any fees or commercial obligations.

Jan 7, 2023
An Open-Source subdivision surface library.

OpenSubdiv OpenSubdiv is a set of open source libraries that implement high performance subdivision surface (subdiv) evaluation on massively parallel

Jan 2, 2023
An open-source implementation of Autodesk's FBX

SmallFBX An open-source implementation of Autodesk's FBX that is capable of import & export mesh, blend shape, skin, and animations. Mainly intended t

Dec 21, 2022
The open-source tool for creating of 3D models
The open-source tool for creating of 3D models

The open-source tool for creating of 3D models

Dec 21, 2022
StereoKit is an easy-to-use open source mixed reality library for building HoloLens and VR applications with C# and OpenXR!
StereoKit is an easy-to-use open source mixed reality library for building HoloLens and VR applications with C# and OpenXR!

StereoKit is an easy-to-use open source mixed reality library for building HoloLens and VR applications with C# and OpenXR! Inspired by libraries like XNA and Processing, StereoKit is meant to be fun to use and easy to develop with, yet still quite capable of creating professional and business ready software.

Jan 4, 2023
OpenCorr is an open source C++ library for development of 2D, 3D/stereo, and volumetric digital image correlation
OpenCorr is an open source C++ library for development of 2D, 3D/stereo, and volumetric digital image correlation

OpenCorr OpenCorr is an open source C++ library for development of 2D, 3D/stereo, and volumetric digital image correlation. It aims to provide a devel

Jan 6, 2023
Open source Altium Database Library with over 147,000 high quality components and full 3d models.
Open source Altium Database Library with over 147,000 high quality components and full 3d models.

Open source Altium Database Library with over 147,000 high quality components and full 3d models.

Dec 29, 2022
Vizzu is a free, open-source Javascript/C++ library for animated data visualizations and data stories.
Vizzu is a free, open-source Javascript/C++ library for animated data visualizations and data stories.

Vizzu is a free, open-source Javascript/C++ library utilizing a generic dataviz engine that generates many types of charts and seamlessly animates between them

Jan 3, 2023
Tesseract Open Source OCR Engine (main repository)

Tesseract OCR Table of Contents Tesseract OCR About Brief history Installing Tesseract Running Tesseract For developers Support License Dependencies L

Jan 2, 2023
A completely free, open-source, 2D game engine built on proven torque technology.
A completely free, open-source, 2D game engine built on proven torque technology.

Torque2D 4.0 Early Access 1 MIT Licensed Open Source version of Torque2D from GarageGames. Maintained by the Torque Game Engines team and contribution

Jan 9, 2023
Open-Source Vulkan C++ API

Vulkan-Hpp: C++ Bindings for Vulkan The goal of the Vulkan-Hpp is to provide header only C++ bindings for the Vulkan C API to improve the developers V

Jan 8, 2023