From 757e5966973f987ab9337effd376f603792105ec Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 30 Jul 2026 17:52:08 +0800 Subject: [PATCH 01/21] Refactor documentation to streamline API usage sections and enhance clarity across multiple guides --- .../capabilities/add-functional-buttons.md | 29 ----- .../capabilities/barcode-formats.md | 28 ----- .../user-guide/capabilities/feedback.md | 26 ----- .../capabilities/read-specific-area.md | 35 ------ .../capabilities/single-multiple.md | 106 +----------------- .../user-guide/capabilities/zoom-control.md | 45 -------- 6 files changed, 2 insertions(+), 267 deletions(-) diff --git a/programming/objectivec-swift/user-guide/capabilities/add-functional-buttons.md b/programming/objectivec-swift/user-guide/capabilities/add-functional-buttons.md index 0a996930..d2e6cb52 100644 --- a/programming/objectivec-swift/user-guide/capabilities/add-functional-buttons.md +++ b/programming/objectivec-swift/user-guide/capabilities/add-functional-buttons.md @@ -27,7 +27,6 @@ BarcodeScanner provides a set of UI elements that you can easily customize. - Camera toggle button: A clickable button that switches the front/back-facing camera. - Close button: Stops barcode scanning and returns to the previous activity. -## Work with Foundational APIs
>- Objective-C @@ -52,31 +51,3 @@ cameraView?.cameraToggleButtonVisible = true - [`CameraView`]({{ site.dce_ios }}auxiliary-api/dcecameraview.html) - [setTorchButtonVisible]({{ site.dce_ios }}auxiliary-api/dcecameraview.html#settorchbuttonvisible) - [setCameraToggleButtonVisible]({{ site.dce_ios }}auxiliary-api/dcecameraview.html#setcameratogglebuttonvisible) - -## Work with BarcodeScanner APIs - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.isTorchButtonVisible = YES; -config.isCloseButtonVisible = YES; -config.isCameraToggleButtonVisible = YES; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.isTorchButtonVisible = true -config.isCloseButtonVisible = true -config.isCameraToggleButtonVisible = true -``` - -**Related APIs** - -- [`BarcodeScannerConfig`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html) - - [setTorchButtonVisible]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#settorchbuttonvisible) - - [setCloseButtonVisible]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setclosebuttonvisible) - - [setCameraToggleButtonVisible]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setcameratogglebuttonvisible) diff --git a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md index b8f4382c..af1f8ddc 100644 --- a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md +++ b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md @@ -24,8 +24,6 @@ Specify barcode formats using a combined value of [`EnumBarcodeFormat`]({{ site. - Use `EnumBarcodeFormat.BF_ALL` to enable all supported formats. - Use group values like `EnumBarcodeFormat.BF_ONED` when appropriate. -### Use Foundational API - - `SimplifiedCaptureVisionSettings.barcodeSettings.barcodeFormatIds` Example: @@ -57,32 +55,6 @@ do { } ``` -### Use BarcodeScanner API - -- `BarcodeScannerConfig.setBarcodeFormats(long format)` - -Example: - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -// QR Code + DataMatrix -config.barcodeFormats = DSBarcodeFormatQRCode | DSBarcodeFormatDataMatrix; -``` -2. -```swift -let config = BarcodeScannerConfig() -// QR Code + DataMatrix -config.barcodeFormats = [.qrCode, .dataMatrix] -``` - -> [!Note] -> If you are already using a customized template, you usually do not need to specify formats again in code. See [Use a Customized Template](parameters-and-templates.md#use-a-customized-template) for details. - ## Configure Formats in a Template Barcode formats are specified in `BarcodeFormatIds` under `BarcodeReaderTaskSettingOptions`. For example: diff --git a/programming/objectivec-swift/user-guide/capabilities/feedback.md b/programming/objectivec-swift/user-guide/capabilities/feedback.md index 0d522977..f407d0be 100644 --- a/programming/objectivec-swift/user-guide/capabilities/feedback.md +++ b/programming/objectivec-swift/user-guide/capabilities/feedback.md @@ -12,8 +12,6 @@ noTitleIndex: true Trigger a beep sound or vibration when a barcode is scanned successfully. -### Use Foundational APIs -
>- Objective-C >- Swift @@ -32,27 +30,3 @@ Feedback.vibrate() **Related API** - [`Feedback`]({{ site.dce_ios }}auxiliary-api/dcefeedback.html) - -### Use BarcodeScanner APIs - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.isBeepEnabled = YES; -config.isVibrateEnabled = YES; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.isVibrateEnabled = true -config.isBeepEnabled = true -``` - -**Related API** - -- [`isVibrateEnabled`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#isvibrateenabled) -- [`isBeepEnabled`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#isbeepenabled) diff --git a/programming/objectivec-swift/user-guide/capabilities/read-specific-area.md b/programming/objectivec-swift/user-guide/capabilities/read-specific-area.md index 4f7efced..e014b326 100644 --- a/programming/objectivec-swift/user-guide/capabilities/read-specific-area.md +++ b/programming/objectivec-swift/user-guide/capabilities/read-specific-area.md @@ -12,8 +12,6 @@ needAutoGenerateSidebar: true ## Set a Scan Region on Camera -### Work with Foundational APIs -
>- Objective-C >- Swift @@ -42,39 +40,6 @@ try? dce.setScanRegion(region) - [`CameraEnhancer`]({{ site.dbr_ios_api }}camera-enhancer/camera-enhancer.html) - [`setScanRegion`]({{ site.dbr_ios_api }}camera-enhancer/camera-enhancer.html#setscanregion) -### Work with BarcodeScanner APIs - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -// Margin left 15%, margin top 30%, margin right 85%, margin bottom 70% -DSRect *region = [[DSRect alloc] init]; -region.left = 0.15; -region.top = 0.25; -region.right = 0.85; -region.bottom = 0.65; -config.scanRegion = region; -``` -2. -```swift -let config = BarcodeScannerConfig() -let region = Rect() -region.left = 0.15 -region.top = 0.30 -region.right = 0.85 -region.bottom = 0.70 -config.scanRegion = region -``` - -**Related APIs** - -- [`BarcodeScannerConfig`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html) - - [`setScanRegion`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setscanregion) - ## Set an ROI via Simplified Settings > [!Important] diff --git a/programming/objectivec-swift/user-guide/capabilities/single-multiple.md b/programming/objectivec-swift/user-guide/capabilities/single-multiple.md index ee8fd7f0..36802cdb 100644 --- a/programming/objectivec-swift/user-guide/capabilities/single-multiple.md +++ b/programming/objectivec-swift/user-guide/capabilities/single-multiple.md @@ -12,9 +12,8 @@ noTitleIndex: true This article explains how to switch between single-barcode scanning mode and multi-barcode scanning mode. -## Work with Foundational APIs -### Configure Expected Barcodes Count +## Configure Expected Barcodes Count - `expectedBarcodesCount` = 1: Scan a single barcode. - `expectedBarcodesCount` = 0: Allows the library to return more than one result, but it does not aggressively optimize for decoding multiple barcodes. @@ -48,7 +47,7 @@ do { - [`simplifiedCaptureVisionSettings`]({{ site.dcvb_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) - [`simplifiedBarcodeReaderSettings`]({{ site.dbr_ios_api }}simplified-barcode-reader-settings.html) -### Improve Multi-Scan Stability +## Improve Multi-Scan Stability Use max overlapping feature of multi-frame cross filter to improve the stability of multi-barcode scanning. @@ -72,104 +71,3 @@ filter.setMaxOverlappingFrames(.barcode, frames: 10) filter.enableLatestOverlapping(.barcode, isEnabled: true) cvr.addResultFilter(filter) ``` - -## Work with BarcodeScanner APIs - -### How to Switch Scanning Modes - -Use the `setScanningMode` method to switch between single-barcode and multi-barcode scanning modes. - -- `SM_MULTIPLE`: Multi-barcode scanning mode. -- `SM_SINGLE`: (Default) Single-barcode scanning mode. - -**Code Snippet** - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.scanningMode = DSScanningModeMultiple; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.scanningMode = .multiple -``` - -### Configure the Auto-Stop Conditions - -For multi-barcode scanning, there are two automatic stop conditions: - -- The number of successfully decoded barcodes reaches the `expectedBarcodesCount`. -- There are no new decoding results for N consecutive frames. The value of N can be set using `setMaxConsecutiveStableFramesToExit`. - -For example, apply the following settings: - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.scanningMode = DSScanningModeMultiple; -config.expectedBarcodesCount = 10; -config.maxConsecutiveStableFramesToExit = 15; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.scanningMode = .multiple -config.expectedBarcodesCount = 10 -config.maxConsecutiveStableFramesToExit = 15 -``` - -If at least 10 barcodes are decoded, scanning stops. Otherwise, scanning continues for up to 15 consecutive stable frames. If no new decoding results are found within those 15 frames, scanning stops. - -**Related APIs** - -- [`setScanningMode`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setscanningmode) -- [`setExpectedBarcodesCount`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setexpectedbarcodescount) -- [`setMaxConsecutiveStableFramesToExit`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setmaxconsecutivestableframestoexit) - -## Comparisons - -If you are looking for a solution to scan large batches of barcodes, refer to [`BatchBarcodeScanner`](https://www.dynamsoft.com/use-cases/batch-barcode-scanning/){:target="_blank"}. `BatchBarcodeScanner` is much more capable of large-volume barcode scanning and provides a highly interactive UI for previewing, editing, saving, reusing, and sharing results. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
BarcodeScanner Single ModeBarcodeScanner Multi ModeBatchBarcodeScanner
DependenciesDynamsoftBarcodeReaderBundleDynamsoftBarcodeReaderBundleDynamsoftBatchBarcodeReaderBundle
Scan AbilityDecodes at least one barcode available in the latest frame.Decodes all barcodes available in the latest frame.Decodes all barcodes available in the latest frame (TTL Overlap Mode)
or
decodes all barcodes available in the first frame (TTS Overlap Mode)
or
decodes all barcodes that appear during capture (Panorama Mode).
ResultAlways returns one barcode result. If more than one barcode is decoded, users are asked to select one.All decoded barcodesAll decoded barcodes, plus a PanoramicImage that highlights all of them.
Result EditorNot availableNot availableSupports the following operations
1. Extend the current result with all available image sources.
2. Manually add new results or edit existing results.
3. Save to history.
4. Export as files (.png, .csv, etc.).
diff --git a/programming/objectivec-swift/user-guide/capabilities/zoom-control.md b/programming/objectivec-swift/user-guide/capabilities/zoom-control.md index 7237db34..980baf1a 100644 --- a/programming/objectivec-swift/user-guide/capabilities/zoom-control.md +++ b/programming/objectivec-swift/user-guide/capabilities/zoom-control.md @@ -24,8 +24,6 @@ Enable auto-zoom so the camera can zoom in automatically.

Auto Zoom

-### Use Foundational APIs -
>- Objective-C >- Swift @@ -43,31 +41,9 @@ dce.enableEnhancedFeatures(EnhancedFeatures.autoZoom) - [`enableEnhancedFeatures`]({{ site.dce_ios }}primary-api/camera-enhancer.html#enableenhancedfeatures) -### Use BarcodeScanner APIs - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.isAutoZoomEnabled = YES; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.isAutoZoomEnabled = true -``` - -**Related API** - -- [`setAutoZoomEnabled`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setautozoomenabled) ## Zoom Factor -### Use Foundational APIs -
>- Objective-C >- Swift @@ -84,24 +60,3 @@ dce.setZoomFactor(2.0) **Related API** - [`setZoomFactor`]({{ site.dce_ios }}primary-api/camera-enhancer.html#setzoomfactor) - -### Use BarcodeScanner APIs - -
->- Objective-C ->- Swift -> ->1. -```objc -DSBarcodeScannerConfig *config = [[DSBarcodeScannerConfig alloc] init]; -config.zoomFactor = 2.0; -``` -2. -```swift -let config = BarcodeScannerConfig() -config.zoomFactor = 2.0 -``` - -**Related API** - -- [`setZoomFactor`]({{ site.dbr_ios_api }}barcode-scanner/barcode-scanner-config.html#setzoomfactor) From ab96c080ee00eb9b873dad6de78e0eb03814882f Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 31 Jul 2026 10:46:35 +0800 Subject: [PATCH 02/21] Update template paths in barcode formats documentation for accuracy --- .../capabilities/barcode-formats.md | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md index af1f8ddc..1666af21 100644 --- a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md +++ b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md @@ -61,7 +61,7 @@ Barcode formats are specified in `BarcodeFormatIds` under `BarcodeReaderTaskSett ```json { - "CaptureVisionTemplates": [ + "CaptureVisionTemplates/": [ { "ImageROIProcessingNameArray": [ "ROI_2D" ], "Name": "ReadCommon2D", @@ -97,15 +97,15 @@ Barcode formats are specified in `BarcodeFormatIds` under `BarcodeReaderTaskSett } ``` -For common formats, you can download and use the preset templates below: +For common formats, you can download and use the preset Templates/ below: | Barcode Format(s) | Template | | ----------------- | -------- | -| EAN13, EAN8, UPC_A, UPC_E, GS1 Databar | [ReadOneDRetail.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDRetail.json) | -| Code128, Code39, ITF, Codabar, MSI Code | [ReadOneDIndustrial.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDIndustrial.json) | -| QR Code | [ReadQR.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadQR.json) | -| Data Matrix | [ReadDataMatrix.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDataMatrix.json) | -| PDF417 | [ReadPDF417.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadPDF417.json) | -| Aztec | [ReadAztec.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadAztec.json) | -| QR Code, Data Matrix, PDF417 | [ReadCommon2D.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadCommon2D.json) | -| DotCode | [ReadDotCode.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDotCode.json) | +| EAN13, EAN8, UPC_A, UPC_E, GS1 Databar | [ReadOneDRetail.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadOneDRetail.json) | +| Code128, Code39, ITF, Codabar, MSI Code | [ReadOneDIndustrial.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadOneDIndustrial.json) | +| QR Code | [ReadQR.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadQR.json) | +| Data Matrix | [ReadDataMatrix.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadDataMatrix.json) | +| PDF417 | [ReadPDF417.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadPDF417.json) | +| Aztec | [ReadAztec.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadAztec.json) | +| QR Code, Data Matrix, PDF417 | [ReadCommon2D.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/src/main/assets/Templates//ReadCommon2D.json) | +| DotCode | [ReadDotCode.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadDotCode.json) | From 07b8d918b9b016376b3b9b88721e46897568069d Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 31 Jul 2026 10:50:37 +0800 Subject: [PATCH 03/21] Fix JSON structure in barcode formats documentation and update template reference wording for consistency --- .../user-guide/capabilities/barcode-formats.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md index 1666af21..d2773a0b 100644 --- a/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md +++ b/programming/objectivec-swift/user-guide/capabilities/barcode-formats.md @@ -61,7 +61,7 @@ Barcode formats are specified in `BarcodeFormatIds` under `BarcodeReaderTaskSett ```json { - "CaptureVisionTemplates/": [ + "CaptureVisionTemplates": [ { "ImageROIProcessingNameArray": [ "ROI_2D" ], "Name": "ReadCommon2D", @@ -97,7 +97,7 @@ Barcode formats are specified in `BarcodeFormatIds` under `BarcodeReaderTaskSett } ``` -For common formats, you can download and use the preset Templates/ below: +For common formats, you can download and use the preset templates below: | Barcode Format(s) | Template | | ----------------- | -------- | From 275feb4d42d7f5f00f91897616573c260af87bf5 Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 31 Jul 2026 10:55:22 +0800 Subject: [PATCH 04/21] Remove redundant sections for "Other Use Cases for Barcode Scanning" in Android and iOS sample index files --- _includes/android_sample_index.html | 7 ------- _includes/ios_sample_index.html | 7 ------- 2 files changed, 14 deletions(-) diff --git a/_includes/android_sample_index.html b/_includes/android_sample_index.html index 69854534..75f14179 100644 --- a/_includes/android_sample_index.html +++ b/_includes/android_sample_index.html @@ -843,13 +843,6 @@

Develop with Foundational APIs

Source - - - -
-

Other Use Cases for Barcode Scanning

-
-
ScanVIN - diff --git a/_includes/ios_sample_index.html b/_includes/ios_sample_index.html index bff92569..f279463f 100644 --- a/_includes/ios_sample_index.html +++ b/_includes/ios_sample_index.html @@ -871,13 +871,6 @@

Develop with Foundational APIs

Source
-
- - -
-

Other Use Cases for Barcode Scanning

-
-
ScanVIN - From 9dbb64d747bdfd6b7c48a8a20527dc06d5febbcc Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 31 Jul 2026 14:41:39 +0800 Subject: [PATCH 05/21] Add release notes for version 9.6.60 in Android and iOS SDK documentation --- programming/android/release-notes/index.md | 2 ++ programming/objectivec-swift/release-notes/index.md | 1 + 2 files changed, 3 insertions(+) diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md index fd49a5c9..0109f379 100644 --- a/programming/android/release-notes/index.md +++ b/programming/android/release-notes/index.md @@ -30,6 +30,8 @@ breadcrumbText: Release Notes - [10.2.10 (04/16/2024)]({{ site.android_release_notes_v10 }}android-10.html#10210-04162024) - [10.0.21 (12/12/2023)]({{ site.android_release_notes_v10 }}android-10.html#10021-12122023) - [10.0.20 (10/26/2023)]({{ site.android_release_notes_v10 }}android-10.html#10020-10262023) +- [9.6.60 (12/23/2025)]({{ site.android_release_notes_v9 }}android-9.html#9660-12232025) +- [9.6.50 (09/23/2025)]({{ site.android_release_notes_v9 }}android-9.html#9650-09232025) - [9.6.40 (03/21/2024)]({{ site.android_release_notes_v9 }}android-9.html#9640-03212024) - [9.6.20 (03/16/2023)]({{ site.android_release_notes_v9 }}android-9.html#9620-03162023) - [9.6.11 (01/16/2023)]({{ site.android_release_notes_v9 }}android-9.html#9611-01162023) diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md index 3ba89a5a..6e037f62 100644 --- a/programming/objectivec-swift/release-notes/index.md +++ b/programming/objectivec-swift/release-notes/index.md @@ -33,6 +33,7 @@ breadcrumbText: Release Notes - [10.2.10 (04/16/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#10210-04162024) - [10.0.21 (12/12/2023)]({{ site.oc_release_notes_v10 }}ios-10.html#10021-12122023) - [10.0.20 (10/26/2023)]({{ site.oc_release_notes_v10 }}ios-10.html#10020-10262023) +- [9.6.60 (12/23/2025)]({{ site.oc_release_notes_v9 }}ios-9.html#9660-12232025) - [9.6.40 (03/21/2024)]({{ site.oc_release_notes_v9 }}ios-9.html#9640-03212024) - [9.6.21 (03/27/2023)]({{ site.oc_release_notes_v9 }}ios-9.html#9621-03272023) - [9.6.20 (03/16/2023)]({{ site.oc_release_notes_v9 }}ios-9.html#9620-03162023) From b43adc04487163e8603d813a372c45ea9b7f375e Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 13 Aug 2026 10:06:47 +0800 Subject: [PATCH 06/21] Add release notes for version 11.6.2000 and update programming references in React Native SDK documentation --- .../programming-react-native.html | 9 ++++ .../react-native/release-notes/index.md | 1 + .../release-notes/react-native-11.md | 51 +++++++++++++++++++ 3 files changed, 61 insertions(+) diff --git a/_includes/sidelist-programming/programming-react-native.html b/_includes/sidelist-programming/programming-react-native.html index 28d39181..f67adcd9 100644 --- a/_includes/sidelist-programming/programming-react-native.html +++ b/_includes/sidelist-programming/programming-react-native.html @@ -94,6 +94,7 @@
  • EnumGrayscaleEnhancementMode
  • EnumGrayscaleTransformationMode
  • EnumImagePixelFormat
  • +
  • EnumMeasureUnit
  • @@ -188,12 +189,19 @@
  • ImageDrawer
  • ImageIO
  • ImageProcessor
  • +
  • LayoutAnalysisParameter
  • +
  • LayoutAnalysisResult
  • +
  • LayoutAnalyzer
  • +
  • LayoutAxis
  • +
  • LayoutElement
  • MultiFrameResultCrossFilter
  • Enumerations
  • @@ -479,6 +487,7 @@
    • AllModuleDeviation
    • AustralianPostEncodingTable
    • +
    • AutoDetectColorInversion
    • BarcodeAngleRangeArray
    • BarcodeBytesLengthRangeArray
    • BarcodeFormatIds
    • diff --git a/programming/react-native/release-notes/index.md b/programming/react-native/release-notes/index.md index 8208958d..790c1616 100644 --- a/programming/react-native/release-notes/index.md +++ b/programming/react-native/release-notes/index.md @@ -9,6 +9,7 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes +- [11.6.2000 (08/14/2026)](react-native-11.md#1162000-08142026) - [11.4.3010 (07/09/2026)](react-native-11.md#1143000-07082026) - [11.4.1300 (05/20/2026)](react-native-11.md#1141300-05202026) - [11.4.1200 (04/22/2026)](react-native-11.md#1141200-04222026) diff --git a/programming/react-native/release-notes/react-native-11.md b/programming/react-native/release-notes/react-native-11.md index 8c9041d2..a343ac44 100644 --- a/programming/react-native/release-notes/react-native-11.md +++ b/programming/react-native/release-notes/react-native-11.md @@ -9,6 +9,57 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes +## 11.6.2000 (08/14/2026) + +### Highlights + +#### Multi-Threaded Barcode Decoding + +- **Get results sooner with parallel processing** - Barcode decoding now uses a breadth-first strategy that decomposes a single DBR Task into one Localization Work and one or more Decoding Works. This improves thread utilization and reduces the chance that a slow `DeblurMode` attempt blocks other faster decoding attempts, helping valid results come back sooner. + +#### DataMatrix Color Inversion Detection + +- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. + +#### Barcode Layout Analysis + +- **Decode dense grid barcodes more completely** - Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) to organize barcode locations into logical line or matrix layouts and infer unrecognized barcode regions when gaps exist, enabling workflows such as fast first-pass decoding, missing-region inference, and targeted second-pass decoding on dense N*M barcode layouts. + +#### Cross-Version License Support + +- **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation. + +### New + +- Added support for Micro PDF417-specific decoding mode. + +- Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. + +- Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) class with [`analyze()`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html#analyze) static method for quadrilateral layout analysis. + +- Added [`LayoutPattern`]({{ site.dcv_react_native_api }}utility/enum-layout-pattern.html) enumeration with values `LP_UNKNOWN`, `LP_LINES`, and `LP_MATRIX`. + +- Added [`LayoutElementSource`]({{ site.dcv_react_native_api }}utility/enum-layout-element-source.html) enumeration with values `LES_NONE`, `LES_INPUT`, and `LES_INFERRED`. + +- Added [`MeasureUnit`]({{ site.dcv_react_native_api }}core/enum-measure-unit.html) enumeration with values `MU_PIXEL` and `MU_PERCENTAGE`. + +- Added [`LayoutAxis`]({{ site.dcv_react_native_api }}utility/layout-axis.html), [`LayoutAnalysisParameter`]({{ site.dcv_react_native_api }}utility/layout-analysis-parameter.html), [`LayoutElement`]({{ site.dcv_react_native_api }}utility/layout-element.html), and [`LayoutAnalysisResult`]({{ site.dcv_react_native_api }}utility/layout-analysis-result.html) for layout analysis configuration and results. + +- Added a new `GridBarcodeScanner` sample (with `sample_grid.png`) to demonstrate how to use [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) for barcode grid layout detection and logical row/column mapping. + +### Changed + +- [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. + +- [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. + +- Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. + +### Fixed + +- Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero. +- Fixed several known crash issues. + ## 11.4.3010 (07/09/2026) ### Security Updates From d7d7979df5cc6599cefcd6bd808dbda67962d4db Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 14 Aug 2026 10:18:42 +0800 Subject: [PATCH 07/21] Update Android and iOS SDK documentation to reflect version 11.6.2000 changes --- programming/android/foundational-guide.md | 4 ++-- programming/android/release-notes/android-11.md | 10 ++++++++++ programming/android/release-notes/index.md | 1 + programming/android/user-guide.md | 4 ++-- programming/objectivec-swift/foundational-guide.md | 4 ++-- programming/objectivec-swift/release-notes/index.md | 1 + programming/objectivec-swift/release-notes/ios-11.md | 10 ++++++++++ programming/objectivec-swift/user-guide.md | 4 ++-- 8 files changed, 30 insertions(+), 8 deletions(-) diff --git a/programming/android/foundational-guide.md b/programming/android/foundational-guide.md index 46562b8a..481b18a6 100644 --- a/programming/android/foundational-guide.md +++ b/programming/android/foundational-guide.md @@ -70,13 +70,13 @@ There are two ways to add the libraries into your project - **Manually** and **M >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.6.1000' + implementation 'com.dynamsoft:barcodereaderbundle:11.6.2000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.6.1000") + implementation("com.dynamsoft:barcodereaderbundle:11.6.2000") } ``` diff --git a/programming/android/release-notes/android-11.md b/programming/android/release-notes/android-11.md index 2c862b66..b46fd09b 100644 --- a/programming/android/release-notes/android-11.md +++ b/programming/android/release-notes/android-11.md @@ -10,6 +10,16 @@ noTitleIndex: true # Release Notes for Android SDK - 11.x +## 11.6.2000 (08/14/2026) + +### New + +- Added support for Micro PDF417-specific decoding mode. + +### Fixed + +- Fixed several known crash issues. + ## 11.6.1000 (07/30/2026) ### Highlights diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md index 0109f379..97565519 100644 --- a/programming/android/release-notes/index.md +++ b/programming/android/release-notes/index.md @@ -9,6 +9,7 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader Android SDK - Release Notes +- [11.6.2000 (08/14/2026)]({{ site.android_release_notes }}android-11.html#1162000-08142026) - [11.6.1000 (07/30/2026)]({{ site.android_release_notes }}android-11.html#1161000-07302026) - [11.4.3000 (07/07/2026)]({{ site.android_release_notes }}android-11.html#1143000-07072026) - [11.4.1300 (05/20/2026)]({{ site.android_release_notes }}android-11.html#1141300-05202026) diff --git a/programming/android/user-guide.md b/programming/android/user-guide.md index af94542f..1efae90a 100644 --- a/programming/android/user-guide.md +++ b/programming/android/user-guide.md @@ -76,13 +76,13 @@ There are two ways in which you can include the `dynamsoftbarcodereaderbundle` l >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.6.1000' + implementation 'com.dynamsoft:barcodereaderbundle:11.6.2000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.6.1000") + implementation("com.dynamsoft:barcodereaderbundle:11.6.2000") } ``` diff --git a/programming/objectivec-swift/foundational-guide.md b/programming/objectivec-swift/foundational-guide.md index 21161c51..66de7a9a 100644 --- a/programming/objectivec-swift/foundational-guide.md +++ b/programming/objectivec-swift/foundational-guide.md @@ -51,7 +51,7 @@ There are three ways to add the SDK into your project - **Manually**, via **Coco 2. In the top-right section of the window, search "https://github.com/Dynamsoft/barcode-reader-spm" -3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.6.1000**, then click **Add Package**. +3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.6.2000**, then click **Add Package**. 4. Check all the **xcframeworks** and add. @@ -63,7 +63,7 @@ There are three ways to add the SDK into your project - **Manually**, via **Coco target 'HelloWorld' do use_frameworks! - pod 'DynamsoftBarcodeReaderBundle','11.6.1000' + pod 'DynamsoftBarcodeReaderBundle','11.6.2000' end ``` diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md index 6e037f62..39aee8e6 100644 --- a/programming/objectivec-swift/release-notes/index.md +++ b/programming/objectivec-swift/release-notes/index.md @@ -9,6 +9,7 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader iOS SDK - Release Notes +- [11.6.2000 (08/14/2026)]({{ site.oc_release_notes }}ios-11.html#1162000-08142026) - [11.6.1000 (07/30/2026)]({{ site.oc_release_notes }}ios-11.html#1161000-07302026) - [11.4.3000 (07/07/2026)]({{ site.oc_release_notes }}ios-11.html#1143000-07072026) - [11.4.1200 (04/02/2026)]({{ site.oc_release_notes }}ios-11.html#1141200-04022026) diff --git a/programming/objectivec-swift/release-notes/ios-11.md b/programming/objectivec-swift/release-notes/ios-11.md index 8aaa08c0..1019d222 100644 --- a/programming/objectivec-swift/release-notes/ios-11.md +++ b/programming/objectivec-swift/release-notes/ios-11.md @@ -10,6 +10,16 @@ noTitleIndex: true # Release Notes for iOS SDK - 11.x +## 11.6.2000 (08/14/2026) + +### New + +- Added support for Micro PDF417-specific decoding mode. + +### Fixed + +- Fixed several known crash issues. + ## 11.6.1000 (07/30/2026) ### Highlights diff --git a/programming/objectivec-swift/user-guide.md b/programming/objectivec-swift/user-guide.md index af7ddcd7..c32eaf52 100644 --- a/programming/objectivec-swift/user-guide.md +++ b/programming/objectivec-swift/user-guide.md @@ -54,7 +54,7 @@ There are three ways in which you can add the `DynamsoftBarcodeReaderBundle` SDK 2. In the top-right section of the window, search "https://github.com/Dynamsoft/barcode-reader-spm" -3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.6.1000**, then click **Add Package**. +3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.6.2000**, then click **Add Package**. 4. Check all the **xcframeworks** and add. @@ -66,7 +66,7 @@ There are three ways in which you can add the `DynamsoftBarcodeReaderBundle` SDK target 'ScanSingleBarcode' do use_frameworks! - pod 'DynamsoftBarcodeReaderBundle','11.6.1000' + pod 'DynamsoftBarcodeReaderBundle','11.6.2000' end ``` From 153c889d56101c50c33234a61abcbf61b22d3403 Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 14 Aug 2026 10:33:21 +0800 Subject: [PATCH 08/21] Update React Native samples index with new barcode scanning examples and descriptions --- programming/react-native/samples/index.md | 48 ++++++++++++++++++++--- 1 file changed, 42 insertions(+), 6 deletions(-) diff --git a/programming/react-native/samples/index.md b/programming/react-native/samples/index.md index e1ec012e..797e3b2d 100644 --- a/programming/react-native/samples/index.md +++ b/programming/react-native/samples/index.md @@ -13,24 +13,60 @@ All of the samples that have been created for the Dynamsoft Barcode Reader React ## Barcode Reader Samples +### ScanBarcodes_ReadyToUseComponent + +This sample demonstrates the quickest way to scan barcodes from live camera preview using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html), with minimal configuration required. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} + ### ScanBarcodes_FoundationalAPI -This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [Foundational API]({{ site.dbr_react_native_api }}). +This sample demonstrates how to scan barcodes from live camera preview using the [Foundational API]({{ site.dbr_react_native_api }}), providing full control over the camera, processing pipeline, and barcode results. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_FoundationalAPI){:target="_blank"} -### ScanBarcodes_ReadyToUseComponent +### ScanBarcodes_Expo -This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html). +This sample demonstrates barcode scanning using the [Foundational API]({{ site.dbr_react_native_api }}) in an Expo (Bare) project, showing how to integrate Dynamsoft Barcode Reader into an Expo-based workflow. -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_Expo){:target="_blank"} -### ScanDriverLicense +### ScanDriversLicense -This sample demonstrates the simplest implementation of the Barcode Reader for recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data. +This sample demonstrates how to recognize and extract information from drivers' licenses in real-time video streaming. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanDriversLicense){:target="_blank"} +### ScanVIN + +This sample demonstrates how to recognize and extract information from VIN barcodes in real-time video streaming. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanVIN){:target="_blank"} + +### ScenarioOptimizedScanning + +This sample demonstrates how to optimize scanning performance for different barcode formats and scenarios by loading scenario-specific templates (1D Retail, 1D Industrial, QR Code, Data Matrix, Aztec, Dot Code, DPM, PDF417, and High-Density codes). + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScenarioOptimizedScanning){:target="_blank"} + +### BarcodeReaderSettings + +This sample demonstrates how to configure the barcode reading settings via the [Foundational API]({{ site.dbr_react_native_api }}), including barcode formats, expected barcode count, minimum result confidence, and timeout. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/BarcodeReaderSettings){:target="_blank"} + +### LocateAnItemWithBarcode + +This sample demonstrates how to locate an item by scanning or entering its barcode ID, using visual guidance to help find the matching item in real-time video streaming. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/LocateAnItemWithBarcode){:target="_blank"} + +### ReadGS1AI + +This sample demonstrates how to recognize and parse GS1 Application Identifiers (AIs) from barcodes, extracting and formatting fields such as dates and other AI data. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ReadGS1AI){:target="_blank"} + ## Demos If you would like to see the Barcode Reader in action before starting the development journey, we have a demo app available on both the App Store as well as the Google Play Store. From afc2ebdb841290a77763892e51853af130634f19 Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 14 Aug 2026 17:01:37 +0800 Subject: [PATCH 09/21] RN Release Delayed --- .../programming-react-native.html | 7 --- .../react-native/release-notes/index.md | 1 - .../release-notes/react-native-11.md | 51 ------------------- programming/react-native/samples/index.md | 48 +++-------------- 4 files changed, 6 insertions(+), 101 deletions(-) diff --git a/_includes/sidelist-programming/programming-react-native.html b/_includes/sidelist-programming/programming-react-native.html index f67adcd9..738a64e6 100644 --- a/_includes/sidelist-programming/programming-react-native.html +++ b/_includes/sidelist-programming/programming-react-native.html @@ -189,19 +189,12 @@
    • ImageDrawer
    • ImageIO
    • ImageProcessor
    • -
    • LayoutAnalysisParameter
    • -
    • LayoutAnalysisResult
    • -
    • LayoutAnalyzer
    • -
    • LayoutAxis
    • -
    • LayoutElement
    • MultiFrameResultCrossFilter
  • Enumerations
  • diff --git a/programming/react-native/release-notes/index.md b/programming/react-native/release-notes/index.md index 790c1616..8208958d 100644 --- a/programming/react-native/release-notes/index.md +++ b/programming/react-native/release-notes/index.md @@ -9,7 +9,6 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes -- [11.6.2000 (08/14/2026)](react-native-11.md#1162000-08142026) - [11.4.3010 (07/09/2026)](react-native-11.md#1143000-07082026) - [11.4.1300 (05/20/2026)](react-native-11.md#1141300-05202026) - [11.4.1200 (04/22/2026)](react-native-11.md#1141200-04222026) diff --git a/programming/react-native/release-notes/react-native-11.md b/programming/react-native/release-notes/react-native-11.md index a343ac44..8c9041d2 100644 --- a/programming/react-native/release-notes/react-native-11.md +++ b/programming/react-native/release-notes/react-native-11.md @@ -9,57 +9,6 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes -## 11.6.2000 (08/14/2026) - -### Highlights - -#### Multi-Threaded Barcode Decoding - -- **Get results sooner with parallel processing** - Barcode decoding now uses a breadth-first strategy that decomposes a single DBR Task into one Localization Work and one or more Decoding Works. This improves thread utilization and reduces the chance that a slow `DeblurMode` attempt blocks other faster decoding attempts, helping valid results come back sooner. - -#### DataMatrix Color Inversion Detection - -- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. - -#### Barcode Layout Analysis - -- **Decode dense grid barcodes more completely** - Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) to organize barcode locations into logical line or matrix layouts and infer unrecognized barcode regions when gaps exist, enabling workflows such as fast first-pass decoding, missing-region inference, and targeted second-pass decoding on dense N*M barcode layouts. - -#### Cross-Version License Support - -- **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation. - -### New - -- Added support for Micro PDF417-specific decoding mode. - -- Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. - -- Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) class with [`analyze()`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html#analyze) static method for quadrilateral layout analysis. - -- Added [`LayoutPattern`]({{ site.dcv_react_native_api }}utility/enum-layout-pattern.html) enumeration with values `LP_UNKNOWN`, `LP_LINES`, and `LP_MATRIX`. - -- Added [`LayoutElementSource`]({{ site.dcv_react_native_api }}utility/enum-layout-element-source.html) enumeration with values `LES_NONE`, `LES_INPUT`, and `LES_INFERRED`. - -- Added [`MeasureUnit`]({{ site.dcv_react_native_api }}core/enum-measure-unit.html) enumeration with values `MU_PIXEL` and `MU_PERCENTAGE`. - -- Added [`LayoutAxis`]({{ site.dcv_react_native_api }}utility/layout-axis.html), [`LayoutAnalysisParameter`]({{ site.dcv_react_native_api }}utility/layout-analysis-parameter.html), [`LayoutElement`]({{ site.dcv_react_native_api }}utility/layout-element.html), and [`LayoutAnalysisResult`]({{ site.dcv_react_native_api }}utility/layout-analysis-result.html) for layout analysis configuration and results. - -- Added a new `GridBarcodeScanner` sample (with `sample_grid.png`) to demonstrate how to use [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) for barcode grid layout detection and logical row/column mapping. - -### Changed - -- [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. - -- [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. - -- Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. - -### Fixed - -- Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero. -- Fixed several known crash issues. - ## 11.4.3010 (07/09/2026) ### Security Updates diff --git a/programming/react-native/samples/index.md b/programming/react-native/samples/index.md index 797e3b2d..e1ec012e 100644 --- a/programming/react-native/samples/index.md +++ b/programming/react-native/samples/index.md @@ -13,60 +13,24 @@ All of the samples that have been created for the Dynamsoft Barcode Reader React ## Barcode Reader Samples -### ScanBarcodes_ReadyToUseComponent - -This sample demonstrates the quickest way to scan barcodes from live camera preview using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html), with minimal configuration required. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} - ### ScanBarcodes_FoundationalAPI -This sample demonstrates how to scan barcodes from live camera preview using the [Foundational API]({{ site.dbr_react_native_api }}), providing full control over the camera, processing pipeline, and barcode results. +This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [Foundational API]({{ site.dbr_react_native_api }}). [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_FoundationalAPI){:target="_blank"} -### ScanBarcodes_Expo +### ScanBarcodes_ReadyToUseComponent -This sample demonstrates barcode scanning using the [Foundational API]({{ site.dbr_react_native_api }}) in an Expo (Bare) project, showing how to integrate Dynamsoft Barcode Reader into an Expo-based workflow. +This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html). -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_Expo){:target="_blank"} +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} -### ScanDriversLicense +### ScanDriverLicense -This sample demonstrates how to recognize and extract information from drivers' licenses in real-time video streaming. +This sample demonstrates the simplest implementation of the Barcode Reader for recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanDriversLicense){:target="_blank"} -### ScanVIN - -This sample demonstrates how to recognize and extract information from VIN barcodes in real-time video streaming. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanVIN){:target="_blank"} - -### ScenarioOptimizedScanning - -This sample demonstrates how to optimize scanning performance for different barcode formats and scenarios by loading scenario-specific templates (1D Retail, 1D Industrial, QR Code, Data Matrix, Aztec, Dot Code, DPM, PDF417, and High-Density codes). - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScenarioOptimizedScanning){:target="_blank"} - -### BarcodeReaderSettings - -This sample demonstrates how to configure the barcode reading settings via the [Foundational API]({{ site.dbr_react_native_api }}), including barcode formats, expected barcode count, minimum result confidence, and timeout. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/BarcodeReaderSettings){:target="_blank"} - -### LocateAnItemWithBarcode - -This sample demonstrates how to locate an item by scanning or entering its barcode ID, using visual guidance to help find the matching item in real-time video streaming. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/LocateAnItemWithBarcode){:target="_blank"} - -### ReadGS1AI - -This sample demonstrates how to recognize and parse GS1 Application Identifiers (AIs) from barcodes, extracting and formatting fields such as dates and other AI data. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ReadGS1AI){:target="_blank"} - ## Demos If you would like to see the Barcode Reader in action before starting the development journey, we have a demo app available on both the App Store as well as the Google Play Store. From 73f139c445e26c0cf436514780492a82f34e4e70 Mon Sep 17 00:00:00 2001 From: Justin Date: Fri, 14 Aug 2026 17:07:47 +0800 Subject: [PATCH 10/21] Remove obsolete enum links from React Native programming documentation --- _includes/sidelist-programming/programming-react-native.html | 2 -- 1 file changed, 2 deletions(-) diff --git a/_includes/sidelist-programming/programming-react-native.html b/_includes/sidelist-programming/programming-react-native.html index 738a64e6..28d39181 100644 --- a/_includes/sidelist-programming/programming-react-native.html +++ b/_includes/sidelist-programming/programming-react-native.html @@ -94,7 +94,6 @@
  • EnumGrayscaleEnhancementMode
  • EnumGrayscaleTransformationMode
  • EnumImagePixelFormat
  • -
  • EnumMeasureUnit
  • @@ -480,7 +479,6 @@ @@ -188,12 +189,19 @@
  • ImageDrawer
  • ImageIO
  • ImageProcessor
  • +
  • LayoutAnalysisParameter
  • +
  • LayoutAnalysisResult
  • +
  • LayoutAnalyzer
  • +
  • LayoutAxis
  • +
  • LayoutElement
  • MultiFrameResultCrossFilter
  • Enumerations
  • @@ -479,6 +487,7 @@
    • AllModuleDeviation
    • AustralianPostEncodingTable
    • +
    • AutoDetectColorInversion
    • BarcodeAngleRangeArray
    • BarcodeBytesLengthRangeArray
    • BarcodeFormatIds
    • diff --git a/programming/react-native/release-notes/index.md b/programming/react-native/release-notes/index.md index 8208958d..7502bbc7 100644 --- a/programming/react-native/release-notes/index.md +++ b/programming/react-native/release-notes/index.md @@ -9,6 +9,7 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes +- [11.6.2000 (08/25/2026)](react-native-11.md#1162000-08252026) - [11.4.3010 (07/09/2026)](react-native-11.md#1143000-07082026) - [11.4.1300 (05/20/2026)](react-native-11.md#1141300-05202026) - [11.4.1200 (04/22/2026)](react-native-11.md#1141200-04222026) diff --git a/programming/react-native/release-notes/react-native-11.md b/programming/react-native/release-notes/react-native-11.md index 8c9041d2..aa22d405 100644 --- a/programming/react-native/release-notes/react-native-11.md +++ b/programming/react-native/release-notes/react-native-11.md @@ -9,6 +9,57 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader React Native SDK - Release Notes +## 11.6.2000 (08/25/2026) + +### Highlights + +#### Multi-Threaded Barcode Decoding + +- **Get results sooner with parallel processing** - Barcode decoding now uses a breadth-first strategy that decomposes a single DBR Task into one Localization Work and one or more Decoding Works. This improves thread utilization and reduces the chance that a slow `DeblurMode` attempt blocks other faster decoding attempts, helping valid results come back sooner. + +#### DataMatrix Color Inversion Detection + +- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. + +#### Barcode Layout Analysis + +- **Decode dense grid barcodes more completely** - Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) to organize barcode locations into logical line or matrix layouts and infer unrecognized barcode regions when gaps exist, enabling workflows such as fast first-pass decoding, missing-region inference, and targeted second-pass decoding on dense N*M barcode layouts. + +#### Cross-Version License Support + +- **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation. + +### New + +- Added support for Micro PDF417-specific decoding mode. + +- Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. + +- Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) class with [`analyze()`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html#analyze) static method for quadrilateral layout analysis. + +- Added [`LayoutPattern`]({{ site.dcv_react_native_api }}utility/enum-layout-pattern.html) enumeration with values `LP_UNKNOWN`, `LP_LINES`, and `LP_MATRIX`. + +- Added [`LayoutElementSource`]({{ site.dcv_react_native_api }}utility/enum-layout-element-source.html) enumeration with values `LES_NONE`, `LES_INPUT`, and `LES_INFERRED`. + +- Added [`MeasureUnit`]({{ site.dcv_react_native_api }}core/enum-measure-unit.html) enumeration with values `MU_PIXEL` and `MU_PERCENTAGE`. + +- Added [`LayoutAxis`]({{ site.dcv_react_native_api }}utility/layout-axis.html), [`LayoutAnalysisParameter`]({{ site.dcv_react_native_api }}utility/layout-analysis-parameter.html), [`LayoutElement`]({{ site.dcv_react_native_api }}utility/layout-element.html), and [`LayoutAnalysisResult`]({{ site.dcv_react_native_api }}utility/layout-analysis-result.html) for layout analysis configuration and results. + +- Added a new `GridBarcodeScanner` sample (with `sample_grid.png`) to demonstrate how to use [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) for barcode grid layout detection and logical row/column mapping. + +### Changed + +- [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. + +- [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. + +- Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. + +### Fixed + +- Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero. +- Fixed several known crash issues. + ## 11.4.3010 (07/09/2026) ### Security Updates diff --git a/programming/react-native/samples/index.md b/programming/react-native/samples/index.md index e1ec012e..797e3b2d 100644 --- a/programming/react-native/samples/index.md +++ b/programming/react-native/samples/index.md @@ -13,24 +13,60 @@ All of the samples that have been created for the Dynamsoft Barcode Reader React ## Barcode Reader Samples +### ScanBarcodes_ReadyToUseComponent + +This sample demonstrates the quickest way to scan barcodes from live camera preview using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html), with minimal configuration required. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} + ### ScanBarcodes_FoundationalAPI -This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [Foundational API]({{ site.dbr_react_native_api }}). +This sample demonstrates how to scan barcodes from live camera preview using the [Foundational API]({{ site.dbr_react_native_api }}), providing full control over the camera, processing pipeline, and barcode results. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_FoundationalAPI){:target="_blank"} -### ScanBarcodes_ReadyToUseComponent +### ScanBarcodes_Expo -This is a sample that demonstrates the simplest implementation of the Barcode Reader to allow for barcode decoding via the camera using the [BarcodeScanner (Ready-To-Use) API]({{ site.dbr_react_native_api }}barcode-scanner/index.html). +This sample demonstrates barcode scanning using the [Foundational API]({{ site.dbr_react_native_api }}) in an Expo (Bare) project, showing how to integrate Dynamsoft Barcode Reader into an Expo-based workflow. -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanBarcodes_Expo){:target="_blank"} -### ScanDriverLicense +### ScanDriversLicense -This sample demonstrates the simplest implementation of the Barcode Reader for recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data. +This sample demonstrates how to recognize and extract information from drivers' licenses in real-time video streaming. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanDriversLicense){:target="_blank"} +### ScanVIN + +This sample demonstrates how to recognize and extract information from VIN barcodes in real-time video streaming. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScanVIN){:target="_blank"} + +### ScenarioOptimizedScanning + +This sample demonstrates how to optimize scanning performance for different barcode formats and scenarios by loading scenario-specific templates (1D Retail, 1D Industrial, QR Code, Data Matrix, Aztec, Dot Code, DPM, PDF417, and High-Density codes). + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ScenarioOptimizedScanning){:target="_blank"} + +### BarcodeReaderSettings + +This sample demonstrates how to configure the barcode reading settings via the [Foundational API]({{ site.dbr_react_native_api }}), including barcode formats, expected barcode count, minimum result confidence, and timeout. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/BarcodeReaderSettings){:target="_blank"} + +### LocateAnItemWithBarcode + +This sample demonstrates how to locate an item by scanning or entering its barcode ID, using visual guidance to help find the matching item in real-time video streaming. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/LocateAnItemWithBarcode){:target="_blank"} + +### ReadGS1AI + +This sample demonstrates how to recognize and parse GS1 Application Identifiers (AIs) from barcodes, extracting and formatting fields such as dates and other AI data. + +[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-react-native-samples/tree/main/ReadGS1AI){:target="_blank"} + ## Demos If you would like to see the Barcode Reader in action before starting the development journey, we have a demo app available on both the App Store as well as the Google Play Store. From b9de24d3716ad2fcb4d9fee35bcf5f44d845de67 Mon Sep 17 00:00:00 2001 From: Justin Date: Tue, 25 Aug 2026 11:20:48 +0800 Subject: [PATCH 12/21] Remove obsolete layout analysis references and enumerations from React Native documentation --- .../programming-react-native.html | 8 -------- .../release-notes/react-native-11.md | 18 ------------------ 2 files changed, 26 deletions(-) diff --git a/_includes/sidelist-programming/programming-react-native.html b/_includes/sidelist-programming/programming-react-native.html index f67adcd9..20705904 100644 --- a/_includes/sidelist-programming/programming-react-native.html +++ b/_includes/sidelist-programming/programming-react-native.html @@ -94,7 +94,6 @@
    • EnumGrayscaleEnhancementMode
    • EnumGrayscaleTransformationMode
    • EnumImagePixelFormat
    • -
    • EnumMeasureUnit
    @@ -189,19 +188,12 @@
  • ImageDrawer
  • ImageIO
  • ImageProcessor
  • -
  • LayoutAnalysisParameter
  • -
  • LayoutAnalysisResult
  • -
  • LayoutAnalyzer
  • -
  • LayoutAxis
  • -
  • LayoutElement
  • MultiFrameResultCrossFilter
  • Enumerations
  • diff --git a/programming/react-native/release-notes/react-native-11.md b/programming/react-native/release-notes/react-native-11.md index aa22d405..525c98ec 100644 --- a/programming/react-native/release-notes/react-native-11.md +++ b/programming/react-native/release-notes/react-native-11.md @@ -21,10 +21,6 @@ breadcrumbText: Release Notes - **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. -#### Barcode Layout Analysis - -- **Decode dense grid barcodes more completely** - Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) to organize barcode locations into logical line or matrix layouts and infer unrecognized barcode regions when gaps exist, enabling workflows such as fast first-pass decoding, missing-region inference, and targeted second-pass decoding on dense N*M barcode layouts. - #### Cross-Version License Support - **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation. @@ -35,26 +31,12 @@ breadcrumbText: Release Notes - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. -- Added [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) class with [`analyze()`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html#analyze) static method for quadrilateral layout analysis. - -- Added [`LayoutPattern`]({{ site.dcv_react_native_api }}utility/enum-layout-pattern.html) enumeration with values `LP_UNKNOWN`, `LP_LINES`, and `LP_MATRIX`. - -- Added [`LayoutElementSource`]({{ site.dcv_react_native_api }}utility/enum-layout-element-source.html) enumeration with values `LES_NONE`, `LES_INPUT`, and `LES_INFERRED`. - -- Added [`MeasureUnit`]({{ site.dcv_react_native_api }}core/enum-measure-unit.html) enumeration with values `MU_PIXEL` and `MU_PERCENTAGE`. - -- Added [`LayoutAxis`]({{ site.dcv_react_native_api }}utility/layout-axis.html), [`LayoutAnalysisParameter`]({{ site.dcv_react_native_api }}utility/layout-analysis-parameter.html), [`LayoutElement`]({{ site.dcv_react_native_api }}utility/layout-element.html), and [`LayoutAnalysisResult`]({{ site.dcv_react_native_api }}utility/layout-analysis-result.html) for layout analysis configuration and results. - -- Added a new `GridBarcodeScanner` sample (with `sample_grid.png`) to demonstrate how to use [`LayoutAnalyzer`]({{ site.dcv_react_native_api }}utility/layout-analyzer.html) for barcode grid layout detection and logical row/column mapping. - ### Changed - [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. - [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. -- Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. - ### Fixed - Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero. From aa97abbe2fb48961b2db435f7600ab3c232c2bef Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 27 Aug 2026 17:03:21 +0800 Subject: [PATCH 13/21] Update barcode format template links for optimized scanning scenarios --- .../user-guide/scanner-barcode-formats.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/programming/objectivec-swift/user-guide/scanner-barcode-formats.md b/programming/objectivec-swift/user-guide/scanner-barcode-formats.md index bfa203f3..463d4fbf 100644 --- a/programming/objectivec-swift/user-guide/scanner-barcode-formats.md +++ b/programming/objectivec-swift/user-guide/scanner-barcode-formats.md @@ -95,11 +95,11 @@ For common formats, you can download and use the preset templates below: | Barcode Format(s) | Template | | ----------------- | -------- | -| EAN13, EAN8, UPC_A, UPC_E, GS1 Databar | [ReadOneDRetail.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDRetail.json) | -| Code128, Code39, ITF, Codabar, MSI Code | [ReadOneDIndustrial.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadOneDIndustrial.json) | -| QR Code | [ReadQR.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadQR.json) | -| Data Matrix | [ReadDataMatrix.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDataMatrix.json) | -| PDF417 | [ReadPDF417.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadPDF417.json) | -| Aztec | [ReadAztec.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadAztec.json) | -| QR Code, Data Matrix, PDF417 | [ReadCommon2D.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadCommon2D.json) | -| DotCode | [ReadDotCode.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOrientedSamples/src/main/assets/Templates/ReadDotCode.json) | +| EAN13, EAN8, UPC_A, UPC_E, GS1 Databar | [ReadOneDRetail.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadOneDRetail.json) | +| Code128, Code39, ITF, Codabar, MSI Code | [ReadOneDIndustrial.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadOneDIndustrial.json) | +| QR Code | [ReadQR.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadQR.json) | +| Data Matrix | [ReadDataMatrix.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadDataMatrix.json) | +| PDF417 | [ReadPDF417.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadPDF417.json) | +| Aztec | [ReadAztec.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadAztec.json) | +| QR Code, Data Matrix, PDF417 | [ReadCommon2D.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadCommon2D.json) | +| DotCode | [ReadDotCode.json](https://github.com/Dynamsoft/barcode-reader-mobile-samples/blob/main/ios/BarcodeScannerAPISamples/ScenarioOptimizedScanning/ScenarioOptimizedScanning/DynamsoftResources.bundle/Templates/ReadDotCode.json) | From 1f710657c7610c7e5cf655157ce1c68861ebf17a Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 9 Sep 2026 17:02:15 +0800 Subject: [PATCH 14/21] Add AutoDetectColorInversion to Flutter release notes and update sidebar --- .../programming-flutter.html | 1 + .../flutter/release-notes/flutter-11.md | 37 +++++++++++++++++++ programming/flutter/release-notes/index.md | 1 + 3 files changed, 39 insertions(+) diff --git a/_includes/sidelist-programming/programming-flutter.html b/_includes/sidelist-programming/programming-flutter.html index 96f451ff..cabd12b0 100644 --- a/_includes/sidelist-programming/programming-flutter.html +++ b/_includes/sidelist-programming/programming-flutter.html @@ -464,6 +464,7 @@
    • AllModuleDeviation
    • AustralianPostEncodingTable
    • +
    • AutoDetectColorInversion
    • BarcodeAngleRangeArray
    • BarcodeBytesLengthRangeArray
    • BarcodeFormatIds
    • diff --git a/programming/flutter/release-notes/flutter-11.md b/programming/flutter/release-notes/flutter-11.md index fe2b6415..6b4cb2e3 100644 --- a/programming/flutter/release-notes/flutter-11.md +++ b/programming/flutter/release-notes/flutter-11.md @@ -9,6 +9,43 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader Flutter SDK - Release Notes +## 11.6.2000 (09/10/2026) + +### Highlights + +#### Multi-Threaded Barcode Decoding + +- **Get results sooner with parallel processing** - Barcode decoding now uses a breadth-first strategy that decomposes a single DBR Task into one Localization Work and one or more Decoding Works. This improves thread utilization and reduces the chance that a slow `DeblurMode` attempt blocks other faster decoding attempts, helping valid results come back sooner. + +#### DataMatrix Color Inversion Detection + +- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. + +#### Cross-Version License Support + +- **Use a single license across SDK versions** - Full License 1.0 keys (starting with "f") that are non-perpetual are no longer version-checked, so the same key can be used across SDK versions without reactivation. + +### New + +- Added support for Micro PDF417-specific decoding mode. + +- Added [`getCentrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#getcentrepoint) method to `Quadrilateral`. + +- Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. + +### Changed + +- [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. + +- [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. + +- Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. + +### Fixed + +- Fixed an issue in GS1-Databar AI `17` (YYMMDD) results where the month field could be missing a leading zero. +- Fixed several known crash issues. + ## 11.4.3000 (07/10/2026) ### Security Updates diff --git a/programming/flutter/release-notes/index.md b/programming/flutter/release-notes/index.md index c35caefb..553ec74c 100644 --- a/programming/flutter/release-notes/index.md +++ b/programming/flutter/release-notes/index.md @@ -9,6 +9,7 @@ breadcrumbText: Release Notes # Dynamsoft Barcode Reader Flutter SDK - Release Notes +- [11.6.2000 (09/10/2026)](flutter-11.md#1162000-09102026) - [11.4.3000 (07/10/2026)](flutter-11.md#1143000-07102026) - [11.4.1300 (05/20/2026)](flutter-11.md#1141300-05202026) - [11.4.1200 (04/16/2026)](flutter-11.md#1141200-04162026) From cd033bde1367c1366aac15a86eb17a9eb0427a2a Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 9 Sep 2026 17:09:33 +0800 Subject: [PATCH 15/21] Remove ScanDriverLicense sample from Flutter demo index --- programming/flutter/samples/index.md | 6 ------ 1 file changed, 6 deletions(-) diff --git a/programming/flutter/samples/index.md b/programming/flutter/samples/index.md index 31760833..5992475d 100644 --- a/programming/flutter/samples/index.md +++ b/programming/flutter/samples/index.md @@ -25,12 +25,6 @@ This is a sample that demonstrates the simplest implementation of the Barcode Re [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-flutter-samples/tree/main/ScanBarcodes_ReadyToUseComponent){:target="_blank"} -### ScanDriverLicense - -This sample demonstrates the simplest implementation of the Barcode Reader for recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data. - -[Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-flutter-samples/tree/main/ScanDriversLicense){:target="_blank"} - ## Demos If you would like to see the Barcode Reader in action before starting the development journey, we have a demo app available on both the App Store as well as the Google Play Store. From 43af518d6868a6b28d6a7daa12de796ba5dd8574 Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 9 Sep 2026 17:11:35 +0800 Subject: [PATCH 16/21] Update Flutter release notes for AutoDetectColorInversion and parameter constraints --- programming/flutter/release-notes/flutter-11.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/programming/flutter/release-notes/flutter-11.md b/programming/flutter/release-notes/flutter-11.md index 6b4cb2e3..46fff9b5 100644 --- a/programming/flutter/release-notes/flutter-11.md +++ b/programming/flutter/release-notes/flutter-11.md @@ -19,7 +19,7 @@ breadcrumbText: Release Notes #### DataMatrix Color Inversion Detection -- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. +- **Handle normal and inverted DataMatrix more efficiently** - Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) to automatically handle both normal and inverted DataMatrix barcodes. Instead of processing the whole image twice, the SDK applies dual-polarity handling only to localized DataMatrix regions, which makes processing faster in dual-polarity scenarios. #### Cross-Version License Support @@ -31,13 +31,13 @@ breadcrumbText: Release Notes - Added [`getCentrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#getcentrepoint) method to `Quadrilateral`. -- Added [`AutoDetectColorInversion`]({{ site.dcv_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. +- Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. ### Changed -- [`MaxParallelTasks`]({{ site.dcv_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. +- [`MaxParallelTasks`]({{ site.dcvb_parameters_reference }}capture-vision-template/max-parallel-tasks.html) now controls the total number of Work-level threads in the CVR thread pool. For DBR tasks, each Localization Work and Decoding Work occupies one thread slot. DLR and DDN tasks continue to occupy one thread per task. -- [`set_device_friendly_name()`]({{ site.dcv_react_native_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_react_native_api }}core/enum-error-code.html) if constraints are not met. +- [`set_device_friendly_name()`]({{ site.dcv_flutter_api }}license/license-manager.html#set_device_friendly_name) now enforces parameter constraints: maximum 64 characters, allowed characters are letters (a-z, A-Z), digits (0-9), hyphen (-), underscore (_), and period (.), and must start and end with a letter or digit. Returns [`EC_PARAMETER_VALUE_INVALID`]({{ site.dcv_flutter_api }}core/enum-error-code.html) if constraints are not met. - Improved the default display behavior of corner adjustment points in `ImageEditorView`. Previously, users had to tap the view before the corner adjustment points became visible. From b07a815bba7577c44c8c5cfda53e819a186a3e9a Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 10 Sep 2026 09:08:11 +0800 Subject: [PATCH 17/21] Update release notes links in Android documentation to use site variables --- programming/android/index.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/programming/android/index.md b/programming/android/index.md index 6ccb36d8..e1455b41 100644 --- a/programming/android/index.md +++ b/programming/android/index.md @@ -107,11 +107,11 @@ To develop and run your application with Dynamsoft Barcode Reader SDK, you need ## Release Notes -- [Version 11.x](release-notes/android-11.html) -- [Version 10.x](release-notes/android-10.html) -- [Version 9.x](release-notes/android-9.html) -- [Version 8.x](release-notes/android-8.html) -- [Version 7.6 and below](release-notes/android-7.html) +- [Version 11.x]({{ site.android_release_notes }}android-11.html) +- [Version 10.x]({{ site.android_release_notes_v10 }}android-10.html) +- [Version 9.x]({{ site.android_release_notes_v9 }}android-9.html) +- [Version 8.x]({{ site.android_release_notes_v9 }}android-8.html) +- [Version 7.6 and below]({{ site.android_release_notes_v9 }}android-7.html) ## Online Store From d75655281c201340e480d98b28c07ee7050c5f41 Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 10 Sep 2026 09:54:41 +0800 Subject: [PATCH 18/21] Add release notes for iOS SDK versions 7.x, 8.x, and 9.x --- programming/android/index.md | 10 +- .../android/release-notes/android-7.md | 327 ++++++++++++++++ .../android/release-notes/android-8.md | 250 +++++++++++++ .../android/release-notes/android-9.md | 302 +++++++++++++++ .../objectivec-swift/release-notes/ios-7.md | 327 ++++++++++++++++ .../objectivec-swift/release-notes/ios-8.md | 243 ++++++++++++ .../objectivec-swift/release-notes/ios-9.md | 349 ++++++++++++++++++ 7 files changed, 1803 insertions(+), 5 deletions(-) create mode 100644 programming/android/release-notes/android-7.md create mode 100644 programming/android/release-notes/android-8.md create mode 100644 programming/android/release-notes/android-9.md create mode 100644 programming/objectivec-swift/release-notes/ios-7.md create mode 100644 programming/objectivec-swift/release-notes/ios-8.md create mode 100644 programming/objectivec-swift/release-notes/ios-9.md diff --git a/programming/android/index.md b/programming/android/index.md index e1455b41..6ccb36d8 100644 --- a/programming/android/index.md +++ b/programming/android/index.md @@ -107,11 +107,11 @@ To develop and run your application with Dynamsoft Barcode Reader SDK, you need ## Release Notes -- [Version 11.x]({{ site.android_release_notes }}android-11.html) -- [Version 10.x]({{ site.android_release_notes_v10 }}android-10.html) -- [Version 9.x]({{ site.android_release_notes_v9 }}android-9.html) -- [Version 8.x]({{ site.android_release_notes_v9 }}android-8.html) -- [Version 7.6 and below]({{ site.android_release_notes_v9 }}android-7.html) +- [Version 11.x](release-notes/android-11.html) +- [Version 10.x](release-notes/android-10.html) +- [Version 9.x](release-notes/android-9.html) +- [Version 8.x](release-notes/android-8.html) +- [Version 7.6 and below](release-notes/android-7.html) ## Online Store diff --git a/programming/android/release-notes/android-7.md b/programming/android/release-notes/android-7.md new file mode 100644 index 00000000..17d4e2b2 --- /dev/null +++ b/programming/android/release-notes/android-7.md @@ -0,0 +1,327 @@ +--- +layout: default-layout +title: Android Release Notes v7.6.1 and below - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for Android SDK v7.6.1 and below. +keywords: release notes, android, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/android/release-notes/android-7.html +--- + +# Release Notes for Android SDK - 7.6.1 and below + +## 7.6.1 (11/04/2020) + +### FIXED + +- Fixed an SSL certificate validation and hostname verification issue which may cause the App to be rejected by Google Play if the `initLicenseFromServer` method was used in the App. + +## 7.6.0 (09/01/2020) + +### NEW + +- Added a new member rpmColourArgumentIndex in the struct IntermediateResult. The rpmColourArgumentIndex is the index of ForeAndBackgroundColour argument used for RegionPredetectionMode. + +### IMPROVED + +- Improved the decoding speed for when ScanDirectly mode is enabled for localization. +- Improved the decoding speed by utilizing SIMD (single instruction, multiple data). +- Improved the deblurring algorithm for linear barcodes. + +### FIXED + +- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations. +- Fixed a crash issue that occurs under some situations. + +## 7.5.0 (07/22/2020) + +### NEW + +- Added support for QR Code Model 1 (an older version of the QR Code specification). It can be enabled by setting FormatSpecification.EnableQRCodeModel1 in the JSON template file. +- Added a new localization mode LM_CENTRE to localize barcodes from the centre, which can improve the localization speed if the barcode is in the centre of the image. It can be enabled by setting the struct PublicRuntimeSettings -> LocalizationModes -> LM_CENTRE. +- Added a new binarization mode BM_THRESHOLD to set the BinarizationThreshold value which is used to convert the grayscale image to binary image. +- Added startPatternRange, middlePatternRange and endPatternRange properties to the struct OneDCodeDetails for UPC_A, UPC_E, EAN_8 and EAN_13 codes. +- Added the following new arguments for RegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST and RegionPredetectionMode.RPM_GENERAL_GRAY_CONTRAST: + - RelativeBarcodeRegions: Sets the barcode regions relative to the pre-detected region. + - ForeAndBackgroundColours: Specifies a set (or multiple sets) of the foreground and background colours used for the region pre-detection algorithm. + - AspectRatioRange: Sets the height range of the bounding rectangle of the pre-detected region. + - HeightRange: Sets the width range of the bounding rectangle of the pre-detected region. + - WidthRange: Sets the aspect ratio range of the bounding rectangle of the pre-detected region. + +### IMPROVED + +- Optimized the binarization process for 1D barcode zones. +- Improved the decoding accuracy for 1D barcodes. +- Improved the decoding speed by 5%-20%. +- Improved the decoding accuracy for Data Matrix code with broken finder pattern. + +### FIXED + +- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations. + +## 7.4.0 (04/16/2020) + +### NEW + +- Added new barcode format support for DotCode. +- Added relative ROI (Region of Interest) detection to optimize the localization results in the high colour contrasted scenarios. +- Added a new type of output IRT_PREDETECTED_QUADRILATERAL, to identify regions with user-define HSV colour space. +- Implemented a feature for recognizing distorted DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> furtherMode -> DeformationResistingModes. +- Added two Enumerations for FrameDecodingParameters: ClarityCalculationMethod and ClarityFilterMode, to improve input image quality. +- Added a new image pre-processing mode IPM_MORPHOLOGY for barcodes with wide data bar or data cell gaps. + +### IMPROVED + +- Enhanced QR Code deformation, resistance, to improve the success rate of decoding the QR code with square symbol at the center. +- Optimized the algorithm for decoding large and dense QR and DataMatrix codes. +- Optimized deblurring algorithm for linear barcodes. +- Improved a character display issue on some platforms where BarcodeText returns an extra "\uFEFF" if the barcode is encoded in UTF-8 with BOM (Byte Order Mark). +- Simplified the process to enable DPM, DotCode and Postal Codes. Now the library will automatically turn on the corresponding localization mode while following settings are applied: + - DPMCRM_GENEARL + - BF2_DOTCODE + - BF2_POSTALCODE + +### FIXED + +- Fixed a bug where the BinarizationModes settings do not work in the DPM mode. +- Fixed a bug where the barcode location returns incorrect when the barcode is close to the border of the scanning region. +- Fixed a bug in the calculation of deblur confidence. +- Fixed a bug where the ColourConversionModes RGB weights setting does not work when CICM_GENERAL is enabled. +- Other small fixes and tweaks. + +## 7.3.0 (01/02/2020) + +### NEW + +- Added a new barcode type Postal codes including USPS Intelligent Mail, Postnet, Planet, Australia Post barcode, RM4SCC. +- Added a new localization mode LM_STATISTICS_POSTAL_CODE in the struct PublicRuntimeSettings -> LocalizationModes to recognize Postal codes. +- Implemented the feature of recognizing distorted QR barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> DeformationResistingModes. +- Implemented the feature of complementing missing parts of QR Code & DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> BarcodeComplementModes. +- Added a new setting AutoFilter to set whether to filter frames automatically in the struct FrameDecodingParameters. +- Added a new setting ScaleUpModes to set the scale-up mode for linear barcodes with small module size. It can be enabled by turning on the struct PublicRuntimeSettings -> ScaleUpModes. + +### IMPROVED + +- Improved the decoding accuracy for DataMatrix that has a narrow quiet zone. +- Improved the decoding accuracy for 1D barcode that has a small module size. + +## 7.2.2 (11/13/2019) + +### FIXED + +- Fixed a bug where BarcodeBytes was null when DPM mode was enabled. + +## 7.2.1 (11/12/2019) + +### NEW + +- Added support for GS1-128 barcode. +- Added a new argument "RecordsetSizeOfLatestImages" for "IntermediateResultSavingMode" to specify how many sets of intermediate results are kept in the library. + +### IMPROVED + +- Improved the decoding capability of PDF417 by identifying the start and stop patterns of PDF417. +- Improved the deblurring performance for wide 1D barcodes, which lowers the possibility of fake results. +- Improved video decoding by optimizing frame filtering. +- Optimized the automatic classification for Code 39 and Code 39 Extended. +- Optimized the implementation of region pre-detection mode "RPM_GENERAL_GRAY_CONTRAST". +- Enhanced the recognition of barcodes with small module sizes. +- Changed ExtendedBarcodeFormatIds to BarcodeFormat_2 to support more barcode formats in the future. +- Improved the setting template inside every sample. For consistency, now every sample uses one of templates of "Best Coverage", "Balance" and "Best Speed". + +### FIXED + +- Fixed a bug in the barcode zone type identification during general statistical localization. +- Fixed minor bugs in result outputs. +- Fixed a bug where OneDCodeDetails doesn't work. +- Fixed a memory leak issue when decoding multiple barcodes in our sample App. + +## 7.2.0 (09/24/2019) + +### NEW + +- Added more barcode formats: + - GS1 Databar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked) + - PatchCode + - Maxicode (mode 2-5) + - Micro PDF417 + - Micro QR + - GS1 COMPOSITE (combination of OneD and PDF417/Micro PDF 417) + - Non-standard Barcode +- Added the capability of reading DPM code. It can be enabled by turning on the struct PublicRuntimeSettings->furtherMode-> DPMCodeReadingModes and adding LM_STATISTICS_MARKS to the PublicRuntimeSettings->localizationModes. +- Licensing is required to obtain the intermediate results, except the original image in the intermediate results. +- Added a parameter, clarity in the struct ExtendedResult, to show the clarity of the decoded-barcode zone. +- For iOS, added a method, GetModeArgument(), to get the argument value of the mode parameters. +- For Android, added a method, getModeArgument(), to get the argument value of the mode parameters. + +### IMPROVED + +- Improved the decoding speed for PDF417. +- Improved the capability of decoding QR and Data Matrix with cylinder-like deformation. + +### FIXED + +- Fixed minor bugs + +## 7.1.0 (08/15/2019) + +### NEW + +- Added automatic blurry frame filtering for the video frame decoding, reducing incorrect barcode recognition. +- Added three arguments for the CICM_GENERAL of ColourConversionModes to set the weights for the color conversion, providing more flexibility to deal with various kinds of backgrounds by using different weights of three colors: red, green and blue. +- Added two new methods, startFrameDecodingEx(), which can be used to start a new thread to decode barcodes, and initFrameDecodingParameters(), and a new struct, FrameDecodingParameters. + + +### IMPROVED + +- The output of intermediate results can be saved either directly to a folder or to memory or both, by introducing a new parameter, intermediateResultSavingMode, to the struct PublicRuntimeSettings. + +### FIXED + +- Fixed a bug that the deblur function might malfunction in some rare cases. +- Fixed a bug that the coordinates of barcodes may be calculated incorrectly under some situations. +- Fixed a bug that the parameter, RequireStartStopChars, might malfunction in some rare cases. +- Fixed a bug that the angle of barcodes might not be calculated correctly sometimes. + +## 7.0.0 (07/11/2019) + +### NEW + +- Refactored most modules to provide a flexible barcode reading framework that allows for parameter customization suited for a variety of barcode scenarios. +- Enabled access to intermediate results (grayscale image, binarized image, text zone, etc) during the decoding process. +- Added new interfaces to support video decoding, and frame decoding to improve interactive sensitivity. +- Provided methods to terminate the decoding process at different phases such as during binarization, localization or barcode type identification. +- Added a new barcode localization method, Scan Directly, to reduce decoding time significantly for high-quality images. + +### IMPROVED + +- Enhanced error messages related to the license initiation failure. +- Improved detailed results for decoded barcodes, including more barcode format specification. +- Improved results output to enable outputting barcode results in the order of confidence level, barcode position or format. + +### FIXED + +- Fixed an issue where the barcode could be calculated incorrectly in some occasions. + +## 6.5.2 (05/28/2019) + +### IMPROVED + +- Optimized barcode reading workflow for QRCode/DataMatrix/Aztec code recognition. A QRCode/DataMatrix/Aztec barcode zone will be submitted to the deblurring process when its decoding results vary with different binarization arguments. +- Reduced the error rate of 1D barcode recognition. Giving more chances for confirmation of a 1D barcode decoding result whose confidence isn't extreme high. +- Reduced the possibility of conflicts with neighbour barcodes. This improved the precision of the zone to be deleted when a barcode is recognized successfully. + +### FIXED + +- Enhanced the robustness of the image processing algorithm. This resolved segmentation faults when a 0-size image is passed to our SDK or there are a few small-size barcode zones which need to do spatial transformation. + +## 6.5.1 (04/16/2019) + +### IMPROVED + +- Improved deblur algorithm for OneD, enhancing the recognition rate for blurry/out-of-focus barcodes. +- Improved the accuracy of border location and symbol segmentation for AZTEC. +- Optimized line scanning algorithm for OneD, decreasing the computation load for character recognition. +- DecodeBuffer now supports 48-bit and 64-bit image data. + +### FIXED + +- Small fixes and tweaks. + +## 6.5.0 (02/26/2019) + +### IMPROVED + +- Improved average reading speed by 5-10%. +- Greatly improved the image-processing performance for blurry PDF417 codes. +- Improved decoding performance for blurry 1D, QRCode and DataMatrix codes. +- Decreased error recognition rate for Aztec codes. + +### FIXED + +- Small fixes and tweaks. + +## 6.4.1 (11/22/2018) + +### IMPROVED + +- Improved the decoding performance for Aztec, increasing the recognition rate. +- Improved the decoding performance for OneD, decreasing the error recognition rate. +- Added further check points for Timeouts, enhancing the timeout control on large scale images for decoding. + +### FIXED + +- Small fixes and tweaks. + +## 6.4.0 (10/15/2018) + +### NEW + +- Added a BatchDecode tool which helps developers evaluate the recognition performance and speed of the Dynamsoft Barcode Reader SDK. +- Added a new sample demonstrates how to use Dynamsoft Barcode Reader in multiple threads. +- Added the runtime licensing mode. + +### IMPROVED + +- Improved barcode reading speed by 10%, especially for small-sized images. +- Reorganized API documentation to help you find content more easily. +- Simplified Developer's Guide to guide you through creating a HelloWorld project more quickly. + +### FIXED + +- Small fixes and tweaks. + +## 6.3.0 (08/16/2018) + +### NEW + +- Added the support for Aztec codes. +- New developer's guide (.pdf) to cover common use cases,and re-worked existing PDF content to improve its usability. +- New API documentation (.chm) to help you find content more easily. +- Added GetRuntimeSettings and UpdateRuntimeSettings to help you adjust runtime barcode reading settings. +- Added ResetRuntimeSettings to reset runtime barcode reading settings to default values. +- Added InitRuntimeSettingsWithString and InitRuntimeSettingsWithFile to initialize barcode reading settings at runtime. +- Added OutputSettingsToString and OutputSettingsToFile to review runtime barcode reading settings. +- Added AppendTplStringToRuntimeSettings and AppendTplFileToRuntimeSettings to append a new template string/file to the current runtime settings. + +### IMPROVED + +- Improved the logic for ExpectedBarcodesCount. Previously the barcodes it returned may be greater than the given value of ExpectedBarcodesCount. Now as long as the expected barcodes found, it will stop continue searching and decoding barcodes. + +### FIXED + +- Small fixes and tweaks. + +## 6.2.0 (06/28/2018) + +### IMPROVED + +- Easy and flexible to create a custom barcode reading template for your specific use case. +- Greatly improved barcode reading speed. +- Decreased misreading rate for 1D barcodes. +- Enhanced performance for reading multiple barcodes from an image. +- Optimized reading accuracy and speed for blurred QRCode and DataMatrix. +- Improved the speed for reading barcodes directly from a computer/phone screen. + +### FIXED + +- Small fixes and tweaks. + +## 4.2.0 (08/09/2016) + +Version 4.2.0 marks the initial release of Dynamsoft Barcode Reader Android SDK. + +### NEW + +- Supports reading a single barcode from Bitmap, images (PNG, JPEG and GIF) and mobile cameras (NV21). Both synchronous and asynchronous barcode decoding methods are provided. +- Supported barcode types include: + - 1D Barcode – Code39, Code93, Code128, Codabar, ITF, EAN13, EAN8, UPCA, UPCE and INDUSTRIAL 2 OF 5. + - 2D Barcode – QR Code, PDF 417, Aztec and DataMatrix. +- Supports Android 4.1 and later. +- Supported architectures: armeabi-v7a/arm64-v8a. + +### IMPROVED + +- Changed 1D barcode decoding module to improve recognition accuracy. +- Improved ResultPoints Property to adjust the sequence of barcode corner points. Now the top-left corner of the barcode is the starting point (x1, y1). The results are returned in the clockwise direction. diff --git a/programming/android/release-notes/android-8.md b/programming/android/release-notes/android-8.md new file mode 100644 index 00000000..b3247bfe --- /dev/null +++ b/programming/android/release-notes/android-8.md @@ -0,0 +1,250 @@ +--- +layout: default-layout +title: Android Release Notes v8.x - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for Android SDK v8.x. +keywords: release notes, android, version 8.x, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/android/release-notes/android-8.html +--- + +# Release Notes for Android SDK - 8.x + +## 8.9.3 (03/02/2022) + +- Fixed a bug that might cause memory leak when using method setTextResultCallback and setIntermediateResultCallback. +- Fixed a bug that might cause a crash on Android emulator when using it together with `DynamsoftCameraEnhancer`. + +## 8.9.1 (12/28/2021) + +- Fixed a bug that might affect the processing speed. + +## 8.9.0 (12/16/2021) + +
      + +### Version Highlights + +
      + +- Preset templates are available for users to configure the `PublicRuntimeSettings` parameters. Users can set the template via the method `updateRuntimeSettings` by specifying an `EnumPresetTemplate` member. + +
      + +### Changelog + +#### New + +- Added method [`setCameraEnhancer`]({{ site.android_api }}primary-video.html#setcameraenhancer) to replace `SetCameraEnhancerPara` and `DCESettingParameters`. This method will simplify the binding of the Camera Enhancer to the Barcode Reader. +- Added methods [`startScanning`]({{ site.android_api }}primary-video.html#startscanning) and [`stopScanning`]({{ site.android_api }}primary-video.html#stopscanning) to control the start and stop of the video streaming barcode decoding thread. These methods are only active when using the Dynamsoft Camera Enhancer along with the Barcode Reader. +- Overwrited method [`updateRuntimeSettings`]({{ site.android_api }}primary-parameter-and-runtime-settings-basic.html#updateruntimesettings). Users can specify a member of [`EnumPresetTemplate`]({{ site.mobile_enum }}preset-template.html?lang=android) in the method to select a preset parameter setting template for barcode decoding. + +#### Improved + +- Simplified the usage of the different Modes in the `PublicRuntimeSettings` such as `LocalizationModes`, `DeblurModes`, and more. Users no longer must configure the entire Modes array to include the skipped entries as well. For example: + - In previous versions, when you set the `DeblurModes`: + + ```java + runtimeSettings.deblurModes = new int[]{EnumDeblurMode.DM_BASED_ON_LOC_BIN,0,0,0,0,0,0,0}; + ``` + + - In v8.9 version: + + ```java + runtimeSettings.deblurModes = new int[]{EnumDeblurMode.DM_BASED_ON_LOC_BIN}; + ``` + +#### Deprecated + +- The following methods/class are deprecated. They are currently available but will be removed in further updates. + - `SetCameraEnhancerPara` + - `StartCameraEnhancer` + - `StopCameraEnhancer` + - `PauseCameraEnhancer` + - `ResumeCameraEnhancer` + - `DCESettingParameters` + +## 8.8.0 (10/19/2021) + +
      + +### Version Highlights + +
      + +- Added a new localization mode `ONED_FAST_SCAN`, which significantly improved the localization speed for 1D barcodes. +- Added the ability to specify barcode width, height, angle to improve the recognition speed if you have advance information about barcodes. +- Optimized the logic of confidence scoring for 2D barcodes. The 2D barcode results with confidence greater than 30 are more accurate. + +
      + +### Changelog + +#### New + +- Added a new `LocalizationModes` item [`LM_ONED_FAST_SCAN`]({{site.parameters_reference}}localization-modes.html#lm_oned_fast_scan), which significantly improved the localization speed for 1D barcodes. +- Added a `TextResult` attribute `isDPM` to return whether the barcode is recognized by the DPM mode. + +#### Improved + +- Improved the confidence calculation algorithm for 2D barcode results. Users can get even more accurate results by configuring the confidence filter. +- Improved the barcode reading speed by applying the localized barcodes filter. The barcodes will be filtered according to the parameters [`BarcodeHeightRangeArray`]({{site.parameters_reference}}barcode-height-range-array.html), [`BarcodeWidthRangeArray`]({{site.parameters_reference}}barcode-width-range-array.html), [`BarcodeAngleRangeArray`]({{site.parameters_reference}}barcode-angle-range-array.html) and [`MinRatioOfBarcodeZoneWidthToHeight`]({{site.parameters_reference}}min-ratio-of-barcode-zone-width-to-height.html). +- Updated the exception message when the full license is invalid or has expired. + +#### Breaking Change(s) + +- The low confidence barcode results will no longer be returned by default. The default value of parameter [`minResultConfidence`]({{site.parameters_reference}}min-result-confidence.html) is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +#### API Changes + +- Removed IOException from the exceptions of method [`decodeBufferedImage`]({{site.android_api}}primary-decode.html#decodebufferedimage). + +#### Fixed + +- Fixed a bug that might cause the application to crash when method [`StartCameraEnhancer`]({{site.android_api}}primary-camera.html#startcameraenhancer) or [`StopCameraEnhancer`]({{site.android_api}}primary-camera.html#stopcameraenhancer) is triggered more than once. + +## 8.6 (07/15/2021) + +
      + +### Version Highlights + +
      + +- Improved the confidence calculating algorithm for 1D barcodes. Misreading rate of results with confidence between 30-100 has been significantly reduced. +- Improved the reading speed on clear images by implementing a new deblur mode `DM_BASED_ON_LOC_BIN`. + +
      + +### Changelog + +#### New + +- Added more samples. +- Added new API `enableResultVerification`. The barcode decoding results will be verified before output if this feature is enabled. This will highly improve the accuracy of barcode scanning. +- Added new API `enableDuplicateFilter`. The barcode decoding results will be filtered before output if this feature is enabled. The duplicated results will be output only once for every three seconds. +- Added two `DeblurMode` Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added method `initLicenseFromDLS` in `BarcodeReader` class to replace `initLicenseFromLTS`. +- Added class `DMDLSConnectionParameters` to replace class `DMLTSConnectionParameters`. +- Added interface `DBRDLSLicenseVerificationListener` and callback `DLSLicenseVerificationCallback` to replace `DBRLTSLicenseVerificationListener` and `LTSLicenseVerificationCallback`. + +#### Improved + +- Improved the [`confidence`]({{site.android_api}}auxiliary-ExtendedResult.html#confidence) algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +#### Fixed + +- Fixed a bug that might report error "AuthType is not RSA" when activating the license with [`initLicenseFromServer`](../api-reference/primary-license-v8.9.3.html#initlicensefromserver). + +## 8.4 (06/08/2021) + +### New + +- Added a new attribute [`isMirrored`]({{site.android_api}}auxiliary-TextResult.html#ismirrored) to the `TextResult` class. `isMirrored` returns whether the barcode is mirrored. +- Added a new argument, `ThresholdCompensation`, to the `BinarizationModes` mode arguments. + +### Improved + +- Faster recognition speeds when detecting dense QR Codes. +- Improved the performance of boundary identification for DataMatrix codes. + +### Deprecated + +- `ThreshValueCoefficient` is now deprecated. It still works in this version but could be removed in the near future. We recommend using `ThresholdCompensation` instead. + +### Fixed + +- Fixed an issue that happens when calling `initLicenseFromLTS` if [`handShakeCode`]({{site.android_api}}auxiliary-DMDLSConnectionParameters.html#handshakecode) is not set. +- Fixed a bug when trying to build the project in the release mode with code shrinker enabled. + +## 8.2.1 (05/27/2021) + +### New + +- [Dynamsoft Camera Enhancer (DCE)]({{site.dce_android}}) is now available for DBR users to quickly deploy the camera module. We added new APIs and a new class to simplify the user operations when using DBR and DCE at the same time. +- Added [Camera Enhancer setting APIs]({{site.android_api}}primary-camera.html#start-stop-pause-resume-camera-enhancer). These new APIs will benefit users by easily controlling the status of DCE. +- Added a new class, [`DCESettingParameters`]({{site.android_api}}auxiliary-DCESettingParameters.html), and a new API, [`SetCameraEnhancerParam`]({{site.android_api}}primary-camera.html#setcameraenhancerparam), to enable the parameter transfer between DBR and DCE. The parameter transferring will improve the focus ability of the camera. + +### Improved + +- Samples are updated. DCE is handling the camera-related settings in the samples. + +## 8.2 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to [`RegionPredetectionModes`]({{ site.parameters_reference }}Region-Predetection-Modes.html) that determines if the SDK attempts to find an accurate boundary when `RegionPredetectionModes` is set to `RPM_GENERAL_HSV_CONTRAST`. +- Added a new an attribute, `organizationID` (string) to `DMLTSConnectionParameters`. The attribute adds a new layer of security for both full and trial licenses. + +### Improved + +- Improved both the localization and decoding algorithms for Postal Codes. +- Localization mode `LM_STATISTICS_POSTAL_CODE` will not be added automatically when barcode format postal code is enabled. You can still add `LM_STATISTICS_POSTAL_CODE` manually to get better performance on localizing the postal codes. + +### Fixed + +- Resolved a bug that infrequently causes the application to crash when decoding a MicroPDF417 barcode. + +## 8.1.2 (01/22/2021) + +### New + +- Added `mode`, `page`, `totalPage` and `parityData` in the `QRCodeDetails` Class. + +### Improved + +- Improved the recognition accuracy for GS1 Databar. +- Removed the exception code from `barcodeText` when using a valid trial license. +- Included native C++ DLL files in the .NET assembly files, so users don't need to manually copy these files to the specific folder. + +### Fixed + +- Fixed a bug where `barcodeFormatString`, `barcodeFormatString_2`, `regionName` and `documentName` don't have value in the `IRT_TYPED_BARCODE_ZONE` intermediate result. + +## 8.1.1 (01/19/2021) + +### Fixed + +- Fixed a crash issue when calling `initLicenseFromLTS` or `decode***` methods in Android 6.x and below. + +## 8.1 (01/12/2021) + +### New + +- Added support for MSI Code (Modified Plessey). +- Added a new member `barcodeZoneMinDistanceToImageBorders` in the `PublicRuntimeSettings` Class to set the minimum distance (in pixels) between barcode zone and image borders. Previously, it is only available in the JSON template. It can be now configured by setting `PublicRuntimeSettings` -> `barcodeZoneMinDistanceToImageBorders`. +- Added exception error message to `TextResult` when license initialization fails or decoding authorization fails. + +### Improved + +- Improved the localization robustness for QR Code. +- Improved the localization for low quality 1D barcodes. +- Improved the deblurring performance and recognition rate for DataMatrix. +- Improved the recognition rate for Aztec. + +### Fixed + +- Fixed a bug where Micro PDF417 may not be localized in multiple-barcode scenarios. +- Fixed a bug where the `ExpectedBarcodesCount` and `BarcodeFormat` parameters do not work in the `RegionDefinition`. + +## 8.0 (11/17/2020) + +### New + +- (For `IntermediateResult` Advanced Module) Added support for decoding `IntermediateResult`. For example, users with a binarized image could use this function to skip some image preprocessing steps. +- Implemented a new licensing tracking mechanism, License 2.0, which makes it easier for users to track license usage. +- Added a new format control parameter, `BarcodeZoneMinDistanceToImageBorders`, to set the minimum distance (in pixels) between the barcode zone and image borders. +- Added a new format control parameter, `MinRatioOfBarcodeZoneWidthToHeight`, to set the minimum ratio (width/height) of the barcode zone. +- Added a new format control parameter, `BarcodeZoneBarCountRangeArray`, to set the barcode zone's range of bar count for barcode search. +- Added a new argument, `SpatialIndexBlockSize`, for `RPM_GENERAL_RGB_CONTRAST`, `RPM_GENERAL_GRAY_CONTRAST` and `RPM_GENERAL_HSV_CONTRAST`. +- Added a new parameter, `DeblurModes`, so users can use different deblur algorithms for different scenarios. `DeblurModes` has the following enum types: `DirectBinarization`, `ThresholdBinarization`, `GrayEqulization`, `Smoothing`, `Morphing`, `DeepAnalysis` and `Sharpening`. + +### Improved + +- Improved the localization speed for the `ScanDirectly` mode. +- Improved the localization accuracy for DataMatrix codes with a narrow quiet zone. + +### Feature Deprecated + +- `DeblurLevel` is now deprecated. It still works in this version but could be removed in the near future. We recommend using `DeblurModes` instead. diff --git a/programming/android/release-notes/android-9.md b/programming/android/release-notes/android-9.md new file mode 100644 index 00000000..2c54b144 --- /dev/null +++ b/programming/android/release-notes/android-9.md @@ -0,0 +1,302 @@ +--- +layout: default-layout +title: Android Release Notes v9.x - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for Android SDK v9.x. +keywords: release notes, android, version 9.x, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/android/release-notes/android-9.html +--- + +# Release Notes for Android SDK - 9.x + +## 9.6.60 (12/23/2025) + +This release includes security maintenance updates to ensure continued protection of the product. + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.50 (09/23/2025) + +### New + +- Supported 16 KB page sizes + +## 9.6.40 (03/21/2024) + +### Improved + +- Updated the security of the `DynamsoftBarcodeReader` library and other corresponding dependent libraries. +- Improved the multi-thread processing logic of concurrent instance licenses. +- Improved the barcode decoding performance: + - Improved the accuracy when decoding OneD & PDF417 barcodes. + - Improved the readability of dense DataMatrix codes. + +### Changed + +- Added a new error code `DM_LICENSE_CACHE_USED`, which is returned when failing to connect to the license server but a valid license cache is available. Error codes `DM_FAILED_TO_REACH_DLS` and `DM_LICENSE_SYNC_FAILED` are no longer returned in this scenario. + +### 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.20 (03/16/2023) + +### Fixed + +- Fixed a bug where license authorization may fail when the main license server is not available. +- Other small fixes and tweaks. + +## 9.6.11 (01/16/2023) + +### Fixed + +- Fixed a bug that the barcode decoding thread might not restart when [`startScanning`](../api-reference/primary-video.html#startscanning) is triggered shortly after [`stopScanning`](../api-reference/primary-video.html#stopscanning). + +## 9.6.10 (01/10/2023) + +### Fixed + +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter [`RequireStartStopChars`]({{ site.parameters_reference }}require-start-stop-chars.html) is set to 0. +- Fixed a crash bug by adding protection in algorithm. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +## 9.6.0 (12/13/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. + +
      +

      auto-zoom

      +
      + +- **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. + +
      +

      auto-zoom

      +
      + +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +
      + +### Changelog + +#### New + +- Added a new method [`setLogConfig`](../api-reference/primary-status-retrieval.html#setlogconfig) so that user can get log information of the algorithm. Enumeration [`EnumLogMode`](../../enumeration/log-mode.html) is added so that users can set whether to save the log information. +- Enabled decoding methods [`decodeFile`](../api-reference/primary-decode.html#decodebuffer), [`decodeFileinMemory`](../api-reference/primary-decode.html#decodefileinmemoryfilebytes) and [`decodeBase64String`](../api-reference/primary-decode.html#decodebase64string) to read EXIF data of the given image so that the library can obtain the orientation information when processing image file. +- Override method [`decodeBuffer`](../api-reference/primary-decode.html#decodebuffer). You can input an [`ImageData`](../api-reference/auxiliary-ImageData.html) object as the barcode decoding parameter. The library can obtain the orientation information from the `ImageData` object. +- Added a new property [`transformationMatrix`](../api-reference/auxiliary-LocalizationResult.html#transformationmatrix) to class `LocalizationResult` so that the library can output a transformation matrix for users to transform the coordinates of the barcode result. +- Added a new method [`setDuplicateForgetTime`](../api-reference/primary-video.html#setduplicateforgettime) to filter out all duplicate barcode results for a period of time when processing video streaming. +- Added new properties [`hasLeftRowIndicator`](../api-reference/auxiliary-PDF417Details.html#hasleftrowindicator) and [`hasRightRowIndicator`](../api-reference/auxiliary-PDF417Details.html#hasrightrowindicator) to class `PDF417Details` to return whether the left or right row indicator of the PDF417 barcode is detected. +- Added a new member [`BF2_ALL`](../../enumeration/barcode-format.html) to enumeration `BarcodeFormatIds_2`. +- Extended the features of `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Support mode `DRM_AUTO`. + +#### 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 scan count of duplicate barcodes when the **Charge Way** is **per scan**. +- 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 includes customized value for parameterd `BarcodeTextRegEexPattern`. +- Fixed a bug that might cause memory churn when the instance/thread was created frequently. + +#### Removed + +- Removed `destroy` from class `BarcodeReader`. + +## 9.4.0 (11/04/2022) + +
      + +### Version 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`]({{ site.parameters_reference }}localization-modes.html#isonedstacked) to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter [`PatchCodeSearchingMargins`]({{ site.parameters_reference }}patchcode-searching-margins.html) to specify the searching area of PatchCode. +- Added the supported data format of [`FormatSpecification.PartitionModes`]({{ site.parameters_reference }}partition-modes.html) to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. + +#### 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 + +- Deprecated the attribute `barcodeFormatString_2` of [`TextResult`](../api-reference/auxiliary-TextResult.html), [`ExtendedResult`](../api-reference/auxiliary-ExtendedResult.html) and [`LocalizationResult`](../api-reference/auxiliary-LocalizationResult.html). All the barcode format strings will be returned by the attribute [`barcodeFormatString`](../api-reference/auxiliary-TextResult.html#barcodeformatstring). + +## 9.2.10 (06/28/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. + +
      + +### Changelog + +#### New + +- Added a new method [`setDeviceFriendlyName`]({{ site.android_api }}primary-license.html#setdevicefriendlyname) to set a human-readable name that identifies the device. +- Added a new interface [`ImageSource`]({{ site.android_api }}interface-imagesource.html). It act as an adapter that transfer image data from external resources to the format that can be recognized by the Barcode Reader. The following APIs are available for users to reduce the code complexity when working with [`ImageSource`]({{ site.android_api }}interface-imagesource.html): + - [`setImageSource`]({{ site.android_api }}primary-video.html#setimagesource): Set [`ImageSource`]({{ site.android_api }}interface-imagesource.html) as the source of image data. + - [`startScanning`]({{ site.android_api }}primary-video.html#startscanning): Start obaining image from the [`ImageSource`]({{ site.android_api }}interface-imagesource.html) continuously. + - [`stopScanning`]({{ site.android_api }}primary-video.html#stopscanning): Stop obtaining image from the [`ImageSource`]({{ site.android_api }}interface-imagesource.html). + - [`TextResultListener`]({{ site.android_api }}interface-textresultcallback.html): The protocol that includes a callback method for users to receive decoded barcode results when decoding from the [`ImageSource`]({{ site.android_api }}interface-imagesource.html). +- Added a new methods [`setMinImageReadingInterval`]({{ site.android_api }}primary-video.html#setminimagereadinginterval) to set a minimum interval between two barcode decoding. + +## 9.0.2 (05/26/2022) + +### New + +- Added the following property/Method to iImageData class: + - [`toBitmap`]({{ site.android_api }}auxiliary-ImageData.html#tobitmap): The method that can convert the ImageData to a Bitmap. + - [`orientation`]({{ site.android_api }}auxiliary-ImageData.html#orientation): The property that indicates the orientation of the image. + +### Changed + +- Changed [`getVersion`]({{ site.android_api }}primary-status-retrieval.html#getversion) from a dynamic method to a static method. The format of the return value is changed as well. + +### Fixed + +- Fixed a bug that `TextResult` might not be returned in `TextResultCallback` + +## 9.0.1 (04/20/2022) + +### Fixed + +- Fixed a bug that might offset the position of highlight overlays on the decoded barcodes when used together with `DynamsoftCameraEnhancer`. + +## 9.0.0 (03/22/2022) + +### 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**. + +### Changelog + +#### New + +- Added `BF_CODE_11` under enumeration [`EnumBarcodeFormat`]({{ site.mobile_enum }}barcode-format.html?lang=android) to specify newly supported barcode format, Code 11. The enumeration value of `BF_ONED` and `BF_ALL` are updated as well. +- Added `BF2_PHARMACODE_ONE_TRACK`, `BF2_PHARMACODE_TWO_TRACK` and `BF2_PHARMACODE` under enumeration [`EnumBarcodeFormat_2`]({{ site.mobile_enum }}barcode-format2.html?lang=android). to specify newly supported barcode format, Pharmacode. +- Added a new error code [`DBRERR_PHARMACODE_LICENSE_INVALID`]({{ site.mobile_enum }}error-code.html#error-code--10062) which will be returned when the license of Pharmacode is invalid. +- Added `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` under enumeration [`EnumDeformationResistingMode`]({{ site.mobile_enum }}deformation-resisting-mode.html?lang=android) to apply new deformation resisting modes. +- Added a parameter [`FormatSpecification.VerifyCheckDigit`]({{ site.parameters_reference }}verify-check-digit.html). +- Added new argument [`ConfidenceThreshold`]({{ site.parameters_reference }}localization-modes.html#confidencethreshold) to the `Landroid_apializationModes` mode arguments. +- Added static method [`BarcodeReader.initLicense`]({{ site.android_api }}primary-license.html#initlicense) to replace legacy license activation APIs. The new method will support both online and offline licenses. +- Added interface [`DBRLicenseVerificationListener`]({{ site.android_api }}interface-dbrlicenseverificationlistener.html) to get license verification callback when using `BarcodeReader.initLicense`. +- Added interface [`TextResultListener`]({{ site.android_api }}interface-textresultcallback.html). +- Added interface [`IntermediateResultListener`]({{ site.android_api }}interface-intermediateresultcallback.html). +- Added the following image [decoding methods]({{ site.android_api }}primary-decode.html). The parameter `templateName` is not required in the new methods. + - `BarcodeReader.decodeBuffer` + - `BarcodeReader.decodeFile` + - `BarcodeReader.decodeFileInMemory` + - `BarcodeReader.decodeBase64String` + - `BarcodeReader.decodeBufferedImage` + - `BarcodeReader.decodeIntermediateResults` + +#### Fixed + +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. + +#### Deprecated + +- The following license activation APIs are deprecated and will be removed in 10.0 release: + - Class `DMDLSConnectionParameters` + - Interface `DBRServerLicenseVerificationListener` + - Interface `DBRDLSLicenseVerificationListener` + - Enumeration `EnumDMChargeWay` + - Enumeration `EnumDMLicenseModule` + - Enumeration `EnumDMUUIDGenerationMethod` + - Enumeration `EnumProduct` + - Method `BarcodeReader.initLicenseFromServer` + - Method `BarcodeReader.initLicenseFromLicenseContent` + - Method `BarcodeReader.initLicenseFromDLS` + - Method `BarcodeReader.outputLicenseToString` + +- The image decoding methods with parameter templateName are deprecated + - `BarcodeReader.decodeBuffer` + - `BarcodeReader.decodeFile` + - `BarcodeReader.decodeFileInMemory` + - `BarcodeReader.decodeBase64String` + - `BarcodeReader.decodeBufferedImage` + - `BarcodeReader.decodeIntermediateResults` + +- Interface `TextResultCallback` is deprecated. +- Interface `IntermediateResultCallback` is deprecated. + +#### Breaking Changes + +- Configurations of the preset templates are changed. + - Changed the configurations of `EnumPresetTemplate.DEFAULT` to `EnumPresetTemplate.VIEDE_SINGLE_BARCODE`. + - Added template `EnumPresetTemplate.IMAGE_DEFAULT` to store the legacy configurations of `EnumPresetTemplate.DEFAULT`. +- Removed legacy video barcode decoding APIs + - Class `DCESettingParameters` + - Class `FrameDecodingParameters` + - Enumeration `EnumClarityCalculationMethod` + - Enumeration `EnumClarityFilterMode` + - Interface `ErrorCallback` + - Method `BarcodeReader.SetCameraEnhancerParam` + - Method `BarcodeReader.StartCameraEnhancer` + - Method `BarcodeReader.StopCameraEnhancer` + - Method `BarcodeReader.PauseCameraEnhancer` + - Method `BarcodeReader.ResumeCameraEnhancer` + - Method `BarcodeReader.startFrameDecoding` + - Method `BarcodeReader.startFrameDecodingEx` + - Method `BarcodeReader.appendFrame` + - Method `BarcodeReader.setErrorCallback` + - Method `BarcodeReader.stopFrameDecoding` + - Method `BarcodeReader.initFrameDecodingParameters` + - Method `BarcodeReader.getLenghtOfFrameQueue` + +- Removed the following legacy license activation APIs + - Interface `DMLTSConnectionParameters` + - Protocol `DBRLTSLicenseVerificationListener` + - Method `initLicenseFromLTS` diff --git a/programming/objectivec-swift/release-notes/ios-7.md b/programming/objectivec-swift/release-notes/ios-7.md new file mode 100644 index 00000000..6d6afd7d --- /dev/null +++ b/programming/objectivec-swift/release-notes/ios-7.md @@ -0,0 +1,327 @@ +--- +layout: default-layout +title: iOS Release Notes v7.6 and below - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for iOS SDK v7.6 and below. +keywords: release notes, ios, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/objectivec-swift/release-notes/ios-7.html +--- + +# Release Notes for iOS SDK - 7.6 and below + +## 7.6.0 (09/01/2020) + +### NEW + +- Added a new member rpmColourArgumentIndex in the struct IntermediateResult. The rpmColourArgumentIndex is the index of ForeAndBackgroundColour argument used for RegionPredetectionMode. + +### IMPROVED + +- Improved the decoding speed for when ScanDirectly mode is enabled for localization. +- Improved the decoding speed by utilizing SIMD (single instruction, multiple data). +- Improved the deblurring algorithm for linear barcodes. + +### FIXED + +- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations. +- Fixed a crash issue which occurs under some situations. + +## 7.5.0 (07/22/2020) + +### NEW + +- Added support for QR Code Model 1 (an older version of the QR Code specification). It can be enabled by setting FormatSpecification.EnableQRCodeModel1 in the JSON template file. +- Added a new localization mode LM_CENTRE to localize barcodes from the centre, which can improve the localization speed if the barcode is in the centre of the image. It can be enabled by setting the struct PublicRuntimeSettings -> LocalizationModes -> LM_CENTRE. +- Added a new binarization mode BM_THRESHOLD to set the BinarizationThreshold value which is used to convert the grayscale image to binary image. +- Added startPatternRange, middlePatternRange and endPatternRange properties to the struct OneDCodeDetails for UPC_A, UPC_E, EAN_8 and EAN_13 codes. +- Added the following new arguments for RegionPredetectionMode.RPM_GENERAL_RGB_CONTRAST and RegionPredetectionMode.RPM_GENERAL_GRAY_CONTRAST: + - RelativeBarcodeRegions: Sets the barcode regions relative to the pre-detected region. + - ForeAndBackgroundColours: Specifies a set (or multiple sets) of the foreground and background colours used for region pre-detection algorithm. + - AspectRatioRange: Sets the height range of the bounding rectangle of the pre-detected region. + - HeightRange: Sets the width range of the bounding rectangle of the pre-detected region. + - WidthRange: Sets the aspect ratio range of the bounding rectangle of the pre-detected region. + +### IMPROVED + +- Optimized the binarization process for 1D barcode zones. +- Improved the decoding accuracy for 1D barcodes. +- Improved the decoding speed by 5%-20%. +- Improved the decoding accuracy for Data Matrix code with broken finder pattern. + +### FIXED + +- Fixed a bug where the coordinates of barcodes are calculated incorrectly under some situations. + +## 7.4.1 (05/18/2020) + +### FIXED + +- Fixed a bug where initWithLicenseFromServer doesn't work and will return error -10042 (EnumErrorCode_License_Dll_Missing). + +## 7.4.0 (04/16/2020) + +### NEW + +- Added new barcode format support for DotCode. +- Added relative ROI (Region of Interest) detection to optimize the localization results in the high colour contrasted scenarios. +- Added a new type of output IRT_PREDETECTED_QUADRILATERAL, to identify regions with user-define HSV colour space. +- Implemented a feature for recognizing distorted DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> furtherMode -> DeformationResistingModes. +- Added two Enumerations for FrameDecodingParameters: ClarityCalculationMethod and ClarityFilterMode, to improve input image quality. +- Added a new image pre-processing mode IPM_MORPHOLOGY for barcodes with wide data bar or data cell gaps. + +### IMPROVED + +- Enhanced QR Code deformation, resistance, to improve the success rate of decoding the QR code with square symbol at the center. +- Optimized the algorithm for decoding large and dense QR and DataMatrix codes. +- Optimized deblurring algorithm for linear barcodes. +- Improved a character display issue on some platforms where BarcodeText returns an extra "\uFEFF" if the barcode is encoded in UTF-8 with BOM (Byte Order Mark). +- Simplified the process to enable DPM, DotCode and Postal Codes. Now the library will automatically turn on the corresponding localization mode while following settings are applied: + - DPMCRM_GENEARL + - BF2_DOTCODE + - BF2_POSTALCODE + +### FIXED + +- Fixed a bug where the BinarizationModes settings do not work in the DPM mode. +- Fixed a bug where the barcode location returns incorrect when the barcode is close to the border of the scanning region. +- Fixed a bug in the calculation of deblur confidence. +- Fixed a bug where the ColourConversionModes RGB weights setting does not work when CICM_GENERAL is enabled. +- Other small fixes and tweaks. + +## 7.3.0 (01/02/2020) + +### NEW + +- Added a new barcode type Postal codes including USPS Intelligent Mail, Postnet, Planet, Australia Post barcode, RM4SCC. +- Added a new localization mode LM_STATISTICS_POSTAL_CODE in the struct PublicRuntimeSettings -> LocalizationModes to recognize Postal codes. +- Implemented the feature of recognizing distorted QR barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> DeformationResistingModes. +- Implemented the feature of complementing missing parts of QR Code & DataMatrix barcodes. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> BarcodeComplementModes. +- Added a new setting AutoFilter to set whether to filter frames automatically in the struct FrameDecodingParameters. +- Added a new setting ScaleUpModes to set the scale-up mode for linear barcodes with small module size. It can be enabled by turning on the struct PublicRuntimeSettings -> ScaleUpModes. + +### IMPROVED + +- Improved the decoding accuracy for DataMatrix that has a narrow quiet zone. +- Improved the decoding accuracy for 1D barcode that has a small module size. + +## 7.2.2 (11/13/2019) + +### FIXED + +- Fixed a bug where BarcodeBytes was null when DPM mode was enabled. + +## 7.2.1 (11/12/2019) + +### NEW + +- Added support for GS1-128 barcode. +- Added a new argument "RecordsetSizeOfLatestImages" for "IntermediateResultSavingMode" to specify how many sets of intermediate results are kept in the library. + +### IMPROVED + +- Improved the decoding capability of PDF417 by identifying the start and stop patterns of PDF417. +- Improved the deblurring performance for wide 1D barcodes, which lowers the possibility of fake results. +- Improved video decoding by optimizing frame filtering. +- Optimized the automatic classification for Code 39 and Code 39 Extended. +- Optimized the implementation of region pre-detection mode "RPM_GENERAL_GRAY_CONTRAST". +- Enhanced the recognition of barcodes with small module sizes. +- Changed ExtendedBarcodeFormatIds to BarcodeFormat_2 to support more barcode formats in the future. +- Improved the setting template inside every sample. For consistency, now every sample uses one of templates of "Best Coverage", "Balance" and "Best Speed". + +### FIXED + +- Fixed a bug in the barcode zone type identification during general statistical localization. +- Fixed minor bugs in result outputs. +- Fixed a bug where OneDCodeDetails doesn't work. +- Fixed a memory leak issue when decoding multiple barcodes in our sample App. + +## 7.2.0 (09/24/2019) + +### NEW + +- Added more barcode formats: + - GS1 Databar (Omnidirectional, Truncated, Stacked, Stacked Omnidirectional, Limited, Expanded, Expanded Stacked) + - PatchCode + - Maxicode (mode 2-5) + - Micro PDF417 + - Micro QR + - GS1 COMPOSITE (combination of OneD and PDF417/Micro PDF 417) + - Non-standard Barcode +- Added the capability of reading DPM code. It can be enabled by turning on the struct PublicRuntimeSettings->furtherMode-> DPMCodeReadingModes and adding LM_STATISTICS_MARKS to the PublicRuntimeSettings->localizationModes. +- Added a ReactNative package for iOS. +- Licensing is required to obtain the intermediate results, except the original image in the intermediate results. +- Added a parameter, clarity in the struct ExtendedResult, to show the clarity of the decoded-barcode zone. +- For iOS, added a method, GetModeArgument(), to get the argument value of the mode parameters. +- For Android, added a method, getModeArgument(), to get the argument value of the mode parameters. + +### IMPROVED + +- Improved the decoding speed for PDF417. +- Improved the capability of decoding QR and Data Matrix with cylinder-like deformation. + +### FIXED + +- Fixed minor bugs. + +## 7.1.0 (08/15/2019) + +### NEW + +- Added automatic blurry frame filtering for the video frame decoding, reducing incorrect barcode recognition. +- Added three arguments for the CICM_GENERAL of ColourConversionModes to set the weights for the color conversion, providing more flexibility to deal with various kinds of backgrounds by using different weights of three colors: red, green and blue. +- Added two new methods, StartFrameDecodingEx(), which can be used to start a new thread to decode barcodes, and InitFrameDecodingParameters(), and a new struct, iFrameDecodingParameters. + +### IMPROVED + +- The output of intermediate results can be saved either directly to a folder or to memory or both, by introducing a new parameter, intermediateResultSavingMode, to the struct PublicRuntimeSettings. + +### FIXED + +- Fixed a bug that the deblur function might malfunction in some rare cases. +- Fixed a bug that the coordinates of barcodes may be calculated incorrectly under some situations. +- Fixed a bug that the parameter, RequireStartStopChars, might malfunction in some rare cases. +- Fixed a bug that the angle of barcodes might not be calculated correctly sometimes. + +## 7.0.0 (07/11/2019) + +### NEW + +- Refactored most modules to provide a flexible barcode reading framework that allows for parameter customization suited for a variety of barcode scenarios. +- Enabled access to intermediate results (grayscale image, binarized image, text zone, etc) during the decoding process. +- Added new interfaces to support video decoding, and frame decoding to improve interactive sensitivity. +- Provided methods to terminate the decoding process at different phases such as during binarization, localization or barcode type identification. +- Added a new barcode localization method, Scan Directly, to reduce decoding time significantly for high-quality images. + +### IMPROVED + +- Enhanced error messages related to the license initiation failure. +- Improved detailed results for decoded barcodes, including more barcode format specification. +- Improved results output to enable outputting barcode results in the order of confidence level, barcode position or format. + +### FIXED + +- Fixed an issue where the barcode could be calculated incorrectly in some occasions. + +## 6.5.2 (05/28/2019) + +### IMPROVED + +- Optimized barcode reading workflow for QRCode/DataMatrix/Aztec code recognition. A QRCode/DataMatrix/Aztec barcode zone will be submitted to the deblurring process when its decoding results vary with different binarization arguments. +- Reduced the error rate of 1D barcode recognition. Giving more chances for confirmation of a 1D barcode decoding result whose confidence isn't extreme high. +- Reduced the possibility of conflicts with neighbour barcodes. This improved the precision of the zone to be deleted when a barcode is recognized successfully. + +### FIXED + +- Enhanced the robustness of the image processing algorithm. This resolved segmentation faults when a 0-size image is passed to our SDK or there are a few small-size barcode zones which need to do spatial transformation. + +## 6.5.1 (04/16/2019) + +### IMPROVED + +- Improved deblur algorithm for OneD, enhancing the recognition rate for blurry/out-of-focus barcodes. +- Improved the accuracy of border location and symbol segmentation for AZTEC. +- Optimized line scanning algorithm for OneD, decreasing the computation load for character recognition. +- DecodeBuffer now supports 48-bit and 64-bit image data. + +### FIXED + +- Small fixes and tweaks. + +## 6.5.0 (02/26/2019) + +### IMPROVED + +- Improved average reading speed by 5-10%. +- Greatly improved the image-processing performance for blurry PDF417 codes. +- Improved decoding performance for blurry 1D, QRCode and DataMatrix codes. +- Decreased error recognition rate for Aztec codes. + +### FIXED + +- Small fixes and tweaks. + +## 6.4.1 (11/22/2018) + +### IMPROVED + +- Improved the decoding performance for Aztec, increasing the recognition rate. +- Improved the decoding performance for OneD, decreasing the error recognition rate. +- Added further check points for Timeouts, enhancing the timeout control on large scale images for decoding. + +### FIXED + +- Small fixes and tweaks. + +## 6.4.0 (10/15/2018) + +### NEW + +- Added a BatchDecode tool which helps developers evaluate the recognition performance and speed of the Dynamsoft Barcode Reader SDK. +- Added a new sample demonstrates how to use Dynamsoft Barcode Reader in multiple threads. +- Added the runtime licensing mode. + +### IMPROVED + +- Improved barcode reading speed by 10%, especially for small-sized images. +- Reorganized API documentation to help you find content more easily. +- Simplified Developer's Guide to guide you through creating a HelloWorld project more quickly. + +### FIXED + +- Small fixes and tweaks. + +## 6.3.0 (08/16/2018) + +### NEW + +- Added the support for Aztec codes. +- New developer's guide (.pdf) to cover common use cases,and re-worked existing PDF content to improve its usability. +- New API documentation (.chm) to help you find content more easily. +- Added GetRuntimeSettings and UpdateRuntimeSettings to help you adjust runtime barcode reading settings. +- Added ResetRuntimeSettings to reset runtime barcode reading settings to default values. +- Added InitRuntimeSettingsWithString and InitRuntimeSettingsWithFile to initialize barcode reading settings at runtime. +- Added OutputSettingsToString and OutputSettingsToFile to review runtime barcode reading settings. +- Added AppendTplStringToRuntimeSettings and AppendTplFileToRuntimeSettings to append a new template string/file to the current runtime settings. + +### IMPROVED + +- Improved the logic for ExpectedBarcodesCount. Previously the barcodes it returned may be greater than the given value of ExpectedBarcodesCount. Now as long as the expected barcodes found, it will stop continue searching and decoding barcodes. + +### FIXED + +- Small fixes and tweaks. + +## 6.2.0 (06/28/2018) + +### IMPROVED + +- Easy and flexible to create a custom barcode reading template for your specific use case. +- Greatly improved barcode reading speed. +- Decreased misreading rate for 1D barcodes. +- Enhanced performance for reading multiple barcodes from an image. +- Optimized reading accuracy and speed for blurred QRCode and DataMatrix. +- Improved the speed for reading barcodes directly from a computer/phone screen. + +### FIXED + +- Small fixes and tweaks. + +## 4.2.0 (08/09/2016) + +Version 4.2.0 marks the initial release of Dynamsoft Barcode Reader iOS SDK. + +### NEW + +- Supports reading a single barcode from images (UIImage) and mobile cameras (NV21). Both synchronous and asynchronous barcode decoding methods are provided. +- Supported barcode types include: + - 1D Barcode – Code39, Code93, Code128, Codabar, ITF, EAN13, EAN8, UPCA, UPCE and INDUSTRIAL 2 OF 5. + - 2D Barcode – QR Code, PDF 417, Aztec and DataMatrix. +- Supports iOS 7- 9; iPhone 4s and higher. +- Supported architectures: armv7/arm64/i386/x86_64. + +### IMPROVED + +- Changed 1D barcode decoding module to improve recognition accuracy. +- Improved ResultPoints Property to adjust the sequence of barcode corner points. Now the top-left corner of the barcode is the starting point (x1, y1). The results are returned in the clockwise direction. diff --git a/programming/objectivec-swift/release-notes/ios-8.md b/programming/objectivec-swift/release-notes/ios-8.md new file mode 100644 index 00000000..33b9a4b2 --- /dev/null +++ b/programming/objectivec-swift/release-notes/ios-8.md @@ -0,0 +1,243 @@ +--- +layout: default-layout +title: iOS Release Notes v8.x - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for iOS SDK v8.x. +keywords: release notes, ios, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/objectivec-swift/release-notes/ios-8.html +--- + +# Release Notes for iOS SDK - 8.x + +## 8.9.3 (03/02/2022) + +### Fixed + +- Removed the mandatory dependency of `DynamsoftCameraEnhancer`. +- Fixed a bug that might offset the position of highlight overlays on the decoded barcodes when used together with `DynamsoftCameraEnhancer`. + +## 8.9.1 (12/28/2021) + +- Fixed a bug that might affect the processing speed. + +## 8.9.0 (12/16/2021) + +
      + +### Version Highlights + +
      + +- Preset templates are available for users to configure the `PublicRuntimeSettings` parameters. Users can set the template via the method `updateRuntimeSettings` by specifying an `EnumPresetTemplate` member. + +
      + +### Changelog + +#### New + +- Added methods [`setCameraEnhancer`]({{ site.oc_api }}primary-video.html#setcameraenhancer) to replace `SetCameraEnhancerPara` and `iDCESettingParameters`. This method will simplify the binding of the Camera Enhancer to the Barcode Reader. +- Added methods [`startScanning`]({{ site.oc_api }}primary-video.html#stopscanning) and [`stopScanning`]({{ site.oc_api }}primary-video.html#stopscanning) to control the start and stop of the video streaming barcode decoding thread. These methods are only active when using the Dynamsoft Camera Enhancer along with the Barcode Reader. +- Overwrited method [`updateRuntimeSettings`]({{ site.oc_api }}primary-parameter-and-runtime-settings-basic.html#updateruntimesettings). Users can specify a member of [`EnumPresetTemplate`]({{ site.mobile_enum }}preset-template.html?lang=objc,swift) in the method to select a preset parameter setting template for barcode decoding. + +#### Improved + +- Simplified the usage of the different Modes in the `PublicRuntimeSettings` such as `LocalizationModes`, `DeblurModes`, and more. Users no longer must configure the entire Modes array to include the skipped entries as well. For example: + - In previous versions, when you set the `DeblurModes`: + + ```objc + settings.deblurModes = @[@(EnumDeblurModeBasedOnLocBin), @(EnumDeblurModeSharpening),@(0),@(0),@(0),@(0), @(0), @(0)]; + ``` + + - In v8.9 version: + + ```objc + settings.deblurModes = @[@(EnumDeblurModeBasedOnLocBin), @(EnumDeblurModeSharpening)]; + ``` + +#### Fixed + +- Fixed a bug that might cause memory leaks. + +#### Deprecated + +- The following methods/class are deprecated. They are currently available but will be removed in further updates. + - `SetCameraEnhancerPara` + - `iDCESettingParameters` + +## 8.8.0 (10/19/2021) + +
      + +### Version Highlights + +
      + +- Added a new localization mode `ONED_FAST_SCAN`, which significantly improved the localization speed for 1D barcodes. +- Added the ability to specify barcode width, height, angle to improve the recognition speed if you have advance information about barcodes. +- Optimized the logic of confidence scoring for 2D barcodes. The 2D barcode results with confidence greater than 30 are more accurate. + +
      + +### Changelog + +#### New + +- Added xcframework to the install package. +- Added a new `LocalizationModes` item [`LM_ONED_FAST_SCAN`]({{site.parameters_reference}}localization-modes.html#lm_oned_fast_scan), which significantly improved the localization speed for 1D barcodes. + +#### Improved + +- Improved the confidence calculation algorithm for 2D barcode results. Users can get even more accurate results by configuring the confidence filter. +- Improved the barcode reading speed by applying the localized barcodes filter. The barcodes will be filtered according to the parameters [`BarcodeHeightRangeArray`]({{site.parameters_reference}}barcode-height-range-array.html), [`BarcodeWidthRangeArray`]({{site.parameters_reference}}barcode-width-range-array.html), [`BarcodeAngleRangeArray`]({{site.parameters_reference}}barcode-angle-range-array.html) and [`MinRatioOfBarcodeZoneWidthToHeight`]({{site.parameters_reference}}min-ratio-of-barcode-zone-width-to-height.html). +- Updated the exception message when the full license is invalid or has expired. + +#### Breaking Change(s) + +- The low confidence barcode results will no longer be returned by default. The default value of parameter [`minResultConfidence`]({{site.parameters_reference}}min-result-confidence.html) is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +#### API Changes + +- Removed the class `iTextResultEx`. Merged all `iTextResultEx` properties to [`iTextResult`]({{site.oc_api}}auxiliary-iTextResult.html). +- Removed the method `getEnabledResultVerificationStatus` from the `BarcodeReader` Class. +- Removed the method `getEnabledDuplicateFilterStatus` from the `BarcodeReader` Class. + +## 8.6.0 (07/15/2021) + +
      + +### Version Highlights + +
      + +- Improved the confidence calculating algorithm for 1D barcodes. Misreading rate of results with confidence between 30-100 has been significantly reduced. +- Improved the reading speed on clear images by implementing a new deblur mode `DM_BASED_ON_LOC_BIN`. + +
      + +### Changelog + +#### New + +- Added more samples. +- Added new API `enableResultVerification`. The barcode decoding results will be verified before output if this feature is enabled. This will highly improve the accuracy of barcode scanning. +- Added new API `enableDuplicateFilter`. The barcode decoding results will be filtered before output if this feature is enabled. The duplicated results will be output only once for every three seconds. +- Added two `DeblurMode` Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added method `initLicenseFromDLS` in `BarcodeReader` class to replace `initLicenseFromLTS`. +- Added class `iDMDLSConnectionParameters` to replace class `iDMLTSConnectionParameters`. +- Added delegate `DMDLSLicenseVerificationDelegate` and callback `DLSLicenseVerificationCallback` to replace `DMLTSLicenseVerificationDelegate` and `LTSLicenseVerificationCallback`. + +#### Improved + +- Improved the [`confidence`]({{site.oc_api}}auxiliary-iExtendedResult.html#confidence) algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +### Fixed + +- Fixed a bug that `licenseVerificationCallback` not triggered. + +## 8.4.0 (06/08/2021) + +### New + +- Added a new attribute [`isMirrored`]({{site.oc_api}}auxiliary-iTextResult.html#ismirrored) to the `iTextResultEx` class. `isMirrored` returns whether the barcode is mirrored. +- Added a new attribute [`isDPM`]({{site.oc_api}}auxiliary-iTextResult.html#isdpm) to the `iTextResultEx` class. `isDPM` returns whether the barcode is recognized by the DPM mode. +- Added a new argument, `ThresholdCompensation`, to the `BinarizationModes` mode arguments. + +### Improved + +- Faster recognition speeds when detecting dense QR Codes. +- Improved the performance of boundary identification for DataMatrix codes. + +### Deprecated + +- `ThreshValueCoefficient` is now deprecated. It still works in this version but could be removed in the near future. We recommend using `ThresholdCompensation` instead. + +### Fixed + +- Fixed an issue that happens when calling `initLicenseFromLTS` if [`handShakeCode`]({{site.oc_api}}auxiliary-iDMDLSConnectionParameters.html#handshakecode) is not set. +- Replaced the static library with a dynamic library to avoid compatibility issues with other Dynamsoft products or third-party libraries. + +## 8.2.1 (05/27/2021) + +### New + +- [Dynamsoft Camera Enhancer (DCE)]({{site.dce_ios}}) is now available for DBR users to quickly deploy the camera module. We added a new API and a new class to simplify the user operations when using DBR and DCE at the same time. +- Added a new class, [`iDCESettingParameters`]({{site.oc_api}}auxiliary-iDCESettingParameters.html), and a new API, [`SetCameraEnhancerParam`]({{site.oc_api}}primary-camera.html#setcameraenhancerparam), to enable the parameter transfer between DBR and the DCE. The parameter transferring will improve the focus ability of the camera. + +### Improved + +- Samples are updated. DCE is handling the camera-related settings in the samples. + +## 8.2.0 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to [`RegionPredetectionModes`]({{ site.parameters_reference }}Region-Predetection-Modes.html) that determines if the SDK attempts to find an accurate boundary when `RegionPredetectionModes` is set to `RPM_GENERAL_HSV_CONTRAST`. +- Added a new an attribute, `organizationID` (string) to `iDMLTSConnectionParameters`. The attribute adds a new layer of security for both full and trial licenses. + +### Improved + +- Improved both the localization and decoding algorithms for Postal Codes. +- Localization mode `LM_STATISTICS_POSTAL_CODE` will not be added automatically when barcode format postal code is enabled. You can still add `LM_STATISTICS_POSTAL_CODE` manually to get better performance on localizing the postal codes. + +### Fixed + +- Resolved a bug that infrequently causes the application to crash when decoding a MicroPDF417 barcode. + +## 8.1.2 (01/22/2021) + +### New + +- Added `mode`, `page`, `totalPage` and `parityData` in the `iQRCodeDetails` Class. + +### Improved + +- Improved the recognition accuracy for GS1 Databar. +- Removed the exception code from `barcodeText` when using a valid trial license. + +### Fixed + +- Fixed a bug where `barcodeFormatString`, `barcodeFormatString_2`, `regionName` and `documentName` don't have value in the `IRT_TYPED_BARCODE_ZONE` intermediate result. + +## 8.1.0 (01/12/2021) + +### New + +- Added support for MSI Code (Modified Plessey). +- Added a new member `barcodeZoneMinDistanceToImageBorders` in the `iPublicRuntimeSettings` Class to set the minimum distance (in pixels) between barcode zone and image borders. Previously, it is only available in the JSON template. It can be now configured by setting `iPublicRuntimeSettings` -> `barcodeZoneMinDistanceToImageBorders`. +- Added exception error message to `iTextResult` when license initialization fails or decoding authorization fails. + +### Improved + +- Improved the localization robustness for QR Code. +- Improved the localization for low quality 1D barcodes. +- Improved the deblurring performance and recognition rate for DataMatrix. +- Improved the recognition rate for Aztec code. + +### Fixed + +- Fixed a bug where Micro PDF417 may not be localized in multiple-barcode scenarios. +- Fixed a bug where the `ExpectedBarcodesCount` and `BarcodeFormat` parameters do not work in the `RegionDefinition`. + +## 8.0.0 (11/17/2020) + +### New + +- (For `IntermediateResult` Advanced Module) Added support for decoding `IntermediateResult`. For example, users with a binarized image could use this function to skip some image preprocessing steps. +- Implemented a new licensing tracking mechanism, License 2.0, which makes it easier for users to track license usage. +- Added a new format control parameter, `BarcodeZoneMinDistanceToImageBorders`, to set the minimum distance (in pixels) between the barcode zone and image borders. +- Added a new format control parameter, `MinRatioOfBarcodeZoneWidthToHeight`, to set the minimum ratio (width/height) of the barcode zone. +- Added a new format control parameter, `BarcodeZoneBarCountRangeArray`, to set the barcode zone's range of bar count for barcode search. +- Added a new argument, `SpatialIndexBlockSize`, for `RPM_GENERAL_RGB_CONTRAST`, `RPM_GENERAL_GRAY_CONTRAST` and `RPM_GENERAL_HSV_CONTRAST`. +- Added a new parameter, `DeblurModes`, so users can use different deblur algorithms for different scenarios. `DeblurModes` has the following enum types: `DirectBinarization`, `ThresholdBinarization`, `GrayEqulization`, `Smoothing`, `Morphing`, `DeepAnalysis` and `Sharpening`. + +### Improved + +- Improved the localization speed for the `ScanDirectly` mode. +- Improved the localization accuracy for DataMatrix codes with a narrow quiet zone. + +### Feature Deprecated + +- `DeblurLevel` is now deprecated. It still works in this version but could be removed in the near future. We recommend using `DeblurModes` instead. diff --git a/programming/objectivec-swift/release-notes/ios-9.md b/programming/objectivec-swift/release-notes/ios-9.md new file mode 100644 index 00000000..7f9acd2f --- /dev/null +++ b/programming/objectivec-swift/release-notes/ios-9.md @@ -0,0 +1,349 @@ +--- +layout: default-layout +title: iOS Release Notes v9.x - Dynamsoft Barcode Reader +description: This is the release notes page of Dynamsoft Barcode Reader for iOS SDK v9.x. +keywords: release notes, ios, +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +permalink: /programming/objectivec-swift/release-notes/ios-9.html +--- + +# Release Notes for iOS SDK - 9.x + +## 9.6.60 (12/23/2025) + +This release includes security maintenance updates to ensure continued protection of the product. + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.40 (03/21/2024) + +### Improved + +- Updated the security of the `DynamsoftBarcodeReader` library and other corresponding dependent libraries. +- Improved the multi-thread processing logic of concurrent instance licenses. +- Improved the barcode decoding performance: + - Improved the accuracy when decoding OneD & PDF417 barcodes. + - Improved the readability of dense DataMatrix codes. + +### Changed + +- Added a new error code `EnumErrorCode_LICENSE_CACHE_USED`, which is returned when failing to connect to the license server but a valid license cache is available. Error codes `EnumErrorCode_FAILED_TO_REACH_DLS` and `EnumErrorCode_LICENSE_SYNC_FAILED` are no longer returned in this scenario. + +### 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.21 (03/27/2023) + +### Fixed + +- Fixed a bug that might cause thread blocking on the simulator. + +## 9.6.20 (03/16/2023) + +### Fixed + +- 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) + +### Fixed + +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter [`RequireStartStopChars`]({{ site.parameters_reference }}require-start-stop-chars.html) is set to 0. +- Fixed a crash bug by adding protection in algorithm. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +## 9.6.0 (12/13/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. + +
      +

      auto-zoom

      +
      + +- **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. + +
      +

      auto-zoom

      +
      + +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +
      + +### Changelog + +#### New + +- Added a new method [`setLogConfig`](../api-reference/primary-status-retrieval.html#setlogconfig) so that users can set whether to save the log to a file and where the log file will be saved. Enumeration [`EnumLogMode`](../../enumeration/log-mode.html) is added so that users can set whether to save the log information. +- Enabled decoding methods [`decodeFileWithName`](../api-reference/primary-decode.html#decodefilewithname), [`decodeFileinMemory`](../api-reference/primary-decode.html#decodefileinmemory) and [`decodeBase64`](../api-reference/primary-decode.html#decodebase64) to read EXIF data of the given image so that the library can obtain the orientation information when processing image file. +- Enabled decoding method [`decodeImage`](../api-reference/primary-decode.html#decodeimage) to read orientation information from `UIImage`. +- Override method [`decodeBuffer`](../api-reference/primary-decode.html#decodebuffer). You can input an [`iImageData`](../api-reference/auxiliary-iImageData.html) object as the barcode decoding parameter. The library can obtain the orientation information from the `iImageData` object. +- Added a new property [`transformationMatrix`](../api-reference/auxiliary-iLocalizationResult.html#transformationmatrix) to class `iLocalizationResult` so that the library can output a transformation matrix for users to transform the coordinates of the barcode result. +- Added a new property [`duplicateForgetTime`](../api-reference/primary-video.html#duplicateforgettime) to filter out all duplicate barcode results for a period of time when processing video streaming. +- Added new properties [`hasLeftRowIndicator`](../api-reference/auxiliary-iPDF417Details.html#hasleftrowindicator) and [`hasRightRowIndicator`](../api-reference/auxiliary-iPDF417Details.html#hasrightrowindicator) to class `iPDF417Details` to return whether the left or right row indicator of the PDF417 barcode is detected. +- Added a new member [`BF2_ALL`](../../enumeration/barcode-format.html) to enumeration `BarcodeFormatIds_2`. +- Extended the features of `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Support mode `DRM_AUTO`. + +#### 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 scan count of duplicate barcodes when the **Charge Way** is **per scan**. +- Improved the accuracy of EAN8 localization result(s). +- Improved the localization of **mirrored DataMatrix barcode** by implementing `MirrorMode`. + +#### Changed + +- Method [`toUIImage`](../api-reference/auxiliary-iImageData.html#touiimage) in class `iImageData` will rotate the image physically according the `orientation` property. + +#### 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 includes customized value for parameterd `BarcodeTextRegEexPattern`. + +#### Removed + +- Removed `dispose` from class `BarcodeReader`. + +## 9.4.0 (11/04/2022) + +
      + +### Version 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`]({{ site.parameters_reference }}localization-modes.html#isonedstacked) to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter [`PatchCodeSearchingMargins`]({{ site.parameters_reference }}patchcode-searching-margins.html) to specify the searching area of PatchCode. +- Added the supported data format of [`FormatSpecification.PartitionModes`]({{ site.parameters_reference }}partition-modes.html) to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. + +#### 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. + +#### Fixed + +- Fixed a memory leak issue by upgrading SDK compile tool from Xcode 9 to Xcode 13. + +#### Deprecated + +- Deprecated the attribute `barcodeFormatString_2` of [`TextResult`](../api-reference/auxiliary-iTextResult.html), [`ExtendedResult`](../api-reference/auxiliary-iExtendedResult.html) and [`LocalizationResult`](../api-reference/auxiliary-iLocalizationResult.html). All the barcode format strings will be returned by the attribute [`barcodeFormatString`](../api-reference/auxiliary-iTextResult.html#barcodeformatstring). + +## 9.2.13 (09/05/2022) + +- Fixed a bug that **NSError** might not be returned when errors occured in the decode methods. + +## 9.2.12 (08/02/2022) + +- Made a minor change to `iRegionDefinition` class to ensure the library can be used together with `DynamsoftCameraEnhancer` in Xamarin.Forms. + +## 9.2.11 (07/11/2022) + +### Fixed + +- Fixed a bug that could cause App Store rejection when **Build Options - Enable BitCode** is set to **Yes** for an app. + +## 9.2.10 (06/28/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. + +
      + +### Changelog + +#### New + +- Added a new method [`setDeviceFriendlyName`]({{ site.oc_api }}primary-license.html#setdevicefriendlyname) to set a human-readable name that identifies the device. +- Added a new method [`decodeFileInMemory`]({{ site.oc_api }}primary-decode.html#decodefileinmemory) to decode from the images that are stored in memory. +- Added a new interface [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html). It acts as an adapter that transfers image data from external resources to the format that can be recognized by the Barcode Reader. The following APIs are available for users to reduce the code complexity when working with [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html): + - [`setImageSource`]({{ site.oc_api }}primary-video.html#setimagesource): Set [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html) as the source of image data. + - [`startScanning`]({{ site.oc_api }}primary-video.html#startscanning): Start obaining image from the [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html) continuously. + - [`stopScanning`]({{ site.oc_api }}primary-video.html#stopscanning): Stop obtaining image from the [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html). + - [`TextResultListener`]({{ site.oc_api }}protocol-dbrtextresultdelegate.html): The protocol that includes a callback method for users to receive decoded barcode results when decoding from the [`ImageSource`]({{ site.oc_api }}protocol-imagesource.html). +- Added a new method [`minImageReadingInterval`]({{ site.oc_api }}primary-video.html#minimagereadinginterval) to set the minimum interval between consecutive barcode decoding processes. + +## 9.0.2 (05/26/2022) + +### New + +- Added the following property/Method to iImageData class: + - [`toUIImage`]({{ site.oc_api }}auxiliary-iImageData.html#touiimage): The method that can convert the iImageData to an UIImage. + - [`orientation`]({{ site.oc_api }}auxiliary-iImageData.html#orientation): The property that indicates the orientation of the image. + +### Changed + +- Changed [`getVersion`]({{ site.oc_api }}primary-status-retrieval.html#getversion) from a dynamic method to a static method. The format of the return value is changed as well. + +### Fixed + +- Fixed a bug that might cause memory leak. + +## 9.0.1 (04/20/2022) + +### Fixed + +- Fixed a bug that might offset the position of highlight overlays on the decoded barcodes when used together with `DynamsoftCameraEnhancer`. + +## 9.0.0 (03/22/2022) + +### 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**. + +### Changelog + +#### New + +- Added `EnumBarcodeFormatCODE11` under enumeration [`EnumBarcodeFormat`]({{ site.mobile_enum }}barcode-format.html?lang=objc,swift) to specify newly supported barcode format, Code 11. The enumeration value of `EnumBarcodeFormatONED` and `EnumBarcodeFormatALL` are updated as well. +- Added `EnumBarcodeFormat2PHARMACODEONETRACK`, `EnumBarcodeFormat2PHARMACODETWOTRACK` and `EnumBarcodeFormat2PHARMACODE` under enumeration [`EnumBarcodeFormat_2`]({{ site.mobile_enum }}barcode-format2.html?lang=objc,swift) to specify newly supported barcode format, Pharmacode. +- Added a new error code [`DBRERR_PHARMACODE_LICENSE_INVALID`]({{ site.mobile_enum }}error-code.html#error-code--10062) which will be returned when the license of Pharmacode is invalid. +- Added `EnumDeformationResistingModeBroadWarp`, `EnumDeformationResistingModeLocalReference` and `EnumDeformationResistingModeDewrinkle` under enumeration [`EnumDeformationResistingMode`]({{ site.mobile_enum }}deformation-resisting-mode.html) to apply new deformation resisting modes. +- Added a parameter [`FormatSpecification.VerifyCheckDigit`]({{ site.parameters_reference }}verify-check-digit.html). +- Added new argument [`ConfidenceThreshold`]({{ site.parameters_reference }}localization-modes.html#confidencethreshold) to the `LocalizationModes` mode arguments. +- Added static method [`DynamsoftBarcodeReader.initLicense`]({{ site.oc_api }}primary-license.html#initlicense) to replace legacy license activation APIs. +- Added protocol [`DBRLicenseVerificationListener`]({{ site.oc_api }}protocol-dmdlslicenseverificationdelegate.html) to get license verification callback when using `DynamsoftBarcodeReader.initLicense`. +- Added protocol [`DBRTextResultListener`]({{ site.oc_api }}protocol-dbrtextresultdelegate.html). +- Added protocol [`DBRIntermediateResultListener`]({{ site.oc_api }}protocol-dbrintermediateresultdelegate.html). +- Added the following image [decoding methods]({{ site.oc_api }}primary-decode.html). The parameter `templateName` is not required in the new methods. + - `DynamsoftBarcodeReader.decodeBuffer` + - `DynamsoftBarcodeReader.decodeImage` + - `DynamsoftBarcodeReader.decodeFileWithName` + - `DynamsoftBarcodeReader.decodeBase64` + - `DynamsoftBarcodeReader.decodeIntermediateResult` + +#### Fixed + +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. + +#### Deprecated + +- The following license activation APIs are deprecated: + - Interface `iDMDLSConnectionParameters` + - Protocol `DBRServerLicenseVerificationDelegate` + - Protocol `DMDLSLicenseVerificationDelegate` + - Enumeration `EnumDMChargeWay` + - Enumeration `EnumDMLicenseModule` + - Enumeration `EnumDMUUIDGenerationMethod` + - Enumeration `EnumProduct` + - Method `DynamsoftBarcodeReader.initLicenseFromServer` + - Method `DynamsoftBarcodeReader.initLicenseFromDLS` + - Method `DynamsoftBarcodeReader.outputLicenseToString` + +- The image decoding methods with parameter templateName are deprecated + - `DynamsoftBarcodeReader.decodeIntermediateResult` + - `DynamsoftBarcodeReader.decodeImage` + - `DynamsoftBarcodeReader.decodeFileWithName` + - `DynamsoftBarcodeReader.decodeBase64` + - `DynamsoftBarcodeReader.decodeBuffer` + +- `DBRTextResultDelegate` is deprecated. +- `DBRIntermediateResultListener` is deprecated. + +#### Breaking Changes + +- Configurations of the preset templates are changed. + - Changed the configurations of `EnumPresetTemplate.default` to `EnumPresetTemplate.videoSingleBarcode`. + - Added template `EnumPresetTemplate.imageDefault` to store the legacy configurations of `EnumPresetTemplate.default`. +- Updated Swift APIs + - The following method names are changed: + - `DynamsoftBarcodeReader.updateRuntimeSettings`(with parameter `iPublicRuntimeSettings`) + - `DynamsoftBarcodeReader.decodeIntermediateResult` + - `DynamsoftBarcodeReader.decodeImage` + - `DynamsoftBarcodeReader.decodeFileWithName` + - `DynamsoftBarcodeReader.initRuntimeSettingsWithFile` + - `DynamsoftBarcodeReader.initRuntimeSettingsWithString` + - `DynamsoftBarcodeReader.appendTplFileToRuntimeSettings` + - `DynamsoftBarcodeReader.appendTplStringToRuntimeSettings` + - `DynamsoftBarcodeReader.outputSettingsToString` + - `DynamsoftBarcodeReader.outputSettingsToFile` + - Enumeration members of `EnumTerminatePhase` + - The following methods will signal errors by throw exceptions + - `DynamsoftBarcodeReader.decodeIntermediateResult` + - `DynamsoftBarcodeReader.decodeImage` + - `DynamsoftBarcodeReader.decodeFileWithName` + - `DynamsoftBarcodeReader.decodeBase64` + - `DynamsoftBarcodeReader.decodeBuffer` + - `DynamsoftBarcodeReader.getIntermediateResult` + - `DynamsoftBarcodeReader.createIntermediateResult` + - `DynamsoftBarcodeReader.outputLicenseToString` + - `DynamsoftBarcodeReader.outputSettingsToString` + - `DynamsoftBarcodeReader.allParameterTemplateNames` + - `DynamsoftBarcodeReader.getModeArgument` + - `DynamsoftBarcodeReader.getRuntimeSettings` + - The following methods will return an BOOL value + - `DynamsoftBarcodeReader.updateRuntimeSettings` + - `DynamsoftBarcodeReader.setModeArgument` + - `DynamsoftBarcodeReader.resetRuntimeSettings` + - `DynamsoftBarcodeReader.initRuntimeSettingsWithFile` + - `DynamsoftBarcodeReader.initRuntimeSettingsWithString` + - `DynamsoftBarcodeReader.appendTplFileToRuntimeSettings` + - `DynamsoftBarcodeReader.appendTplStringToRuntimeSettings` + - `DynamsoftBarcodeReader.outputSettingsToFile` + +- Removed the following legacy video barcode decoding APIs + - Interface `iDCESettingParameters` + - Interface `iFrameDecodingParameters` + - Enumeration `EnumClarityCalculationMethod` + - Enumeration `EnumClarityFilterMode` + - Protocol `DBRErrorDelegate` + - Method `DynamsoftBarcodeReader.setCameraEnhancerParam` + - Method `DynamsoftBarcodeReader.startFrameDecoding` + - Method `DynamsoftBarcodeReader.startFrameDecodingEx` + - Method `DynamsoftBarcodeReader.appendFrame` + - Method `DynamsoftBarcodeReader.setDBRErrorDelegate` + - Method `DynamsoftBarcodeReader.stopFrameDecoding` + - Method `DynamsoftBarcodeReader.getFrameDecodingParameters` + - Method `DynamsoftBarcodeReader.getLenghtOfFrameQueue` + +- Removed the following legacy license activation APIs + - Interface `iDMLTSConnectionParameters` + - Protocol `DMLTSLicenseVerificationDelegate` + - Method `DynamsoftBarcodeReader.initLicenseFromLTS` + - Property `DynamsoftBarcodeReader.license` From aa4c8bcb6cc46bd9f678e89618950a2da6c167f3 Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 10 Sep 2026 10:00:52 +0800 Subject: [PATCH 19/21] Update Android and iOS release notes to use consistent site variables for version links --- .../programming-android.html | 8 +- .../sidelist-programming/programming-oc.html | 8 +- programming/android/release-notes/index.md | 106 ++++++++--------- .../objectivec-swift/release-notes/index.md | 110 +++++++++--------- 4 files changed, 116 insertions(+), 116 deletions(-) diff --git a/_includes/sidelist-programming/programming-android.html b/_includes/sidelist-programming/programming-android.html index f5647cff..a3f5501b 100644 --- a/_includes/sidelist-programming/programming-android.html +++ b/_includes/sidelist-programming/programming-android.html @@ -742,10 +742,10 @@
    • Release Notes
    • Migration Guides diff --git a/_includes/sidelist-programming/programming-oc.html b/_includes/sidelist-programming/programming-oc.html index 97835e5d..7f487023 100644 --- a/_includes/sidelist-programming/programming-oc.html +++ b/_includes/sidelist-programming/programming-oc.html @@ -741,10 +741,10 @@
    • Release Notes
    • diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md index 97565519..2c6ef69f 100644 --- a/programming/android/release-notes/index.md +++ b/programming/android/release-notes/index.md @@ -20,56 +20,56 @@ breadcrumbText: Release Notes - [11.2.1000 (10/16/2025)]({{ site.android_release_notes }}android-11.html#1121000-10162025) - [11.0.5000 (07/29/2025)]({{ site.android_release_notes }}android-11.html#1105000-07292025) - [11.0.3000 (05/15/2025)]({{ site.android_release_notes }}android-11.html#1103000-05152025) -- [10.4.3002 (03/07/2025)]({{ site.android_release_notes_v10 }}android-10.html#1043002-03072025) -- [10.4.3001 (02/11/2025)]({{ site.android_release_notes_v10 }}android-10.html#1043001-02112025) -- [10.4.3000 (01/23/2025)]({{ site.android_release_notes_v10 }}android-10.html#1043000-01232025) -- [10.4.2003 (12/26/2024)]({{ site.android_release_notes_v10 }}android-10.html#1042003-12262024) -- [10.4.2002 (12/16/2024)]({{ site.android_release_notes_v10 }}android-10.html#1042002-12162024) -- [10.4.2001 (11/13/2024)]({{ site.android_release_notes_v10 }}android-10.html#1042001-11132024) -- [10.4.2000 (10/11/2024)]({{ site.android_release_notes_v10 }}android-10.html#1042000-10112024) -- [10.2.1100 (05/15/2024)]({{ site.android_release_notes_v10 }}android-10.html#1021100-05152024) -- [10.2.10 (04/16/2024)]({{ site.android_release_notes_v10 }}android-10.html#10210-04162024) -- [10.0.21 (12/12/2023)]({{ site.android_release_notes_v10 }}android-10.html#10021-12122023) -- [10.0.20 (10/26/2023)]({{ site.android_release_notes_v10 }}android-10.html#10020-10262023) -- [9.6.60 (12/23/2025)]({{ site.android_release_notes_v9 }}android-9.html#9660-12232025) -- [9.6.50 (09/23/2025)]({{ site.android_release_notes_v9 }}android-9.html#9650-09232025) -- [9.6.40 (03/21/2024)]({{ site.android_release_notes_v9 }}android-9.html#9640-03212024) -- [9.6.20 (03/16/2023)]({{ site.android_release_notes_v9 }}android-9.html#9620-03162023) -- [9.6.11 (01/16/2023)]({{ site.android_release_notes_v9 }}android-9.html#9611-01162023) -- [9.6.10 (01/10/2023)]({{ site.android_release_notes_v9 }}android-9.html#9610-01102023) -- [9.6.0 (12/13/2022)]({{ site.android_release_notes_v9 }}android-9.html#960-12132022) -- [9.4.0 (11/04/2022)]({{ site.android_release_notes_v9 }}android-9.html#940-11042022) -- [9.2.10 (06/28/2022)]({{ site.android_release_notes_v9 }}android-9.html#9210-06282022) -- [9.0.2 (05/26/2022)]({{ site.android_release_notes_v9 }}android-9.html#902-05262022) -- [9.0.1 (04/20/2022)]({{ site.android_release_notes_v9 }}android-9.html#901-04202022) -- [9.0.0 (03/22/2022)]({{ site.android_release_notes_v9 }}android-9.html#900-03222022) -- [8.9.3 (03/02/2021)]({{ site.android_release_notes_v9 }}android-8.html#893-03022022) -- [8.9.1 (12/28/2021)]({{ site.android_release_notes_v9 }}android-8.html#891-12282021) -- [8.9.0 (12/16/2021)]({{ site.android_release_notes_v9 }}android-8.html#890-12162021) -- [8.8.0 (10/19/2021)]({{ site.android_release_notes_v9 }}android-8.html#880-10192021) -- [8.6.0 (07/15/2021)]({{ site.android_release_notes_v9 }}android-8.html#860-07152021) -- [8.4.0 (06/08/2021)]({{ site.android_release_notes_v9 }}android-8.html#840-06082021) -- [8.2.1 (05/27/2021)]({{ site.android_release_notes_v9 }}android-8.html#821-05272021) -- [8.2.0 (03/17/2021)]({{ site.android_release_notes_v9 }}android-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.android_release_notes_v9 }}android-8.html#812-01222021) -- [8.1.1 (01/19/2021)]({{ site.android_release_notes_v9 }}android-8.html#811-01192021) -- [8.1.0 (01/12/2021)]({{ site.android_release_notes_v9 }}android-8.html#810-01122021) -- [8.0.0 (11/17/2020)]({{ site.android_release_notes_v9 }}android-8.html#800-11172020) -- [7.6.1 (11/04/2020)]({{ site.android_release_notes_v9 }}android-7.html#761-11042020) -- [7.6.0 (09/01/2020)]({{ site.android_release_notes_v9 }}android-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.android_release_notes_v9 }}android-7.html#750-07222020) -- [7.4.0 (04/16/2020)]({{ site.android_release_notes_v9 }}android-7.html#740-04162020) -- [7.3.0 (01/02/2020)]({{ site.android_release_notes_v9 }}android-7.html#730-01022020) -- [7.2.2 (11/13/2019)]({{ site.android_release_notes_v9 }}android-7.html#722-11132019) -- [7.2.1 (11/12/2019)]({{ site.android_release_notes_v9 }}android-7.html#721-11122019) -- [7.2.0 (09/24/2019)]({{ site.android_release_notes_v9 }}android-7.html#720-09242019) -- [7.1.0 (08/15/2019)]({{ site.android_release_notes_v9 }}android-7.html#710-08152019) -- [7.0.0 (07/11/2019)]({{ site.android_release_notes_v9 }}android-7.html#700-07112019) -- [6.5.2 (05/28/2019)]({{ site.android_release_notes_v9 }}android-7.html#652-05282019) -- [6.5.1 (04/16/2019)]({{ site.android_release_notes_v9 }}android-7.html#651-04162019) -- [6.5.0 (02/26/2019)]({{ site.android_release_notes_v9 }}android-7.html#650-02262019) -- [6.4.1 (11/22/2018)]({{ site.android_release_notes_v9 }}android-7.html#641-11222018) -- [6.4.0 (10/15/2018)]({{ site.android_release_notes_v9 }}android-7.html#640-10152018) -- [6.3.0 (08/16/2018)]({{ site.android_release_notes_v9 }}android-7.html#630-08162018) -- [6.2.0 (06/28/2018)]({{ site.android_release_notes_v9 }}android-7.html#620-06282018) -- [4.2.0 (08/09/2016)]({{ site.android_release_notes_v9 }}android-7.html#420-08092016) +- [10.4.3002 (03/07/2025)]({{ site.android_release_notes }}android-10.html#1043002-03072025) +- [10.4.3001 (02/11/2025)]({{ site.android_release_notes }}android-10.html#1043001-02112025) +- [10.4.3000 (01/23/2025)]({{ site.android_release_notes }}android-10.html#1043000-01232025) +- [10.4.2003 (12/26/2024)]({{ site.android_release_notes }}android-10.html#1042003-12262024) +- [10.4.2002 (12/16/2024)]({{ site.android_release_notes }}android-10.html#1042002-12162024) +- [10.4.2001 (11/13/2024)]({{ site.android_release_notes }}android-10.html#1042001-11132024) +- [10.4.2000 (10/11/2024)]({{ site.android_release_notes }}android-10.html#1042000-10112024) +- [10.2.1100 (05/15/2024)]({{ site.android_release_notes }}android-10.html#1021100-05152024) +- [10.2.10 (04/16/2024)]({{ site.android_release_notes }}android-10.html#10210-04162024) +- [10.0.21 (12/12/2023)]({{ site.android_release_notes }}android-10.html#10021-12122023) +- [10.0.20 (10/26/2023)]({{ site.android_release_notes }}android-10.html#10020-10262023) +- [9.6.60 (12/23/2025)]({{ site.android_release_notes }}android-9.html#9660-12232025) +- [9.6.50 (09/23/2025)]({{ site.android_release_notes }}android-9.html#9650-09232025) +- [9.6.40 (03/21/2024)]({{ site.android_release_notes }}android-9.html#9640-03212024) +- [9.6.20 (03/16/2023)]({{ site.android_release_notes }}android-9.html#9620-03162023) +- [9.6.11 (01/16/2023)]({{ site.android_release_notes }}android-9.html#9611-01162023) +- [9.6.10 (01/10/2023)]({{ site.android_release_notes }}android-9.html#9610-01102023) +- [9.6.0 (12/13/2022)]({{ site.android_release_notes }}android-9.html#960-12132022) +- [9.4.0 (11/04/2022)]({{ site.android_release_notes }}android-9.html#940-11042022) +- [9.2.10 (06/28/2022)]({{ site.android_release_notes }}android-9.html#9210-06282022) +- [9.0.2 (05/26/2022)]({{ site.android_release_notes }}android-9.html#902-05262022) +- [9.0.1 (04/20/2022)]({{ site.android_release_notes }}android-9.html#901-04202022) +- [9.0.0 (03/22/2022)]({{ site.android_release_notes }}android-9.html#900-03222022) +- [8.9.3 (03/02/2021)]({{ site.android_release_notes }}android-8.html#893-03022022) +- [8.9.1 (12/28/2021)]({{ site.android_release_notes }}android-8.html#891-12282021) +- [8.9.0 (12/16/2021)]({{ site.android_release_notes }}android-8.html#890-12162021) +- [8.8.0 (10/19/2021)]({{ site.android_release_notes }}android-8.html#880-10192021) +- [8.6.0 (07/15/2021)]({{ site.android_release_notes }}android-8.html#860-07152021) +- [8.4.0 (06/08/2021)]({{ site.android_release_notes }}android-8.html#840-06082021) +- [8.2.1 (05/27/2021)]({{ site.android_release_notes }}android-8.html#821-05272021) +- [8.2.0 (03/17/2021)]({{ site.android_release_notes }}android-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.android_release_notes }}android-8.html#812-01222021) +- [8.1.1 (01/19/2021)]({{ site.android_release_notes }}android-8.html#811-01192021) +- [8.1.0 (01/12/2021)]({{ site.android_release_notes }}android-8.html#810-01122021) +- [8.0.0 (11/17/2020)]({{ site.android_release_notes }}android-8.html#800-11172020) +- [7.6.1 (11/04/2020)]({{ site.android_release_notes }}android-7.html#761-11042020) +- [7.6.0 (09/01/2020)]({{ site.android_release_notes }}android-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.android_release_notes }}android-7.html#750-07222020) +- [7.4.0 (04/16/2020)]({{ site.android_release_notes }}android-7.html#740-04162020) +- [7.3.0 (01/02/2020)]({{ site.android_release_notes }}android-7.html#730-01022020) +- [7.2.2 (11/13/2019)]({{ site.android_release_notes }}android-7.html#722-11132019) +- [7.2.1 (11/12/2019)]({{ site.android_release_notes }}android-7.html#721-11122019) +- [7.2.0 (09/24/2019)]({{ site.android_release_notes }}android-7.html#720-09242019) +- [7.1.0 (08/15/2019)]({{ site.android_release_notes }}android-7.html#710-08152019) +- [7.0.0 (07/11/2019)]({{ site.android_release_notes }}android-7.html#700-07112019) +- [6.5.2 (05/28/2019)]({{ site.android_release_notes }}android-7.html#652-05282019) +- [6.5.1 (04/16/2019)]({{ site.android_release_notes }}android-7.html#651-04162019) +- [6.5.0 (02/26/2019)]({{ site.android_release_notes }}android-7.html#650-02262019) +- [6.4.1 (11/22/2018)]({{ site.android_release_notes }}android-7.html#641-11222018) +- [6.4.0 (10/15/2018)]({{ site.android_release_notes }}android-7.html#640-10152018) +- [6.3.0 (08/16/2018)]({{ site.android_release_notes }}android-7.html#630-08162018) +- [6.2.0 (06/28/2018)]({{ site.android_release_notes }}android-7.html#620-06282018) +- [4.2.0 (08/09/2016)]({{ site.android_release_notes }}android-7.html#420-08092016) diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md index 39aee8e6..d927d167 100644 --- a/programming/objectivec-swift/release-notes/index.md +++ b/programming/objectivec-swift/release-notes/index.md @@ -22,58 +22,58 @@ breadcrumbText: Release Notes - [11.0.5100 (08/05/2025)]({{ site.oc_release_notes }}ios-11.html#1105100-08052025) - [11.0.5000 (07/29/2025)]({{ site.oc_release_notes }}ios-11.html#1105000-07292025) - [11.0.3000 (05/15/2025)]({{ site.oc_release_notes }}ios-11.html#1103000-05152025) -- [10.4.3002 (03/07/2025)]({{ site.oc_release_notes_v10 }}ios-10.html#1043002-03072025) -- [10.4.3001 (02/11/2025)]({{ site.oc_release_notes_v10 }}ios-10.html#1043001-02112025) -- [10.4.3000 (01/23/2025)]({{ site.oc_release_notes_v10 }}ios-10.html#1043000-01232025) -- [10.4.2003 (12/26/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1042003-12262024) -- [10.4.2002 (12/16/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1042002-12162024) -- [10.4.2001 (11/13/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1042001-11132024) -- [10.4.2000 (10/11/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1042000-10112024) -- [10.2.1101 (07/24/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1021101-07242024) -- [10.2.1100 (05/15/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#1021100-05152024) -- [10.2.10 (04/16/2024)]({{ site.oc_release_notes_v10 }}ios-10.html#10210-04162024) -- [10.0.21 (12/12/2023)]({{ site.oc_release_notes_v10 }}ios-10.html#10021-12122023) -- [10.0.20 (10/26/2023)]({{ site.oc_release_notes_v10 }}ios-10.html#10020-10262023) -- [9.6.60 (12/23/2025)]({{ site.oc_release_notes_v9 }}ios-9.html#9660-12232025) -- [9.6.40 (03/21/2024)]({{ site.oc_release_notes_v9 }}ios-9.html#9640-03212024) -- [9.6.21 (03/27/2023)]({{ site.oc_release_notes_v9 }}ios-9.html#9621-03272023) -- [9.6.20 (03/16/2023)]({{ site.oc_release_notes_v9 }}ios-9.html#9620-03162023) -- [9.6.10 (01/10/2023)]({{ site.oc_release_notes_v9 }}ios-9.html#9610-01102023) -- [9.6.0 (12/13/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#960-12132022) -- [9.4.0 (11/04/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#940-11042022) -- [9.2.13 (09/05/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#9213-09052022) -- [9.2.12 (08/02/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#9212-08022022) -- [9.2.11 (07/11/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#9211-07112022) -- [9.2.10 (06/28/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#9210-06282022) -- [9.0.2 (05/26/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#902-05262022) -- [9.0.1 (04/20/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#901-04202022) -- [9.0.0 (03/22/2022)]({{ site.oc_release_notes_v9 }}ios-9.html#900-03222022) -- [8.9.3 (03/02/2022)]({{ site.oc_release_notes_v9 }}ios-8.html#893-03022021) -- [8.9.1 (12/28/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#891-12282021) -- [8.9.0 (12/16/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#890-12162021) -- [8.8.0 (10/19/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#880-10192021) -- [8.6.0 (07/15/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#860-07152021) -- [8.4.0 (06/08/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#840-06082021) -- [8.2.1 (05/27/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#821-05272021) -- [8.2.0 (03/17/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#812-01222021) -- [8.1.0 (01/12/2021)]({{ site.oc_release_notes_v9 }}ios-8.html#810-01122021) -- [8.0.0 (11/17/2020)]({{ site.oc_release_notes_v9 }}ios-8.html#800-11172020) -- [7.6.0 (09/01/2020)]({{ site.oc_release_notes_v9 }}ios-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.oc_release_notes_v9 }}ios-7.html#750-07222020) -- [7.4.1 (05/18/2020)]({{ site.oc_release_notes_v9 }}ios-7.html#741-05182020) -- [7.4.0 (04/16/2020)]({{ site.oc_release_notes_v9 }}ios-7.html#740-04162020) -- [7.3.0 (01/02/2020)]({{ site.oc_release_notes_v9 }}ios-7.html#730-01022020) -- [7.2.2 (11/13/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#722-11132019) -- [7.2.1 (11/12/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#721-11122019) -- [7.2.0 (09/24/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#720-09242019) -- [7.1.0 (08/15/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#710-08152019) -- [7.0.0 (07/11/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#700-07112019) -- [6.5.2 (05/28/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#652-05282019) -- [6.5.1 (04/16/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#651-04162019) -- [6.5.0 (02/26/2019)]({{ site.oc_release_notes_v9 }}ios-7.html#650-02262019) -- [6.4.1 (11/22/2018)]({{ site.oc_release_notes_v9 }}ios-7.html#641-11222018) -- [6.4.0 (10/15/2018)]({{ site.oc_release_notes_v9 }}ios-7.html#640-10152018) -- [6.3.0 (08/16/2018)]({{ site.oc_release_notes_v9 }}ios-7.html#630-08162018) -- [6.2.0 (06/28/2018)]({{ site.oc_release_notes_v9 }}ios-7.html#620-06282018) -- [4.2.0 (08/09/2016)]({{ site.oc_release_notes_v9 }}ios-7.html#420-08092016) +- [10.4.3002 (03/07/2025)]({{ site.oc_release_notes }}ios-10.html#1043002-03072025) +- [10.4.3001 (02/11/2025)]({{ site.oc_release_notes }}ios-10.html#1043001-02112025) +- [10.4.3000 (01/23/2025)]({{ site.oc_release_notes }}ios-10.html#1043000-01232025) +- [10.4.2003 (12/26/2024)]({{ site.oc_release_notes }}ios-10.html#1042003-12262024) +- [10.4.2002 (12/16/2024)]({{ site.oc_release_notes }}ios-10.html#1042002-12162024) +- [10.4.2001 (11/13/2024)]({{ site.oc_release_notes }}ios-10.html#1042001-11132024) +- [10.4.2000 (10/11/2024)]({{ site.oc_release_notes }}ios-10.html#1042000-10112024) +- [10.2.1101 (07/24/2024)]({{ site.oc_release_notes }}ios-10.html#1021101-07242024) +- [10.2.1100 (05/15/2024)]({{ site.oc_release_notes }}ios-10.html#1021100-05152024) +- [10.2.10 (04/16/2024)]({{ site.oc_release_notes }}ios-10.html#10210-04162024) +- [10.0.21 (12/12/2023)]({{ site.oc_release_notes }}ios-10.html#10021-12122023) +- [10.0.20 (10/26/2023)]({{ site.oc_release_notes }}ios-10.html#10020-10262023) +- [9.6.60 (12/23/2025)]({{ site.oc_release_notes }}ios-9.html#9660-12232025) +- [9.6.40 (03/21/2024)]({{ site.oc_release_notes }}ios-9.html#9640-03212024) +- [9.6.21 (03/27/2023)]({{ site.oc_release_notes }}ios-9.html#9621-03272023) +- [9.6.20 (03/16/2023)]({{ site.oc_release_notes }}ios-9.html#9620-03162023) +- [9.6.10 (01/10/2023)]({{ site.oc_release_notes }}ios-9.html#9610-01102023) +- [9.6.0 (12/13/2022)]({{ site.oc_release_notes }}ios-9.html#960-12132022) +- [9.4.0 (11/04/2022)]({{ site.oc_release_notes }}ios-9.html#940-11042022) +- [9.2.13 (09/05/2022)]({{ site.oc_release_notes }}ios-9.html#9213-09052022) +- [9.2.12 (08/02/2022)]({{ site.oc_release_notes }}ios-9.html#9212-08022022) +- [9.2.11 (07/11/2022)]({{ site.oc_release_notes }}ios-9.html#9211-07112022) +- [9.2.10 (06/28/2022)]({{ site.oc_release_notes }}ios-9.html#9210-06282022) +- [9.0.2 (05/26/2022)]({{ site.oc_release_notes }}ios-9.html#902-05262022) +- [9.0.1 (04/20/2022)]({{ site.oc_release_notes }}ios-9.html#901-04202022) +- [9.0.0 (03/22/2022)]({{ site.oc_release_notes }}ios-9.html#900-03222022) +- [8.9.3 (03/02/2022)]({{ site.oc_release_notes }}ios-8.html#893-03022021) +- [8.9.1 (12/28/2021)]({{ site.oc_release_notes }}ios-8.html#891-12282021) +- [8.9.0 (12/16/2021)]({{ site.oc_release_notes }}ios-8.html#890-12162021) +- [8.8.0 (10/19/2021)]({{ site.oc_release_notes }}ios-8.html#880-10192021) +- [8.6.0 (07/15/2021)]({{ site.oc_release_notes }}ios-8.html#860-07152021) +- [8.4.0 (06/08/2021)]({{ site.oc_release_notes }}ios-8.html#840-06082021) +- [8.2.1 (05/27/2021)]({{ site.oc_release_notes }}ios-8.html#821-05272021) +- [8.2.0 (03/17/2021)]({{ site.oc_release_notes }}ios-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.oc_release_notes }}ios-8.html#812-01222021) +- [8.1.0 (01/12/2021)]({{ site.oc_release_notes }}ios-8.html#810-01122021) +- [8.0.0 (11/17/2020)]({{ site.oc_release_notes }}ios-8.html#800-11172020) +- [7.6.0 (09/01/2020)]({{ site.oc_release_notes }}ios-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.oc_release_notes }}ios-7.html#750-07222020) +- [7.4.1 (05/18/2020)]({{ site.oc_release_notes }}ios-7.html#741-05182020) +- [7.4.0 (04/16/2020)]({{ site.oc_release_notes }}ios-7.html#740-04162020) +- [7.3.0 (01/02/2020)]({{ site.oc_release_notes }}ios-7.html#730-01022020) +- [7.2.2 (11/13/2019)]({{ site.oc_release_notes }}ios-7.html#722-11132019) +- [7.2.1 (11/12/2019)]({{ site.oc_release_notes }}ios-7.html#721-11122019) +- [7.2.0 (09/24/2019)]({{ site.oc_release_notes }}ios-7.html#720-09242019) +- [7.1.0 (08/15/2019)]({{ site.oc_release_notes }}ios-7.html#710-08152019) +- [7.0.0 (07/11/2019)]({{ site.oc_release_notes }}ios-7.html#700-07112019) +- [6.5.2 (05/28/2019)]({{ site.oc_release_notes }}ios-7.html#652-05282019) +- [6.5.1 (04/16/2019)]({{ site.oc_release_notes }}ios-7.html#651-04162019) +- [6.5.0 (02/26/2019)]({{ site.oc_release_notes }}ios-7.html#650-02262019) +- [6.4.1 (11/22/2018)]({{ site.oc_release_notes }}ios-7.html#641-11222018) +- [6.4.0 (10/15/2018)]({{ site.oc_release_notes }}ios-7.html#640-10152018) +- [6.3.0 (08/16/2018)]({{ site.oc_release_notes }}ios-7.html#630-08162018) +- [6.2.0 (06/28/2018)]({{ site.oc_release_notes }}ios-7.html#620-06282018) +- [4.2.0 (08/09/2016)]({{ site.oc_release_notes }}ios-7.html#420-08092016) From 83b96e90ebd832205d00fcd36a2da5f3e302953e Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 10 Sep 2026 15:04:39 +0800 Subject: [PATCH 20/21] Fix method name in release notes and add AutoDetectColorInversion parameter for DataMatrix support --- programming/flutter/release-notes/flutter-11.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programming/flutter/release-notes/flutter-11.md b/programming/flutter/release-notes/flutter-11.md index 46fff9b5..403feb06 100644 --- a/programming/flutter/release-notes/flutter-11.md +++ b/programming/flutter/release-notes/flutter-11.md @@ -29,7 +29,7 @@ breadcrumbText: Release Notes - Added support for Micro PDF417-specific decoding mode. -- Added [`getCentrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#getcentrepoint) method to `Quadrilateral`. +- Added [`centrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#centrepoint) method to `Quadrilateral`. - Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes. From 1036021059f9235126976f62f0395d0862f2524d Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 10 Sep 2026 15:05:03 +0800 Subject: [PATCH 21/21] Update Flutter release notes to correct `centrePoint` method to property and add AutoDetectColorInversion parameter for DataMatrix support --- programming/flutter/release-notes/flutter-11.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/programming/flutter/release-notes/flutter-11.md b/programming/flutter/release-notes/flutter-11.md index 403feb06..55acbd18 100644 --- a/programming/flutter/release-notes/flutter-11.md +++ b/programming/flutter/release-notes/flutter-11.md @@ -29,7 +29,7 @@ breadcrumbText: Release Notes - Added support for Micro PDF417-specific decoding mode. -- Added [`centrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#centrepoint) method to `Quadrilateral`. +- Added [`centrePoint`]({{ site.dcv_flutter_api }}core/quadrilateral.html#centrepoint) property to `Quadrilateral`. - Added [`AutoDetectColorInversion`]({{ site.dcvb_parameters_reference }}barcode-format-specification/auto-detect-color-inversion.html) parameter for `BarcodeFormatSpecification` to support automatic color-inversion detection for DataMatrix barcodes.