All Projects → scytheStudio → SCodes

scytheStudio / SCodes

Licence: Apache-2.0, Unknown licenses found Licenses found Apache-2.0 LICENSE Unknown LICENSE.Qt
This project is Qt & Qml wrapper for ZXing-C++ Library that is used for decoding 1D and 2D barcodes.

Programming Languages

C++
36643 projects - #6 most used programming language
QMake
1090 projects
c
50402 projects - #5 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to SCodes

Qzxing
Qt/QML wrapper library for the ZXing library. 1D/2D barcode image processing library
Stars: ✭ 401 (+629.09%)
Mutual labels:  qml, zxing
qt-qml-project-template-with-ci
Template for a Qt/QML application with batteries included: GitHub C.I. for your QML app; automated gui testing with Xvfb; automatic code-format checks and more. Compiles for Desktop and Mobile (Linux, Mac, Windows, and Android).
Stars: ✭ 33 (-40%)
Mutual labels:  qml
canonic
QML web browser
Stars: ✭ 85 (+54.55%)
Mutual labels:  qml
unofficial-watchfaces
Database of community-made watchfaces for AsteroidOS.
Stars: ✭ 33 (-40%)
Mutual labels:  qml
QmlTreeWidget
A TreeView component, implemented by QML, providing convenient interfaces and customizable stylesheet, also available for iOS and Android.
Stars: ✭ 34 (-38.18%)
Mutual labels:  qml
harbour-sailfishconnect
KDE Connect for Sailfish OS
Stars: ✭ 39 (-29.09%)
Mutual labels:  qml
qram
Library for Q# implementing various qRAM proposals
Stars: ✭ 46 (-16.36%)
Mutual labels:  qml
vatsinator-legacy
An open-source Vatsim monitor
Stars: ✭ 12 (-78.18%)
Mutual labels:  qml
Sparrow.2
Sparrow.2 is a V-Play like library. Pure QML implement. Level up from Sparrow.
Stars: ✭ 31 (-43.64%)
Mutual labels:  qml
plasma-drydock
A plasma widget to start and stop docker containers
Stars: ✭ 25 (-54.55%)
Mutual labels:  qml
ZXingSample
Working sample app for a blog post on barcode scanning and generating with ZXing
Stars: ✭ 20 (-63.64%)
Mutual labels:  zxing
gift-shop
A gift-shopping app, developed with android 5.0 widgets and transitions.
Stars: ✭ 15 (-72.73%)
Mutual labels:  zxing
qt-quick-responsive-helper
A simple toolbar for QtQuick based applications, to let developers test different resolutions and dpi settings easily. It was made to be integrated with minimal effort (only one QML file), and to be configurable for your specific usage.
Stars: ✭ 26 (-52.73%)
Mutual labels:  qml
TreeEdit
Qml TreeEdit with Controls2 (Qml树结构编辑器,使用Controls2实现)
Stars: ✭ 50 (-9.09%)
Mutual labels:  qml
ZxingSupport
A Library based on Zxing, make you easy to develop 1D/2D barcode-scan App.
Stars: ✭ 15 (-72.73%)
Mutual labels:  zxing
slashdiablo-launcher
A lightweight cross platform Slashdiablo game launcher for Diablo II, written in Go & QML.
Stars: ✭ 29 (-47.27%)
Mutual labels:  qml
UVCCameraZxing
USB串口摄像头识别二维码
Stars: ✭ 82 (+49.09%)
Mutual labels:  zxing
qml-asteroid
QML components, styles and demos for AsteroidOS.
Stars: ✭ 51 (-7.27%)
Mutual labels:  qml
neural-network-sandbox
A toy about fundamental neural network algorithms and Qt Quick 2 interface.
Stars: ✭ 69 (+25.45%)
Mutual labels:  qml
mini-qml
Minimal Qt deployment for Linux, Windows, macOS and WebAssembly.
Stars: ✭ 44 (-20%)
Mutual labels:  qml

SCodes

SCodes

This project is Qt & Qml wrapper for ZXing-C++ Library that is used for decoding and generating 1D and 2D barcodes. This particular C++ ZXing port is one of the most recent C++ versions of popular ZXing library using modern compilers.

