Web Demos

BARCODE READER SDK DEMO

Explore the flexibe barcode reading settings to optimize for your specific usage scenario.

WEB TWAIN SDK DEMO

Try the most popular web scanner features: scan images, import local images and PDF files, edit, save to local, upload to database, and etc.

BARCODE READER JAVASCRIPT DEMO

Transform any camera-equipped devices into real-time, browser-based barcode and QR code scanners.

MRZ SCANNER WEB DEMO

Detects the machine-readable zone of a passport, scans the text, and parses into human-readable data.

APP STORE DEMOS

BARCODE READER SDK FOR IOS

BARCODE READER SDK FOR ANDROID

VIEW MORE DEMOS >
Dev Center
Table of contents

Thanks for downloading Dynamsoft Barcode Reader Package!

Your download will start shortly. If your download does not begin, click here to retry.

Release Notes for Python Edition - 9.x

9.6.20 (03/16/2023)

Fixed

  • Fixed a bug where the methods init_license and get_instance may not work as expected when using concurrent instance license.
  • Fixed a bug where license authorization may fail when the main license server is not available.
  • Other small fixes and tweaks.

9.6.10 (01/10/2023)

New

  • Added support for Python 3.11.
  • Added a new method set_license_cache_path in the BarcodeReader class to support customizing the license cache saving path.
  • Add a new method get_device_uuid in the BarcodeReader class to support getting device UUID for license activating.
  • Added error code DMERR_LICENSE_BUFFER_FAILED to the potential error list of the license activation methods and decode methods. The error code is returned when the directory of the license cache is inaccessible.

Improved

  • Improved the performance of Direct Part Marking (DPM) barcode decoding.
  • Improved the performance of GS1 Databar barcode decoding.

Fixed

  • Fixed a crash bug when using a online license key on ARM64 environment.
  • Fixed a crash bug when using a online license key on the AWS lambda environment.
  • Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter RequireStartStopChars is set to 0.
  • Other small fixes and tweaks.

9.6.0 (11/29/2022)

Version Highlights

  • Image orientation handling is supported by a new feature. With the new feature, you can:
    • Get a TranformationMatrix along with the barcode location result.
    • Implement coordinates transformation on the barcode location result with the TransformationMatrix.
  • DotCode decoding is improved by optimizing the localization of DotCodes that are close to one another.
  • EAN8 barcode decoding is improved by honing the accuracy of localization algorithms.
  • QR code localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image.
  • Mirrored rectangular DataMatrix barcode is supported by implementing MirrorMode when localizing the barcodes.
  • Deformed barcode decoding is improved by extending the supported modes and mode arguments of DeformationResistingModes.

Edition Highlights

  • Added duplicate barcode filter feature in video mode. You can implement duplicate filter to ignore duplicate barcodes for a period.

Changelog

New

  • Added a property orientation to class FrameDecodingParameters to set the orientation information of the video frame.
  • Added orientation to class ImageData to set the orientation information.
  • Enabled decoding methods decode_file(), decode_file_stream() and decode_base64_string() to read EXIF data of the given image so that the library can obtain the orientation information of the image file.
  • Added an optional parameter orientation to method decode_buffer() and decode_buffer_manually() to set the orientation information of the image data.
  • Added a property transformation_matrix to class LocalizationResult so that the library can output a transformation matrix for transforming the localization coordinates to image’s natural orientation.
  • Added a method transform_coordinates() to support transforming the coordinates of a point based on a given transformation matrix.
  • Added a property duplicate_forget_time to class FrameDecodingParameters to set the time period used to filter out duplicate results found in frames.
  • Added a optional parameter unique_barcode_callback_func to method start_video_mode to set callback function to process unique barcode results which is triggered when the library finishes decoding a frame and finds unique barcodes.
  • Added properties has_left_row_indicator and has_right_row_indicator to class PDFDetailedResult to return whether the left and right row indicator of the PDF417 barcode is detected.
  • Added a member BF2_ALL to enumeration BarcodeFormatIds_2 to support setting all barcode formats in BarcodeFormat group 2 with one enumeration.
  • Extended the features of parameter DeformationResistingModes:

