Skip to content
Python barcode extension with Dynamsoft Barcode Reader.
C Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Python Barcode Extension

Version 7.2.2

The repository aims to help developers build Python barcode apps with Dynamsoft Barcode Reader in Windows, Linux, macOS, and Raspberry Pi.


Get the trial license here. Then replace the old license with the newly generated one in the file.

Contact Us


Python 2/3

Supported Symbologies

  • Linear Barcodes (1D)

    • Code 39 (including Code 39 Extended)
    • Code 93
    • Code 128
    • Codabar
    • Interleaved 2 of 5
    • EAN-8
    • EAN-13
    • UPC-A
    • UPC-E
    • Industrial 2 of 5
  • 2D Barcodes:

    • QR Code (including Micro QR Code)
    • Data Matrix
    • PDF417 (including Micro PDF417)
    • Aztec Code
    • MaxiCode (mode 2-5)
  • Patch Code

  • GS1 DataBar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked)

  • GS1 Composite Code


Windows, Linux and macOS

pip install dbr

Raspberry Pi

Build from source.


  • examples/camera

  • examples/command-line



  • InitLicense(license-key)

  • DecodeFile(filename)

  • DecodeBuffer(frame-by-opencv-capture, height, width, stride)

  • DecodeFileStream(fileStream, fileSize)

    Code Snippet:
        # The value returned by every decode method is a dictionary object, it includes two items: TextResults and IntermediateResults.And the two items are both list objects.
        results = DecodeFile(fileName)
        textResults = results["TextResults"]
        intermediateResults = results["IntermediateResults"]
        # Each item in textResults or intermediateResults is a dictionary object. 
        # if you want some individual results in textResult or intermediateReuslt, you can get all keys in textResult or intermediateReuslt and get the value by the key.
        for textResult in textResults:
            print("BarcodeFormat:" + textResult["BarcodeFormatString"])
            print("BarcodeText:" + textResult["BarcodeText"])
    TextReuslt Type
    BarcodeFormat LONG
    BarcodeFormatString String
    BarcodeFormat_2 LONG
    BarcodeFormatString_2 String
    BarcodeText String
    BarcodeBytes ByteArray
    LocalizationResult Dictionary
    DetailedResult Dictionary
    ExtendedResults List
    LocalizationResult Type
    TerminatePhase LONG
    BarcodeFormat LONG
    BarcodeFormatString String
    BarcodeFormat_2 LONG
    BarcodeFormatString_2 String
    X1 LONG
    Y1 LONG
    X2 LONG
    Y2 LONG
    X3 LONG
    Y3 LONG
    X4 LONG
    Y4 LONG
    Angle LONG
    ModuleSize LONG
    PageNumber LONG
    RegionName String
    DocumentName String
    ResultCoordinateType LONG
    AccompanyingTextBytes ByteArray
    Confidence LONG
    DetailedReuslt depends on BarcodeFormat:
    DetailedReuslt Type
    ModuleSize(OneD,QR,DataMatrix,PDF417,AZTEC) LONG
    StartCharsBytes(OneD) ByteArray
    StopCharsBytes(OneD) ByteArray
    CheckDigitBytes(Oned) ByteArray
    Rows(QR,DataMatrix,PDF417,AZTEC) LONG
    Columns(QR,DataMatrix,PDF417,AZTEC) LONG
    ErrorCorrectionLevel(QR,PDF417) LONG
    version(QR) LONG
    model(QR) LONG
    DataRegionRows(DataMatrix) LONG
    DataRegionColumns(DataMatrix) LONG
    DataRegionNumber(DataMatrix) LONG
    LayerNumber(AZTEC) LONG
    ExtendedResult Type
    ResultType LONG
    BarcodeFormat LONG
    BarcodeFormatString String
    BarcodeFormat_2 LONG
    BarcodeFormatString_2 String
    Confidence LONG
    Bytes ByteArray
    AccompanyingTextBytes ByteArray
    Deformation LONG
    DetailedResult Dictionary
    SamplingImage Dictionary
    Clarity LONG
    SamplingImage Type
    Bytes ByteArray
    Width LONG
    Height LONG
    IntermediateResult Type
    DataType LONG
    IMResults List
    ResultType LONG
    BarcodeComplementMode LONG
    BCMIndex LONG
    DPMCodeReadingMode LONG
    RotationMatrix List[9]
    TextFilterMode LONG
    TFMIndex LONG
    LocalizationMode LONG
    LMIndex LONG
    BinarizationMode LONG
    BMIndex LONG
    ImagePreprocessingMode LONG
    IPMIndex LONG
    RegionPredetectionMode LONG
    RPMIndex LONG
    GrayscaleTransformationMode LONG
    GTMIndex LONG
    ColourConversionMode LONG
    CICMIndex LONG
    ColourClusteringMode LONG
    CCMIndex LONG
    ScaleDownRatio LONG
    FrameId LONG
    IMResultData depends on DataType:
    IMResultData Type
    Bytes(IMRDT_IMAGE) ByteArray
    Points(IMRDT_CONTOUR) List
    StartPoint(IMRDT_LINESEGMENT) Dictionary
    EndPoint(IMRDT_LINESEGMENT) Dictionary
    LinesConfidenceCoefficients(IMRDT_LINESEGMENT) List
    LocalizationRsult(IMRDT_LOCALIZATIONRESULT) Dictionary
    Point Type
    X LONG
    Y LONG
  • InitFrameDecodingParameters()

  • StartVideoMode(frameDecodingParameters, callback)

    FrameDecodingParameters Type
    MaxQueueLength LONG
    MaxResultQueueLength LONG
    Width LONG
    Height LONG
    Stride LONG
    ImagePixelFormat LONG
    RegionBottom LONG
    RegionLeft LONG
    RegionRight LONG
    RegionTop LONG
    RegionMeasuredByPercentage LONG
    Threshold Float
  • StopVideoMode()

  • AppendVideoFrame(frame-by-opencv-capture)

  • InitLicenseFromLicenseContent(license-key, license-content)

  • OutputLicenseToString()

  • InitLicenseFromServer(license-key, license-server)

  • InitRuntimeSettingsByJsonString(jsonTemplateString)

  • OutputSettingsToJsonString()

  • InitRuntimeSettingsByJsonFile(jsonTmeplateFile)

  • OutputSettingsToJsonFile(outputJsonFile)

  • AppendTplStringToRuntimeSettings(jsonTemplateString, conflictMode)

  • AppendTplFileToRuntimeSettings(jsonTmeplateFile, conflictMode)

    conflictMode = dbr.CM_IGNORE or dbr.CM_OVERWRITE
  • GetAllTemplateNames()

  • GetRuntimeSettings()

  • UpdataRuntimeSettings(settings)

    Code Snippet:
    # if you want to modify some values in RuntimeSettings, you can refer to the following code.
    # Attention: before using the UpdataRuntimeSettings() method, you must use the GetRuntimeSettings() method to get the current runtime settings.
    settings = GetRuntimeSettings()
    settings["BarcodeFormatIds"] = dbr.BF_ONED | dbr.BF_GS1_DATABAR
    settings["ExpectedBarcodesCount"] = 10
    settings["BinarizationModes"] = [dbr.BM_LOCAL_BLOCK, 0,0,0,0,0,0,0]
    settings["LocalizationModes"] = [dbr.LM_CONNECTED_BLOCKS, 0,0,0,0,0,0,0]
    settings["IntermediateResultSavingMode"] = dbr.IRSM_BOTH
    settings["IntermediateResultTypes"] = dbr.IRT_ORIGINAL_IMAGE | dbr.IRT_BINARIZED_IMAGE
    errorCode = UpdataRuntimeSettings(settings)
    RuntimeSettings Type
    TerminatePhase LONG
    Timeout LONG
    MaxAlgorithmThreadCount LONG
    ExpectedBarcodesCount LONG
    BarcodeFormatIds LONG
    BarcodeFormatIds_2 LONG
    ScaleDownThreshold LONG
    BinarizationModes List[8]
    LocalizationModes List[8]
    ColourClusteringModes List[8]
    ColourConversionModes List[8]
    GrayscaleTransformationModes List[8]
    RegionPredetectionModes List[8]
    ImagePreprocessingModes List[8]
    TextureDetectionModes List[8]
    TextFilterModes List[8]
    DPMCodeReadingModes List[8]
    DeformationResistingModes List[8]
    BarcodeComplementModes List[8]
    BarcodeColourModes List[8]
    TextResultOrderModes List[8]
    TextAssistedCorrectionMode LONG
    DeblurLevel LONG
    IntermediateResultTypes LONG
    IntermediateResultSavingMode LONG
    ResultCoordinateType LONG
    ReturnBarcodeZoneClarity LONG
    RegionTop LONG
    RegionBottom LONG
    RegionLeft LONG
    RegionRight LONG
    RegionMeasuredByPercentage LONG
    MinBarcodeTextLength LONG
    MinResultConfidence LONG
  • ResetRuntimeSettings()

  • SetModeArgument(modesName, index, argumentName, argumentValue)

  • GetModeArgument(modesName, index, argumentName)

    Code Snippet:
    errorCode = SetModeArgument("BinarizationModes", 0, "BlockSizeX", "3")
    argumentValue = GetModeArgument("BinarizationModes", 0, "BlockSizeX")
    ModesName ArgumentName
    BarcodeColourModes LightReflection
    BinarizationModes BlockSizeX
    BinarizationModes BlockSizeY
    BinarizationModes EnableFillBinaryVacancy
    BinarizationModes ImagePreprocessingModesIndex
    BinarizationModes ThreshValueCoefficient
    ColourClusteringModes Sensitivity
    ColourConversionModes BlueChannelWeight
    ColourConversionModes GreenChannelWeight
    ColourConversionModes RedChannelWeight
    DeformationResistingModes Level
    ImagePreprocessingModes Sensitivity
    ImagePreprocessingModes SmoothBlockSizeX
    ImagePreprocessingModes SmoothBlockSizeY
    ImagePreprocessingModes SharpenBlockSizeX
    ImagePreprocessingModes SharpenBlockSizeY
    IntermediateResultSavingMode FolderPath
    IntermediateResultSavingMode RecordsetSizeOfLatestImages
    LocalizationModes ScanStride
    RegionPredetectionModes MinImageDimension
    RegionPredetectionModes Sensitivity
    TextAssistedCorrectionMode BottomTextPercentageSize
    TextAssistedCorrectionMode LeftTextPercentageSize
    TextAssistedCorrectionMode RightTextPercentageSize
    TextAssistedCorrectionMode TopTextPercentageSize
    TextFilterModes MinImageDimension
    TextFilterModes Sensitivity
    TextureDetectionModes Sensitivity

Deprecated Functions

  • initLicense(license-key)
  • decodeFile(filename, format)
  • decodeBuffer(frame-by-opencv-capture, format)
  • decodeFileStream(fileStream, fileSize, format)
  • startVideoMode(max_buffer, max_results, video_width, video_height, stride, format, callback)
  • stopVideoMode()
  • appendVideoFrame(frame-by-opencv-capture)
  • initLicenseFromLicenseContent(license-key, license-content)
  • outputLicenseToString()
  • initLicenseFromServer(license-key, license-server)
  • setFurtherModes(mode, [values])
  • setParameters(json-string)
  • getParameters()
You can’t perform that action at this time.