Release Notes for Dynamsoft Barcode Reader JavaScript Edition - 9.x
9.6.42 (04/29/2024)
Fixed
- Fixed a camera not opening issue in iOS 17.4.
- Fixed an issue in iOS 17 where reopening the camera after exiting the browser could result in failure.
9.6.40 (03/18/2024)
Improved
- Updated the security of the DynamsoftBarcodeReader library and other corresponding dependent libraries.
- Improved the barcode decoding performance:
- Improved the accuracy when decoding OneD & PDF417 barcodes.
- Improved the readability of dense DataMatrix codes.
Fixed
- Fixed crash bugs in the barcode decoding algorithm.
- Fixed a bug where the location of the barcode result(s) might be incorrect.
9.6.33 (02/05/2024)
Improved
- Added property
cameraOpenTimeoutto theBarcodeScanner, enabling control over the maximum time allowed for opening a selected camera. - Changed the error message type generated during the autoZoom/autoFocus process from an error to a warning.
- Removed the
PDFReadingModeproperty from the interfaceRuntimeSettingsand eliminated theEnumPDFReadingModeenumeration. - Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.9 to version 3.3.10.
9.6.32 (12/07/2023)
Improved
- Remove redundant characters extracted from the PDF417 code on South Carolina driver’s licenses.
- Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.8 to version 3.3.9.
9.6.31 (10/12/2023)
Improved
- Supported a non-standard PDF417 type used in Navy’s driver licenses.
- Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.6 to version 3.3.8.
9.6.30 (09/13/2023)
Fixed
- Fixed a bug that led to incorrect output of start/middle/endPatternRange in
OneDCodeDetails. - Fixed a bug where an unnecessary input element appears in Safari on iOS 16 when setting
singleFrameModeto true.
Improved
- Updated the barcode reader algorithm to v9.6.30.
- Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.5 to version 3.3.6. - Updated the API
singleFrameModeto support using the system camera directly without prompting for image source selection on mobile devices. - Updated the method
close()so that it automatically clears the highlighting of found barcode symbols.
9.6.21 (08/03/2023)
Fixed
- Fixed an issue where TypeScript 5 cannot locate the declaration file when importing package.
Improved
- Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.4 to version 3.3.5. - Updated API annotations.
9.6.20 (04/18/2023)
Improved
- Updated the barcode reader algorithm to v9.6.20.
- Updated the internal
Dynamsoft Camera Enhancerfrom version 3.3.1 to version 3.3.4.
Fixed
- Fixed a bug where setting
runtimeSettings.barcodeFormatIds_2toBF2_ALLdoesn’t take effect. - Fixed bug where barcode result coordinates were incorrect when calling
decode()on large images (2048px or wider on mobile, 4096px or wider on desktop). This also causes the wrong canvas to be returned when callinggetOriginalImageInACanvas().
9.6.11 (03/13/2023)
Added
- Added method
getVideoFitto return the value of the object-fit CSS property of the video element. - Added method
convertToPageCoordinatesto convert coordinates of a barcode location to the coordinates relative to the top left point of the entire document. - Added method
convertToClientCoordinatesto convert coordinates of a barcode location to the coordinates within the application’s viewport at which the event occurred (as opposed to the coordinate within the page).
9.6.10 (02/21/2023)
Added
- Added method
testCameraAccessto test whether there is an available camera. - Added method
enableTapToFocusto enable manual camera focus when clicking/tapping on the video. - Added method
disableTapToFocusto disable manual camera focus when clicking/tapping on the video. - Added method
isTapToFocusEnabledto return whether clicking/tapping on the video invokes the camera to focus.
Improved
- Updated the barcode reader algorithm to v9.6.10.
- Updated the internal
Dynamsoft Camera Enhancerto v3.3.1. - The method
decodeBufferis updated to accept an additional parameter “orientation” to help specify the orientation of the image data. - The interface
LocalizationResultis updated to have a new property “transformationMatrix”. - Three missing errorcodes are added: DBR_PANORAMA_LICENSE_INVALID, DBR_PHARMACODE_LICENSE_INVALID, DBR_IMAGE_ORIENTATION_INVALID. Check the full list at
EnumErrorCode.
Fixed
- Fixed a bug where the “autoZoom” feature may not work as expected.
9.6.2 (01/16/2023)
Improved
- Improved the
autoZoomfeature.
9.6.1 (12/19/2022)
Fixed
- Fixed a bug where the indexedDB could become unresponsive if barcodes were scanned too quickly.
9.6.0 (12/13/2022)
Version Highlights
- 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
MirrorModewhen localizing the barcodes. - Deformed barcode decoding is improved by extending the supported modes and mode arguments of
DeformationResistingModes.
Edition-Specific Highlights
Added
- Added 3 new properties in
ScanSettingsautoZoom, when set totrue, means the SDK will automatically zoom in on the video if the barcode appears too small in the video feed and fails to be read;autoFocus, when set totrue, means the SDK will automatically focus on the part of the video where a barcode is found but fails to be read;autoSuggestTip, when set totrue, means the SDK will automatically suggest Tip messages to help guide the user to acquire better video frames for barcode reading.
These features are only valid when there is a intermediate_results module license.
Changed
duplicateForgetTimecan only be set to a maximum of 10 seconds in this version. It was not limited in previous versions.
Fixed
- Fixed a bug where binary intermediate result images had unwanted black borders.
9.3.1 (10/10/2022)
Fixed
- Fixed a bug where calling
setCurrentCamera()orsetResolution()before opening the camera would cause an error. - Fixed a bug where the canvas used internally remains in the DOM and is not removed as expected after a
BarcodeScannerinstances callsdestroyContext().
9.3.0 (09/27/2022)
Added
- Added 3 properties to control the highlight style of linear barcodes before validation.
barcodeFillStyleBeforeVerificationbarcodeStrokeStyleBeforeVerificationbarcodeLineWidthBeforeVerification
Fixed
- Fixed a bug where linear barcodes found were highlighted with a beep (if sound was enabled) but no results were output.
9.2.13 (08/11/2022)
- Fixed bugs with the properties
barcodeFillStyle,barcodeStrokeStyleandbarcodeLineWidthto make them work properly. - Fixed a bug with
onFrameReadso that it fires regardless of whether there is a result on the processed frame (as expected). - Fixed a bug with
onImageReadso that it fires only once for the same image (as expected), instead of twice.
9.2.12 (08/04/2022)
- Fixed a bug where the scan region mask and/or other shapes drawn on the UI were not updated when the view changed to landscape from portrait or vice versa on mobile devices.
- This version uses Dynamsoft Camera Enhancer version 3.0.1.
9.2.11 (07/28/2022)
Added
- Added option
captureAndDecodeInParallelto the interfaceScanSettingsto control whether to speed up the decoding by capturing the next frame in advance. - Added properties
ifSaveLastUsedCameraandifSkipCameraInspectionfor better camera control. - Added two more templates
denseanddistanceas options forupdateRuntimeSettings().
Changed
- The default resolution to try for cameras on desktop is changed to 1920 x 1080, previously it was 1280 x 720.
- The method
setImageSource()now takes an additional parameteroptionswhich helps to pass the information needed by theBarcodeReaderobject, such as the definition (Dynamsoft.DCE.DrawingItem) for creating the shapes that highlight barcodes. - When reading 1D barcodes, the callback
onFrameReadnow verifies a result across multiple frames before outputting it so that it is more reliable. The same logic was always used for the callbackonUniqueRead. - The methods
pauseScan()(forBarcodeScanner) andpauseScanning()(forBarcodeReader) now both accept an optional parameteroptions, which can control the behavior of the pause, such as whether to keep results highlighted (keepResultsHighlighted). - This version uses Dynamsoft Camera Enhancer version 3.0.0 instead of the previous version 2.3.2.
Fixed
- Fixed a bug where the intermediate result images are redacted even with a valid license.
9.0.2 (05/06/2022)
Added
- Added API
ifShowScanRegionMasktoBarcodeScannerto control whether to show the scan region mask.
Changed
- Moved the following docs from the doc directory to the root directory of the package.
Api Reference.htmllegal.txtLicense Agreement.html
Fixed
- Fixed bugs with
regionMaskFillStyle,regionMaskStrokeStyle,regionMaskLineWidthofBarcodeScannerto avoid invalid value setting. - Fixed a bug where region will be reset to full image when switching template after region setting of
BarcodeScanner. - Fixed a bug where the region setting is invalid when using
updateRuntimeSettingsofBarcodeReader.
9.0.1 (04/25/2022)
Added
- Added method
setVideoFit()toBarcodeScannerto allow the video element to either fit or cover the viewer. - Added method
setImageSource()toBarcodeReaderto specify an Image Source which provides images of the typeDSImagefor continuous scanning. - Added methods
startScanning(),pauseScanning(),resumeScanning(),stopScanning(),getScanSettings()andupdateScanSettings()as well as eventsonUniqueReadandonImageReadtoBarcodeReaderto facilitate continous scanning of images coming from the Image Source.
9.0.0 (03/24/2022)
Version Highlights
- Simplified the license activation steps. Different license activation APIs are integrated into one API.
- Added support for Pharmacode.
- Added support for Code 11, an 1D format.
- Deformation resisting modes
DRM_BROAD_WARP,DRM_LOCAL_REFERENCEandDRM_DEWRINKLEare optimized and detached fromDRM_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-Specific Highlights
Added
- Added the property
licenseas the main API for setting a license key. - Added methods
getFocus()andsetFocus()to control the camera focus. - Added method
getFrameRate()to check the current frame rate of the video input.
Changed
- The file dbr.scanner.html has been renamed to dbr.ui.html.
dbrScanner-cvs-scanareaclass is now renamed todce-scanareadce-videois now replaced bydce-video-containerdbrScanner-scanlightis now replaced bydce-scanlightdbrScanner-cvs-drawareahas been removed
The following APIs are renamed:
| Old API | New API |
|---|---|
onUnduplicatedRead |
onUniqueRead |
outputSettingsToString() |
outputRuntimeSettingsToString() |
Dynamsoft.DBR.BarcodeReader.isLoaded() |
Dynamsoft.DBR.BarcodeReader.isWasmLoaded() |
The following APIs are moved:
| API Name | Notes |
|---|---|
whenToPlaySoundforSuccessfulRead |
Moved to ScanSettings |
soundOnSuccessfullRead |
Moved to ScanSettings |
whenToVibrateforSuccessfulRead |
Moved to ScanSettings |
vibrateDuration |
Moved to ScanSettings |
Deprecated
The following APIs are deprecated:
| API Name | Notes |
|---|---|
Dynamsoft.DBR.BarcodeReader.handshakeCode |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.BarcodeReader.licenseServer |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.BarcodeReader.organizationID |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.BarcodeReader.sessionPassword |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.BarcodeReader.productKeys |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.BarcodeScanner.handshakeCode |
Use Dynamsoft.DBR.BarcodeScanner.license instead. |
Dynamsoft.DBR.BarcodeScanner.licenseServer |
Use Dynamsoft.DBR.BarcodeScanner.license instead. |
Dynamsoft.DBR.BarcodeScanner.organizationID |
Use Dynamsoft.DBR.BarcodeScanner.license instead. |
Dynamsoft.DBR.BarcodeScanner.sessionPassword |
Use Dynamsoft.DBR.BarcodeScanner.license instead. |
Dynamsoft.DBR.BarcodeScanner.productKeys |
Use Dynamsoft.DBR.BarcodeScanner.license instead. |
Removed
The following APIs are removed:
| API Name | Notes |
|---|---|
Dynamsoft.DBR.browserInfo |
Use Dynamsoft.DBR.BarcodeReader.browserInfo instead. |
Dynamsoft.DBR.detectEnvironment() |
Use Dynamsoft.DBR.BarcodeReader.detectEnvironment() instead. |
Dynamsoft.DBR.deviceFriendlyName |
Use Dynamsoft.DBR.BarcodeReader.deviceFriendlyName instead. |
Dynamsoft.DBR.engineResourcePath |
Use Dynamsoft.DBR.BarcodeReader.engineResourcePath instead. |
Dynamsoft.DBR.handshakeCode |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.isLoaded() |
Use Dynamsoft.DBR.BarcodeReader.isWasmLoaded() instead. |
Dynamsoft.DBR.licenseServer |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.loadWasm |
Use Dynamsoft.DBR.BarcodeReader.isWasmLoaded instead. |
Dynamsoft.DBR.organizationID |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.productKeys |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.sessionPassword |
Use Dynamsoft.DBR.BarcodeReader.license instead. |
Dynamsoft.DBR.version |
Use Dynamsoft.DBR.BarcodeReader.version instead. |