The goal of this project was to create convenient filter allowing to process video frame from phone camera. Thanks to SCodes you can start scanning barcodes in few steps. We used Qt 5.15 to built both wrapper and example application, but it's compatible with older Qt versions as well. Feel free to read "How to scan barcodes in Qt Qml application" blog post if you are interested in the details behind scanning mechanism. This blog post contains step by step tutorial on how to do that.

SCodes supports generating barcodes as well. It is covered in "How to generate barcode in Qt Qml" application blog post.


Scythe Studio

Built with Qt


Supported Formats

There are plenty of supported formats and we constantly work on adding new.

Supported 1D Formats

Format Supports scanning Supports generating
UPC-A ✔️ ✔️
UPC-E ✔️ ✔️
EAN-8 ✔️ ✔️
EAN-13 ✔️ ✔️
DataBar ✔️
DataBar Expanded
Code 39 ✔️ ✔️
Code 93 ✔️ ✔️
Code 128 ✔️ ✔️
Codabar ✔️ ✔️
ITF ✔️

Supported 2D Formats

Format Supports scanning Supports generating
QR Code ✔️ ✔️
DataMatrix ✔️ ✔️
Aztec ✔️ ✔️
PDF417 ✔️ ✔️
MaxiCode

How to use wrapper?

SCodes Scanner PreviewSCodes Generator Preview

Using

QMake

All you need to do is to follow these steps.

  1. Add SCodes as submodule, by typing git submodule add [email protected]:scythestudio/scodes.git
  2. Update submodule git submodule update --recursive --init (you can also put wrapper files to your project manually without adding submodule)
  3. Add include(scodes/src/SCodes.pri to your .pro file
  4. Import SCodes in your Qml file import com.scythestudio.scodes 1.0
  5. Import multimedia module import QtMultimedia 5.15
  6. If build fails, try to add CONFIG += c++17 to your .pro file
  7. You are done. Get inspired by QML Barcode Reader demo to test wrapper.

CMake

  1. Add SCodes as submodule, by typing git submodule add [email protected]:scythestudio/scodes.git
  2. Update submodule git submodule update --recursive --init (you can also put wrapper files to your project manually without adding submodule)
  3. Add to your project SCodes library
add_subdirectory(SCodes)
  1. Link SCodes library to your library or executable.
target_link_libraries(${PROJECT_NAME} PUBLIC SCodes)
  1. Import SCodes in your Qml file
import com.scythestudio.scodes 1.0
  1. You are done. Get inspired by QML Barcode Reader demo to test wrapper.

Trying various formats

SBarcodeFilter is a class that you need to use for scanning case. By default it scans only specific basic formats of code (Code 39, Code 93, Code 128, QR Code and DataMatrix.). The goal of that is to limit number of possible formats and improve performance.

To specify formats that should be accepted by the SBarcodeFilter instance, you need to set it's format property accordingly. This property allows setting multiple enum values as it's for flags. Add the following to your SBarcodeFilter item in Qml code:

Component.onCompleted: {
    barcodeFilter.format = SCodes.OneDCodes
}

See the enumeration values that represent supported formats in SBarcodeFormat.h To accept all supported formats use SCodes.Any.

Note

Both build systems have their examples located in same directory. All you need to do is to just open proper file(CMakeLists.txt or *.pro file) for different build system to be used.

Supported Kits for Examples

PROJECT BUILD SYSTEM WINDOWS-MinGW WINDOWS-MSVC LINUX-GCC ANDROID
QmlBarcodeReader qmake ✔️ ✔️ ✔️ ✔️
QmlBarcodeGenerator qmake ✔️ ✔️ ✔️ ✔️
QmlBarcodeReader cmake ✔️ ✔️ ✔️
QmlBarcodeGenerator cmake ✔️ ✔️ ✔️

To be able to build cmake based examples for android devices, you will need to set ANDROID_NDK environment variable in project build settings to NDK version 22 or greater(tested on NDK version 22.1.7171670).

About Scythe Studio

SCodes project was developed and is maintained mainly by Scythe Studio company. We are an official Qt Service Partner and a provider of Qt Software Development services including:

  • Desktop applications development
  • Mobile applications development
  • Embedded systems development
  • Qt and C++ consulting
  • UI/UX designing

Do not hesitate visting https://scythe-studio.com to discover our capabilities and learn more about Qt Software Development from Scythe Studio Blog.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].