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
ZBar Bar Code Reader is an open source software suite for reading bar codes from various sources
Comments
-
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
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
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
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
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
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
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 sometimesaddr2line
works not as well. And noexecinfo.h
, I can't backtrace with uclibc, I caughtSIGSEGV
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 beNULL
, 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 ifNULL == 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
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,
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
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.
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
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
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
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
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.
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
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
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.
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
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.
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
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
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
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