Improved

  • Improved the accuracy when processing multiple QR codes.
  • Improved the processing speed by excluding incorrectly located barcode zones before decoding.
  • Improved the creation, destruction and acquisition logic of concurrent instances.
  • Improved the accuracy of EAN8 localization result(s).
  • Improved the localization of mirrored DataMatrix barcode by implementing MirrorMode.

Fixed

  • Fixed a bug that DotCodes might not be decoded when they are densely arranged.
  • Fixed a crash bug when trying to output a template which included BarcodeTextRegExPattern.
  • Other small fixes and tweaks.

9.4.0 (08/30/2022)

Highlights

  • DotCode decoding has been improved by optimizing the localization and decoding algorithm.
  • Stacked, skewed or perspective distorted OneD barcode decoding has been improved.

Changelog

New

  • Added an argument IsOneDStacked to LM_SCAN_DIRECTLY to process stacked OneD barcodes.
  • Added a parameter PatchCodeSearchingMargins to specify the searching area of PatchCode.
  • Added the supported data format of FormatSpecification.PartitionModes to enhance the readability of the parameters. Users can use a list of enumeration names to specify the PartitionModes.
  • Added method decode_base64_string to support decoding images encoded with base64 string.
  • Added the supported parameter types of method decode_file_stream. The parameter file_stream now supports both bytes and bytearray.

Improved

  • Improved the localization mode LM_LINES to better support skewed and perspective OneD barcodes.
  • Enhanced tamper resistance of the license keys so that any change to the license string makes it invalid.

Deprecated

9.2.0 (06/21/2022)

Version Highlights

  • Barcode boundary-seeking algorithm is refactored to improve stability.
  • Pharmacode decoding is optimized to improve accuracy.
  • The function of device-alias is added to allow users to give each device a readable name. For end-users and administrators, this makes it more friendly to distinguish between devices about license usage statistics.

Edition Highlights

  • Added macOS ARM64 support to the Python edition of the SDK.

Changelog

New

9.0.0 (03/31/2022)

Version Highlights

  • Simplified the license activation steps. Different license activation APIs are integrated into initLicense method.
  • Added support for Pharmacode.
  • Added support for Code 11, a 1D format.
  • Deformation resisting modes DRM_BROAD_WARP, DRM_LOCAL_REFERENCE and DRM_DEWRINKLE are optimized and detached from DRM_GENERAL. Users can specify a more effective deformation resisting mode when processing QRCode and DataMatrix codes.
  • Optimized the confidence scoring system for PDF417 codes.

Edition Highlights

  • Added support for Python 3.10.

Changelog

New

Changed

  • Changed method init_license to a static method.
  • Changed value of BF_ONED under Enumeration EnumBarcodeFormat to 0x003007FF to have BF_CODE_11 combined.
  • Changed value of BF_ALL under Enumeration EnumBarcodeFormat to 0xFE3FFFFF to have BF_CODE_11 combined.
  • Changed the behaviour of DeformationResistingMode DRM_GENERAL which now only applies basic process to resist deformation.
  • Changed the return value of the method get_idle_instances_count from 0 to -1 when the available count needs to be updated from server by calling init_license.

Fixed

  • Fixed a bug that might cause a crash when using multiple threads for barcode decoding.
  • Fixed a bug that throws exceptions when using method get_idle_instances_count.
  • Fixed a bug that Function Code 1 (FNC1) character would not return if it was in the first position of GS1-128 codes.
  • Other small fixes and tweaks.

Deprecated

The following items are now deprecated. They still work in this version but could be removed in the near future.

This page is compatible for:

Version 7.5.0

Is this page helpful?

YesYes NoNo

In this article:

latest version

    • Latest version
    • Version 9.x
      • Version 9.6.10
      • Version 9.6.0
      • Version 9.4.0
      • Version 9.2.0
      • Version 9.0.0
    • Version 8.x
      • Version 8.8.0
      • Version 8.6.0
      • Version 8.4.0
      • Version 8.2.0
      • Version 8.1.2
      • Version 8.1.0
      • Version 8.0.0
    • Version 7.x
      • Version 7.6.0
      • Version 7.5.0
    Change +