diff --git a/_config.yml b/_config.yml index 1578f33b..7551131f 100644 --- a/_config.yml +++ b/_config.yml @@ -15,7 +15,6 @@ dcvb_python_api: /capture-vision/docs/server/programming/python/api-reference/ dcvb_java_api: /capture-vision/docs/server/programming/java/api-reference/ dcvb_introduction: /capture-vision/docs/core/introduction/ dcvb_parameters_reference: /capture-vision/docs/core/parameters/reference/ -dcvb_enumerations: /capture-vision/docs/core/enums/ dcvb_architecture: /capture-vision/docs/core/architecture/ dcvb_parameters: /capture-vision/docs/core/parameters/ @@ -24,36 +23,21 @@ dbr_introduction: /barcode-reader/docs/core/introduction/ dbr_parameters: /barcode-reader/docs/core/parameters/ dbr_performance: /barcode-reader/docs/core/performance/ -dbr_c: /barcode-reader/docs/v9/server/programming/c/ - dbr_cpp: /barcode-reader/docs/server/programming/cplusplus/ dbr_cpp_api: /barcode-reader/docs/server/programming/cplusplus/api-reference/ dbr_cpp_release_notes: /barcode-reader/docs/server/programming/cplusplus/release-notes/ -dbr_cpp_release_notes_v9: /barcode-reader/docs/v9/server/programming/cplusplus/release-notes/ -dbr_cpp_release_notes_v10: /barcode-reader/docs/v10/server/programming/cplusplus/release-notes/ -dbr_cpp_release_notes_v11: /barcode-reader/docs/server/programming/cplusplus/release-notes/ dbr_dotnet: /barcode-reader/docs/server/programming/dotnet/ dbr_dotnet_api: /barcode-reader/docs/server/programming/dotnet/api-reference/ dbr_dotnet_release_notes: /barcode-reader/docs/server/programming/dotnet/release-notes/ -dbr_dotnet_release_notes_v9: /barcode-reader/docs/v9/server/programming/dotnet/release-notes/ -dbr_dotnet_release_notes_v10: /barcode-reader/docs/v10/server/programming/dotnet/release-notes/ -dbr_dotnet_release_notes_v11: /barcode-reader/docs/server/programming/dotnet/release-notes/ dbr_java: /barcode-reader/docs/server/programming/java/ dbr_java_api: /barcode-reader/docs/server/programming/java/api-reference/ -dbr_java_methods: /barcode-reader/docs/server/programming/java/api-reference/BarcodeReader/ -dbr_java_class: /barcode-reader/docs/server/programming/java/api-reference/class/ dbr_java_release_notes: /barcode-reader/docs/server/programming/java/release-notes/ -dbr_java_release_notes_v9: /barcode-reader/docs/v9/server/programming/java/release-notes/ -dbr_java_release_notes_v11: /barcode-reader/docs/server/programming/java/release-notes/ dbr_python: /barcode-reader/docs/server/programming/python/ dbr_python_api: /barcode-reader/docs/server/programming/python/api-reference/ dbr_python_release_notes: /barcode-reader/docs/server/programming/python/release-notes/ -dbr_python_release_notes_v9: /barcode-reader/docs/v9/server/programming/python/release-notes/ -dbr_python_release_notes_v10: /barcode-reader/docs/v10/server/programming/python/release-notes/ -dbr_python_release_notes_v11: /barcode-reader/docs/server/programming/python/release-notes/ dbr_js: /barcode-reader/docs/web/programming/javascript/ @@ -86,11 +70,6 @@ plugins: edition: desktop defaults: - - scope: - path: "programming/c" - values: - docRootName: "Barcode Reader C Edition" - docHomePage: "/barcode-reader/docs/v9/server/programming/c/" - scope: path: "programming/cplusplus" values: diff --git a/_includes/sidelist-programming/programming-cpp.html b/_includes/sidelist-programming/programming-cpp.html index 2e321d5f..41c0077a 100644 --- a/_includes/sidelist-programming/programming-cpp.html +++ b/_includes/sidelist-programming/programming-cpp.html @@ -253,16 +253,16 @@
  • Release Notes
  • Migration Guides
  • License Initialization
  • diff --git a/_includes/sidelist-programming/programming-dotnet.html b/_includes/sidelist-programming/programming-dotnet.html index be7c48b8..814bafae 100644 --- a/_includes/sidelist-programming/programming-dotnet.html +++ b/_includes/sidelist-programming/programming-dotnet.html @@ -247,16 +247,16 @@
  • Release Notes
  • Migration Guides
  • License Initialization
  • diff --git a/_includes/sidelist-programming/programming-java.html b/_includes/sidelist-programming/programming-java.html index af8f0b05..54165530 100644 --- a/_includes/sidelist-programming/programming-java.html +++ b/_includes/sidelist-programming/programming-java.html @@ -257,15 +257,15 @@
  • Release Notes
  • Migration Guides
  • License Initialization
  • diff --git a/_includes/sidelist-programming/programming-python.html b/_includes/sidelist-programming/programming-python.html index d8f955ac..648d0d36 100644 --- a/_includes/sidelist-programming/programming-python.html +++ b/_includes/sidelist-programming/programming-python.html @@ -242,16 +242,16 @@
  • Release Notes
  • Migration Guides
  • License Initialization
  • diff --git a/programming/cplusplus/api-reference/aztec-details.md b/programming/cplusplus/api-reference/aztec-details.md index 18212979..b356e345 100644 --- a/programming/cplusplus/api-reference/aztec-details.md +++ b/programming/cplusplus/api-reference/aztec-details.md @@ -3,7 +3,6 @@ layout: default-layout title: CAztecDetails Class - Dynamsoft Barcode Reader C++ Edition API Reference description: This page shows CAztecDetails class definition of Dynamsoft Barcode Reader SDK C++ Edition. keywords: rows, columns, layerNumber, CAztecDetails, api reference -permalink: /programming/cplusplus/api-reference/aztec-details.html --- # CAztecDetails diff --git a/programming/cplusplus/api-reference/barcode-details.md b/programming/cplusplus/api-reference/barcode-details.md index d0e7c862..002ad4fc 100644 --- a/programming/cplusplus/api-reference/barcode-details.md +++ b/programming/cplusplus/api-reference/barcode-details.md @@ -3,7 +3,6 @@ layout: default-layout title: CBarcodeDetails Class - Dynamsoft Barcode Reader C++ Edition API Reference description: This page shows CBarcodeDetails class definition of Dynamsoft Barcode Reader SDK C++ Edition. keywords: CBarcodeDetails, api reference -permalink: /programming/cplusplus/api-reference/barcode-details.html --- # CBarcodeDetails diff --git a/programming/cplusplus/api-reference/datamatrix-details.md b/programming/cplusplus/api-reference/datamatrix-details.md index 867ad5a4..50254730 100644 --- a/programming/cplusplus/api-reference/datamatrix-details.md +++ b/programming/cplusplus/api-reference/datamatrix-details.md @@ -3,7 +3,6 @@ layout: default-layout title: CDataMatrixDetails Class - Dynamsoft Barcode Reader C++ Edition API Reference description: This page shows CDataMatrixDetails class definition of Dynamsoft Barcode Reader SDK C++ Edition. keywords: rows, columns, CDataMatrixDetails, api reference -permalink: /programming/cplusplus/api-reference/datamatrix-details.html --- # CDataMatrixDetails diff --git a/programming/cplusplus/api-reference/extended-barcode-result.md b/programming/cplusplus/api-reference/extended-barcode-result.md index d65b5ae3..2b5f5ad6 100644 --- a/programming/cplusplus/api-reference/extended-barcode-result.md +++ b/programming/cplusplus/api-reference/extended-barcode-result.md @@ -3,7 +3,6 @@ layout: default-layout title: CExtendedBarcodeResult Class - Dynamsoft Barcode Reader C++ Edition API Reference description: This page shows CExtendedBarcodeResult class definition of Dynamsoft Barcode Reader SDK C++ Edition. keywords: GetDeformation, GetClarity, GetSamplingImage, GetExtendedBarcodeResultType, CExtendedBarcodeResult, api reference -permalink: /programming/cplusplus/api-reference/extended-barcode-result.html --- # CExtendedBarcodeResult Class diff --git a/programming/cplusplus/api-reference/oned-code-details.md b/programming/cplusplus/api-reference/oned-code-details.md index 5049eddc..9f68a375 100644 --- a/programming/cplusplus/api-reference/oned-code-details.md +++ b/programming/cplusplus/api-reference/oned-code-details.md @@ -3,7 +3,6 @@ layout: default-layout title: COneDCodeDetails Class - Dynamsoft Barcode Reader C++ Edition API Reference description: This page shows COneDCodeDetails class definition of Dynamsoft Barcode Reader SDK C++ Edition. keywords: startchar, stopchars, COneDCodeDetails, api reference -permalink: /programming/cplusplus/api-reference/oned-code-details.html --- # COneDCodeDetails diff --git a/programming/cplusplus/migrate-10-to-11.md b/programming/cplusplus/migrate-from-v10/index.md similarity index 100% rename from programming/cplusplus/migrate-10-to-11.md rename to programming/cplusplus/migrate-from-v10/index.md diff --git a/programming/cplusplus/migrate-9-to-11.md b/programming/cplusplus/migrate-from-v9/index.md similarity index 100% rename from programming/cplusplus/migrate-9-to-11.md rename to programming/cplusplus/migrate-from-v9/index.md diff --git a/programming/cplusplus/release-notes/cpp-10.md b/programming/cplusplus/release-notes/cpp-10.md new file mode 100644 index 00000000..7c06d1f0 --- /dev/null +++ b/programming/cplusplus/release-notes/cpp-10.md @@ -0,0 +1,383 @@ +--- +layout: default-layout +title: Release Notes v10.x - Dynamsoft Barcode Reader SDK C++ Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK C++ Edition v10.x. +keywords: release notes, c++ +needGenerateH3Content: false +--- + +# Release Notes for C++ Edition - 10.x + +## 10.4.2000 (10/10/2024) + +### Highlights + +- Added to-the-latest overlapping feature. +- Added ARM64 and MacOS components back to the SDK. +- Improved the error handling logic of `Capture`, `StartCapturing` and `InitLicense` methods to clearly report a licensing issue. + +### Changelogs + +#### New + +- Added new functions `SetMaxOverlappingFrames`, `GetMaxOverlappingFrames`, `EnableLatestOverlapping` and `IsLatestOverlappingEnabled` to the class `CMultiFrameResultCrossFilter`. + +- Added new error codes + - `EC_LICENSE_WARNING` + - `EC_BARCODE_READER_LICENSE_NOT_FOUND` + +- Added new properties to the `CPDF417Details` class + - `codewords` + - `codewordsCount` + + +#### Fixed + +- Fixed a crash bug caused by the usage of RegEx. +- Fixed a bug that could prevent the reading of `GS1_DATABAR_EXPANDED_STACKED` barcodes. +- Small fixes and tweaks. + +#### Changed + +- Changed the template loading mode. By default, the library loads all template files from the `Templates` folder in the same directory as the library file. +- Changed the enumeration value of `BarcodeFormat::BF_ALL` to 0xFFFFFFFEFFFFFFFF. + +### Included Submodules and Their Versions + +The following submodules are included in this SDK release along with their respective versions: +- **DynamsoftCaptureVisionRouter** Module: v2.4.20 +- **DynamsoftCore** Module: v3.4.20 +- **DynamsoftLicense** Module: v3.4.20 +- **DynamsoftUtility** Module: v1.4.20 +- **DynamsoftImageProcessing** Module: v2.4.20 +- **DynamsoftBarcodeReader** Module: v10.4.20 + +## 10.4.10 (07/23/2024) + +### Improved + +- Improved the read rate and speed of the following barcode formats: + - EAN-13 + - DotCode + +### New + +- Added support for decoding add-on codes (also known as Extension Codes) for UPC-A, UPC-E, EAN-8 and EAN-13 codes. +- Added new properties to the `CQRCodeDetails` class + - `dataMaskPattern` + - `codewords` + - `codewordsCount` +- Added a new function `AddItem` to the class `CDecodedBarcodesResult`. +- Added a new function `SetLocation` to the class `CBarcodeResultItem`. +- Added a new function `Clone` to the class `CCapturedResultItem`. +- Added a new function `AddItem` to the class `CCapturedResult`. + +### Changed + +- Changed the maximum length of the `name` parameter to 255 for the `SetDeviceFriendlyName` method. If the length exceeds 255, it will be truncated. + +- Changed the default value of the `waitForThreadExit` parameter to `true` for the `StopCapturing` method. + +### Fixed + +- Fixed a bug where UPC-E barcodes starting with the digit 1 cannot be decoded. +- Fixed a bug where `CaptureVisionRouter.StartCapturing` would erroneously halt the fetching process when its status was running, leading to an unnecessary stop and restart of the fetching operation. +- Fixed a bug where `CDirectoryFetcher` would prematurely read an image before verifying if the buffer was full, resulting in potential loss of the image that did not make it into the buffer upon calling `StopFetching`. + +## 10.2.10 (03/01/2024) + +### Improved + +- Security update for `DynamsoftBarcodeReader` library and other corresponding libraries. +- Supported multiple instances of the class `CCaptureVisionRouter`. +- Improved the usage count logic of the concurrent license mode. +- Improved the experience of local cache usage when failing to connect the license server. The renewal of the local cache is optimized as well. +- Improved the barcode decoding performance: + - Improved the accuracy when decoding OneD & PDF417 barcodes. + - Improved the readability of dense DataMatrix codes. + +### New + +- Added new error codes: + - `EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE` + - `EC_LICENSE_CACHE_USED` +- Added a virtual destructor to the interface `CImageSourceErrorListener` to prevent memory leaks. +- Added a new function `GetDecodedBarcodesResult` to the `CCapturedResult` class to get all the result items with the type `CRIT_BARCODE`. +- Added new virtual destructors to the following interfaces to prevent memory leaks. + - `CCaptureStateListener` + - `CImageSourceStateListener` + +### Changed + +- Changed the internal logic of the function `SetResultUnitTypesOnlyForInput` of `ObservationParameters`. The function only takes effect when the callback of the specified result unit is implemented. + +### Fixed + +- Fixed a crash bug of the Replace method of the `IntermediateResultUnit` class. The method will return the error code `EC_RESULT_TYPE_MISMATCH_IRREPLACEABLE` when the result type is mismatched. +- Fixed a bug where error messages are not output when parsing the parameter templates. +- Fixed a misreading bug of the PDF417 barcodes on the South Carolina driver's license. +- Internal changes to prevent crash bugs in barcode decoding. +- Fixed a bug where the capture might be blocked due to the network latency. +- Fixed a bug where the `DetectAndNormalizeDocument` task might be approved without a valid license. +- Fixed the bugs of usage count. + - Count twice for a single PDF417 barcode when a code parser task is implemented on the result. + - The barcode decoding result might not be uploaded timely. + - The usage count of text line recognition might be double counted when the intermediate results are output. + - The document boundary detection result might be miscounted. + - Patchcode might be counted even if there is no Patchcode license item. + +## 10.2.0 (01/16/2024) + +### Highlights + +- Introduced the capability for users to influence the image processing process by altering intermediate results. Users can now clone, edit, and substitute intermediate result units within the callback function of each type. Subsequent operations will then proceed based on the updated unit. +- Introduced a feature for multi-condition filtering across products. Users can now specify filtering criteria for the task results of a `TargetROIDef` by implementing an `OutputTaskSetting` based on the task results of varying products from descendant `TargetROIDef` objects. +- Enhanced the `Offset` parameter in `TargetROIDef`. Users now have the capability to meticulously customize components of the coordinate system, including the origin, X-axis, and Y-axis, for precise offset calculation. + +### Changelogs + +#### New + +- Updated the template system + - Added `StringLengthRange` for TextDetectionMode. + - Added Argument `BarcodeFormat` for `DPMCodeReadingModes`. Currently, you can specify "BF_DATAMATRIX" or "BF_QR_CODE" for the parameter. + - Added `ReferenceTaskNameArray` under `Location.ReferenceObjectFilter` to filter the reference objects generated by the task name. + - Added the support of the `OutputTaskSetting` definition. The following subparameters are available in `OutputTaskSetting` object: + - `OutputCondition` + - `TaskResultArray` + - `TargetROIDefName` + - `TaskSettingNameArray` + - `BackwardReferenceOutput` + - `ReferenceTaskNameArray` + - `ReferenceResultTypeArray` + - `Operator` + - Offset parameter is optimized. + - Added `ReferenceObjectType` to specify whether the reference object is an atomic object or the whole image. + - Added `ReferenceXAxis` & `ReferenceYAxis` to define the X & Y axis. + - Modified `FirstPoint`, `SecondPoint`, `ThirdPoint` & `FourthPoint`. You can specify whether the X or Y coordinate of the point is measured by percentage. + - Deprecated `ReferenceObjectSize` Type. +- The following classes are migrated from `DynamsoftCore` module to the `DynamsoftCaptureVisionRouter` module: + - `CIntermediateResultReceiver` + - `CapturedResultReceiver` + - `CapturedResultFilter` + - `CIntermediateResultManager` +- Added a new class back method `OnShortLinesUnitReceived` to the `CIntermediateResultReceiver` class. +- Added a new class `CAbstractIntermediateResultReceiver`. It is the super class of the `CIntermediateResultReceiver`. +- Added methods `PauseCapturing` and `ResumeCapturing`. Two new `CapturedState` members, `CS_PAUSED` and `CS_RESUMED`, are added as well. +- Added a new property `documentSettings` to struct `SimplifiedCaptureVisionSettings`. The corresponding struct `SimplifiedDocumentNormalizerSettings` is added to the `DynamsoftDocumentNormalizer` module to store the `documentSettings`. +- Added the following methods to the `CObservationParameters` class to specify the `input only` result unit. + - `SetResultUnitTypesOnlyForInput` + - `GetResultUnitTypesOnlyForInput` + - `IsResultUnitTypeOnlyForInput` +- Added the following methods to the `CRegionObjectElement` class to support the intermediate result modification. + - `SetLocation` + - `Clone` + - `Retain` + - `Release` +- Added a new method `Replace` to the `CIntermediateResultUnit` class to support the replacement of intermediate result units. +- Added `SetImageData` methods to the following classes: + - `CColourImageUnit` + - `CScaledDownColourImageUnit` + - `CGrayscaleImageUnit` + - `CTransformedGrayscaleImageUnit` + - `CEnhancedGrayscaleImageUnit` + - `CBinaryImageUnit` + - `CTextureRemovedGrayscaleImageUnit` + - `CTextureRemovedBinaryImageUnit` + - `CTextRemovedBinaryImageUnit` +- Added new methods to the `CPredetectedRegionsUnit` class to add, remove or set the predetected regions. +- Added new methods to the `CLineSegmentsUnit` class to add, remove or set the line segments. +- Added new methods to the `CTextZonesUnit` class to add, remove or set the text zones. Added a new class `CTextZone` to store the information of a single text zone. +- Added a new method `SetContours` to the `CContourUnit` class. +- Added new methods to the `CTextureDetectionResultUnit` class to set the X & Y spacing. +- Added a new intermediate result unit, `CShortLinesUnit`, to output the detected short lines. The corresponding enumeration member `IRUT_SHORT_LINES` is added to the `IntermediateResultUnitType`. +- Added the following methods to the `CCapturedResultItem` class + - `GetTargetROIDefName` + - `GetTaskName` + - `Retain` + - `Release` +- Added the following new error codes + - `EC_IMAGE_SIZE_NOT_MATCH` + - `EC_IMAGE_PIXEL_FORMAT_NOT_MATCH` + - `EC_SECTION_LEVEL_RESULT_IRREPLACEABLE` + - `EC_AXIS_DEFINITION_INCORRECT` +- Added the following methods to the `CCapturedResult` class. + - A new override constructor. + - `Retain` + - `Release` +- Updated `CImageData` class + - Change the return value of `GetBytesLength` from int to unsigned long long. + - Added a new constructor. +- Added a new supported image pixel format, binary 8 inverted. The corresponding enumeration member is added to the `ImagePixelFormat`. +- Added return value for the `Retain` method of the `CIntermediateResultUnit` class. The method will return the pointer of the current `CIntermediateResultUnit`. +- Added a new method `CreatePredetectedRegionElement` to the `CImageProcessingModule` class to create the predetected region element. +- Add C interfaces and implementations, which are only used to encapsulate upper-level languages such as c# and python, etc. +- Added new methods to the `CCandidateBarcodeZonesUnit` class to add, remove or set the candidate barcode zones. `CCandidateBarcodeZone` class is added to store the information of a single candidate barcode zone. +- Added new methods to the `CLocalizedBarcodesUnit` class to add, remove or set the localized barcode elements. +- Added a new method `SetImageData` to the `CScaledUpBarcodeImageUnit` class. +- Added new methods to the `CDeformationResistedBarcodeImageUnit` class to add, remove or set the deformation-resisted barcode. `CDeformationResistedBarcode` class is added to store the deformation-resisted barcode information. +- Added a new method `SetLocation` to `CComplementedBarcodeImageUnit` class. +- Added new methods to the `CDecodedBarcodesUnit` class to set or remove the decoded barcode elements. +- Added the following methods to the `CDecodedBarcodesResult` class: + - A new override constructor. + - `Retain` + - `Release`. +- Added the following methods to the `CBarcodeReaderModule` class to create the corresponding elements. + - `CreateDecodedBarcodeElement` + - `CreateLocalizedBarcodeElement` +- Added the following methods to the `CDecodeBarcodeElement` class to modify the basic information of the barcode: + - `SetFormat` + - `SetText` + - `SetBytes` + - `SetConfidence` +- Added a new method `SetPossibleFormats` to the `CLocalizedBarcodeElement`. + +#### Fixed + +- Fixed a crash bug that might happen when triggering the `SetNextImageToReturn` method of the `ImageSourceAdapter` class. + +#### Breaking Changes + +- Changed the logic of the `StopCapturing` method. + - `CaptureResultReceiver` will not receive results after `StopCapturing` is triggered with `waitForRemainingTasks` false. + - Support stop capturing after the `PauseCapturing` method is triggered. +- Changed the logic of the `capturedResultItemTypes` setting of `SimplifiedCaptureVisionSettings`: + - If the result item types don't match the specified template, the method `UpdateSettings` will return the error code `EC_PARAMETER_VALUE_INVALID` with the message "The captured result item types do not match the task configurations in the template". + - Based on the `capturedResultItemTypes` setting, the irrelevant tasks will be removed from the template. + - The `capturedResultItemTypes` should include at least one of the `CRIT_BARCODE`, `CRIT_TEXT_LINE`, `CRIT_DETECTED_QUAD`, `CRIT_NORMALIZED_IMAGE`. Otherwise, the method `UpdateSettings` will return the error code `EC_PARAMETER_VALUE_INVALID` with the message "The captured result item types should contain at least one task result type". +- Refactored the `CContour` class. Please view API reference - `CContour` class for more information. +- The destructor functions of the following classes are changed to protected: + - `CCapturedResult` + - `CCapturedResultItem` + - `CRegionObjectElement` + - `CIntermediateResultUnit` + - `CCandidateBarcodeZonesUnit` + - `CLocalizedBarcodesUnit` + - `CScaledUpBarcodeImageUnit` + - `CDeformationResistedBarcodeImageUnit` + - `CComplementedBarcodeImageUnit` + - `CDecodedBarcodesUnit` + - `CDecodedBarcodeElement` + - `CLocalizedBarcodeElement` + - `CDecodedBarcodesResult` + - `CBarcodeResultItem` +- Change the compiler option of the runtime library of Windows DLLs from MD to MT. +- The `DeepNeuralNetwork` module is separated from the `DynamsoftImageProcessing` module. + +## 10.0.20 (10/26/2023) + +### New + +- Added the following preset templates: + - `PT_READ_BARCODES_SPEED_FIRST` + - `PT_READ_BARCODES_READ_RATE_FIRST` + - `PT_READ_SINGLE_BARCODE` +- Added a new parameter `Page` to `ImageSource` object. +- Added a new method `SetPages` to the class `CDirectoryFetcher` and class `CFileFetcher`. +- Added a new parameter `scaleDownThreshold` to the struct `SimplifiedBarcodeReaderSettings`. +- Added `CImageSourceErrorListener` to receive the errors from an image source. +- Added a new method `SetErrorListener` to class `CImageSourceAdapter` to add the `CImageSourceErrorListener`. +- Added a new parameter `minImageCaptureInterval` which can be set via the struct `SimplifiedCaptureVisionSettings` or the `CaptureVisionTemplate` object of a JSON template file. +- Added "UNKNOWN" as a supported and default value of the `TextDetectionMode.Direction` parameter. +- Added the following error codes: + - `EC_FILE_ALREADY_EXISTS` + - `EC_CREATE_FILE_FAILED` + - `EC_IMGAE_DATA_INVALID` + +### Improved + +- Added ability to output all templates via methods `OutputSettings` and `OutputSettingsToFile` by specifying "*" for the parameter `templateName`. +- The class `CDirectoryFetcher` and `CFileFetcher` will be able to return error codes via `CImageSourceErrorListener`. +- Updated the error codes of the method `SaveToFile` of the class `CImageManager`. +- Optimized the logic to support calling `CIntermediateResultManager.AddResultReceiver` and `CIntermediateResultManager.RemoveResultReceiver` after StartCapturing. +- Optimized the error handling when `InitLicense` with offline license. + +### Fixed + +- Small fixes and tweaks. + +### Changed + +- Changed the upper limit to the `DuplicateForgetTime`, which is 3 minutes. +- Changed the timing of `OnOriginalImageResultReceived` so that it is triggered immediately after receiving the image. +- Changed the constructors of the following classes from public to protected. + - `CImageTag` + - `CCapturedResultReceiver` + - `CCapturedResultFilter` + - `CImageSourceAdapter` + - `CProactiveImageSourceAdapter` + - `CIntermediateResultUnit` + - `CIntermediateResultReceiver` +- Removed `BF_PATCH_CODE` from the combined value of `BF_DEFAULT` as decoding `Patch Code` is not supported by default. +- Removed const modifiers of all callback methods of class `CCapturedResultReceiver` and class `CIntermediateResultReceiver`. + +## 10.0.10 (08/08/2023) + +### New + +- Added a new class `CVector4` in the core module. +- Added new methods `SetTransformMatrix` and `GetTransformMatrix` to the class `CIntermediateResultUnit`. Enumeration `TransformMatrixType` is also added to support users specifying the type of the target matrix. +- Added `CRIT_NORMALIZED_IMAGE` to the available result types of result cross-verification. +- Added method `GetContours` to the class `CContourUnit` to get all the `CContour` objects contained in the unit and their hierarchies. + +### Improved + +- Improved the implementation of the StopCapturing method to prevent deadlock when invoked in the management thread. + +### Fixed + +- Fixed a bug where the local license is not successfully updated in some cases. +- Fixed crash bugs that happen in rare cases. +- Other small fixes and tweaks. + +### Changed + +- Renamed methods `GetCount` to `GetItemsCount`. This change applies to the following classes: + - `CCapturedResult` + - `CDecodedBarcodesResult` +- Renamed method `GetSourceImageHashId` to `GetOriginalImageHashId`. This change applies to the following classes: + - `CIntermediateResultUnit` + - `CCapturedResult` + - `CDecodedBarcodesResult` +- Renamed method `GetSourceImageTag` to `GetOriginalImageTag`. This change applies to the following classes: + - `CIntermediateResultUnit` + - `CCapturedResult` + - `CDecodedBarcodesResult` +- Renamed method `OnRawImageResultReceived` to `OnOriginalImageResultReceived`. This change applies to the following classes: + - `CapturedResultReceiver` + - `CapturedResultFilter` +- Renamed a method of `CIntermediateResultManager` from `GetRawImage` to `GetOriginalImage`. +- Renamed the class `CRawImageResultItem` to `COriginalImageResultItem`. +- Renamed an enumeration member of `CapturedResultItemType` from `CRIT_RAW_IMAGE` to `CRIT_ORIGINAL_IMAGE`. +- Renamed an enumeration member of `BufferOverflowProtectionMode` from `BOPM_APPEND` to `BOPM_UPDATE`. +- Renamed the following methods of class `CMultiFrameResultCrossFilter`: + - from `EnableResultVerification` to `EnableResultCrossVerification`. + - from `isResultVerificationEnable` to `isResultCrossVerificationEnabled`. + - from `EnableDuplicateFilter` to `EnableResultDeduplication`. + - from `isDuplicateFilterEnabled` to `isResultDeduplicationEnabled`. +- Renamed the enumeration `TargetType` to `RasterDataSource`. + +### Removed + +- Removed methods `SetLocalToSourceImageTransformMatrix` and `GetLocalToSourceImageTransformMatrix` from class `CIntermediateResultUnit`. +- Removed methods `SetRotationTransformMatrix` and `GetRotationTransformMatrix` from class `CIntermediateResultUnit`. +- Removed methods `GetCount` and `GetContour` from class `CContourUnit`. Use the method `GetContours` instead. + +## 10.0.0 (07/04/2023) + +### Highlights + +`DynamsoftBarcodeReader` SDK has been revamped to integrate with `DynamsoftCaptureVision (DCV)` architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually. + +* `DynamsoftCaptureVision` architecture consists of: + * `ImageSourceAdapter(ISA)`, the standard input interface for you to convert image data from different sources into the standard input image data. In addition, `ISA` incorporates an image buffer management system that allows instant access to the buffered image data. + * `CaptureVisionRouter (CVR)`, an engine for you to update templates, retrieve images from `ISA`, coordinate corresponding functional products and dispatch the results to the receivers. + * Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required. + * Result receiver interfaces. You can implement `CapturedResultReceiver (CRR)` to receive the `CapturedResults` that output when the processing on an image is finalized. You can also implement `IntermediateResultReceiver (IRR)` to get timely results from different stages of the workflow. +* The parameter template system has been comprehensively upgraded. + * Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file. + * Extended the feature of the ROI system. By configuring the `target ROI` parameters, you can not only specify an `ROI` on the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. + * The image processing parameters are separated from the task parameters so that the template settings become more clear and concise. +* The `intermediate result` system has been improved. + * Achieved the `intermediate result` sharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable the `intermediate result` sharing. The library can recognize all the reusable results automatically based on the template file you uploaded. + * The readability and interactivity of the `intermediate results` are enhanced. `IntermediateResultReceiver` allows you to receive up to 27 different types of `Intermediate results`. You can clearly read which stage of the algorithm each result is output from. In addition, `IntermediateResultManager` allows you to intervene in the workflows by modifying the `intermediate results`. \ No newline at end of file diff --git a/programming/cplusplus/release-notes/cpp-7.md b/programming/cplusplus/release-notes/cpp-7.md new file mode 100644 index 00000000..68b15f9f --- /dev/null +++ b/programming/cplusplus/release-notes/cpp-7.md @@ -0,0 +1,470 @@ +--- +layout: default-layout +title: Release Notes v7.6.0 and below - Dynamsoft Barcode Reader SDK C++ Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK C++ Edition v7.6.0 and below. +keywords: release notes, cpp +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for C++ - 7.6.0 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.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 an optimized decoding method for linear barcodes in vector PDF files. The vector PDF file can be decoded without rasterizing, increase decoding efficiency. +- 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. +- Added the capability to obtain accompanying texts at the top or bottom of a linear barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> AccompanyingTextRecognitionModes. +- 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. + +## 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. +- Added a method, DBR_GetModeArgument()/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 a new struct FrameDecodingParameters, added methods DBR_InitFrameDecodingParameters()/InitFrameDecodingParameters(), and DBR_StartFrameDecodingEx()/StartFrameDecodingEx() to start a new thread to decode barcodes. + +### 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 + +- Updated PDF component to v10.3.2.0806 +- 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.3 (07/03/2019) + +### FIXED + +- Updated the license verification process for development license and desktop runtime license. The old license verification process may lead to license error on some computers. +- Small fixes and tweaks. + +## 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. + +### 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 + +- Decreased misreading rate for 1D barcodes. +- Enhanced performance for reading multiple barcodes from an image. +- Greatly improved recognition rate for QR Code and DataMatrix on complicated backgrounds. +- Greatly improved recognition rate for barcodes on grid background. +- Optimized localization for PDF417 without enough quiet zone. + +### NEW RESOURCES + +- New console samples – Decode Single Barcode, Decode Multi-Barcodes, Read Barcode from Region, Trigger Event after Decoding - are now available in the installer. + +### FIXED + +- Small fixes and tweaks. + +## 6.1.0 (05/14/2018) + +### NEW + +- Added GetTemplateSettings and SetTemplateSettings methods which allow you to review and adjust barcode reading settings at runtime. + +### IMPROVED + +- Improved localization algorithm for barcodes rotated in a degree or with poor perspective. +- Faster read speed for QR, Data Matrix and PDF417 barcodes. + +## 6.0.0 (03/30/2018) + +### NEW + +- Easy and flexible to create a custom barcode reading template for your specific use case. + +### IMPROVED + +- Improved average reading speed by 50% in a four-core CPU environment. +- Improved the reading accuracy and speed for blurred QRCode and DataMatrix. +- Improved the speed for reading barcodes directly from a computer/phone screen. +- Improved reading speed for small barcodes in high-resolution images. + +### FIXED + +- Small fixes and tweaks. + +## 5.2.0 (09/08/2017) + +### IMPROVED + +- Improved the localization and recognition algorithms for PDF417 barcodes. +- Optimized the de-blur algorithm for 1D barcodes to improve the recognition accuracy. +- Optimized the timeout support. Now it is possible to stop barcode recognition by timeout. +- Increased QR Code and DataMatrix barcode recognition speed for B&W images. + +### FIXED + +- Small fixes and tweaks. + +## 5.1.0 (05/25/2017) + +### FIXED + +- Fixed a bug that caused incorrect result points if de-blur algorithm is used when reading 1D barcodes. +- Other small fixes and tweaks. + +## 5.0.0 (03/07/2017) + +### NEW + +- New de-blur algorithm for 1D barcodes to improve the accuracy when scanning linear barcodes from out-of-focus, blurred images. +- New multi-thread processing to improve the scanning accuracy and speed of 1D and PDF417 barcodes. +- Added new APIs that enable you to specify page numbers, barcode regions, barcode width, barcode height, barcode module size and barcode angles for barcode detection. These greatly improve the decoding workflow and barcode reading efficiency. +- Added ImageCaptureDevice API to set the capture device (scanner, camera or fax) being used to scan barcode images. When set, it will use a better and more appropriate image processing technique to the images captured from that device. +- Added TimeoutPerPage API to set the maximum amount of time for reading barcodes on one page. +- Added BarcodeColorMode API to set the ink color for barcodes searching. +- Added BarcodeTextEncoding API to set barcode text encoding mode so that you can display special characters properly. +- Added ReturnUnrecognizedBarcode API to set whether to return unrecognized barcodes. +- Added LoadSetting API so that you can now load the settings to be used in recognizing barcodes from a JSON string. +- Added Angle API to set the angle ranges of barcodes for scanning. +- Added Angle property to return the rotation angle of a detected barcode. + +### IMPROVED + +- Combined C and C++ header files into one to simplify the reference of the header file. + +### FIXED + +- Fixed an issue where the DLL crashes when reading DataMatrix in multiple threads. +- Other small fixes and tweaks. + +## 4.3.0 (10/13/2016) + +### NEW + +- New localization algorithm was implemented for 1D barcode scanning to improve barcode reading speed. +- New multi-thread processing was implemented for 2D barcode reading to improve decoding accuracy. + +### IMPROVED + +- Improved recognition for perspective QR Codes. +- Optimized decoding performance for large size, special angle and multiple 1D barcodes. +- Improved sample applications to support Visual Studio 2015. +- Other small fixes and tweaks. + +### NEW RESOURCES + +- New samples are now available in the Code Gallery: +- RESTful Web Service - implements server-side RESTful web service in C# for barcode reading. + +## 4.2.0 (04/08/2016) + +### 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. +- Improved ResultPoints Property to adjust the sequence of barcode corner points. + +## 4.1.0 (01/21/2016) + +### NEW + +- Added new APIs DecodeStream, DecodeStreamRect, DecodeBase64String and DecodeBase64StringRect for C, C++ DLL. +- Added Error Code -10022: "PDF Rasterizer DLL Missing". + +### IMPROVED + +- Improved positioning algorithm to better identify and localize DataMatrix barcodes. + +## 4.0.0 (11/03/2015) + +### NEW + +- Added support for reading PDF417 and DataMatrix. +- Added reading barcode from all types of PDF file. +- A user-friendly demo guide program – "Dynamsoft Barcode Reader SDK" - is now available. You can run it from the shortcut icon on the desktop and have an overall view of all demos & sample code. +- An out-of-box application - "Process documents with barcode" - is now available. It can rename, split or classify documents via barcodes on images and we provide overall view of all demos & sample code. + +## 3.0.0 (08/13/2015) + +### NEW + +- Added 2D Barcode Reader to support reading QR Code. +- Added new APIs DBR_GetVersion and DBR_GetErrorString for the Windows Edition's C/C++ DLL. + +### IMPROVED + +- Improved 1D Barcode Reader to support reading Industrial 2 of 5. + +## 2.1.0 (06/23/2015) + +### NEW + +- Reading image format of GIF is supported. + +### IMPROVED + +- Improved CODE128 decoding +- Improved recognition of CODE39, CODE93, etc. +- Improved the ASP.NET sample's user interface. + +## 2.0.0 (05/12/2015) + +### NEW + +- Dynamsoft Barcode Reader is now made available as a standalone product, in addition to working as an add-on for Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. +- Windows Edition: provides C, C++, ActiveX / COM and .NET APIs +- Supported barcode types now include: + Code39, Code128, Code93, Codabar, ITF, EAN13, EAN8, UPCA and UPCE +- Supported image formats include BMP, JPG, PNG, (single or multi-page) TIFF, Windows DIB and .NET Bitmap +- Various code samples (in C/C++/C#/Java/VB/VB.NET) available. + +## 1.0.0 (01/20/2015) + +### NEW + +- Dynamsoft's barcode recognition engine has been in existence since April, 2012. It works as an add-on to our Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. In this new release, we are changing the product name to Dynamic Barcode Reader and the version to 1.0. +- Updates in this version include 1D barcode improvements in accuracy and performance for Code 39 and Code128 recognition. Also image preprocessing is improved. For Code 128, the recognition ratio and speed have jumped up by as much as 30 percent. \ No newline at end of file diff --git a/programming/cplusplus/release-notes/cpp-8.md b/programming/cplusplus/release-notes/cpp-8.md new file mode 100644 index 00000000..7666c80c --- /dev/null +++ b/programming/cplusplus/release-notes/cpp-8.md @@ -0,0 +1,158 @@ +--- +layout: default-layout +title: Release Notes v8.x - Dynamsoft Barcode Reader SDK C++ Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK C++ Edition v8.x. +keywords: release notes, cpp +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for C++ SDK - 8.x + +## 8.8.0 (10/12/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. + +### Edition Highlights + +- Added ARM64 components to the SDK. + +### Changelog + +#### New + +- Added ARM64 components to the SDK. +- Added a new `LocalizationModes` item `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`, `BarcodeWidthRangeArray`, `BarcodeAngleRangeArray` and `MinRatioOfBarcodeZoneWidthToHeight`. +- 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` is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +## 8.6.0 (07/15/2021) + +### 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 two DeblurMode Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added methods `InitDLSConnectionParameters` and `InitLicenseFromDLS` in `CBarcodeReader` class to replace methods `InitLTSConnectionParameters` and `InitLicenseFromLTS`. +- Added class `DM_DLSConnectionParameters` to replace class `DM_LTSConnectionParameters`. + +#### Improved + +- Improved the `confidence` algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +## 8.4.0 (06/08/2021) + +### New + +- Added a new method `GetIdleInstancesCount` to return the number of available instances when using the 'per concurrent instance' licensing model. +- Added the `organizationID` property for license authentication. +- Added a new attribute `isMirrored` to the `TextResult` class. `isMirrored` returns whether the barcode is mirrored. +- Added a new attribute `isDPM` to the `TextResult` 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` is not set. + +## 8.2.0 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to `RegionPredetectionModes` that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to `RPM_GENERAL_HSV_CONTRAST`. + +### 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` Struct. + +### 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 `PublicRuntimeSettings` struct 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 the struct `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.0 (11/17/2020) + +### New + +- Implemented the mechanism of loading libraries dynamically at runtime when `Parameter Mode Enumerations` are used (except *_AUTO and *_SKIP). Use LibraryFileName and LibraryParameters to configure. +- (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. + +### Fixed + +- Fixed a crash issue that could happen when conflicts occur on Linux. + +### 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. \ No newline at end of file diff --git a/programming/cplusplus/release-notes/cpp-9.md b/programming/cplusplus/release-notes/cpp-9.md new file mode 100644 index 00000000..0fa7f8b7 --- /dev/null +++ b/programming/cplusplus/release-notes/cpp-9.md @@ -0,0 +1,226 @@ +--- +layout: default-layout +title: Release Notes v9.x - Dynamsoft Barcode Reader SDK C++ Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK C++ Edition v9.x. +keywords: release notes, c++ +needGenerateH3Content: false +--- + +# Release Notes for C++ Edition - 9.x + +## 9.6.60 (12/23/2025) + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.40 (03/14/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. + +### Fixed + +- Fixed crash bugs in the barcode decoding algorithm. +- Fixed a bug where the location of the barcode result(s) might be incorrect. + +### Changed + +- Changed the error message of error `DBRERR_PDF_DLL_MISSING` from "The PDF DLL is missing" to "The PDF library could not be loaded". +- Added a new error code `DMERR_LICENSE_CACHE_USED`, which is returned when failing to connect to the license server but a valid license cache is available. Error codes `DMERR_FAILED_TO_REACH_DLS` and `DMERR_LICENSE_SYNC_FAILED` are no longer returned on this scenario. + + +## 9.6.30 (08/29/2023) + +### New + +- Added a new method `GetInstancePoolStatus` and struct `InstancePoolStatus` to provide a real-time view of how the concurrent instance licenses are being utilized. This applies only if you are using a concurrent instance license. + +### Improved + +- Optimized the concurrent instance management and license usage statistics when using a concurrent instance license. +- Extended the availability of methods `GetInstance` and `Recycle`, making them accessible to all licensing modes. +- Implemented additional checkpoints to ensure timely timeout and termination. + +### Fixed + +- Fixed a bug where barcode results varied depending on the operating system being used. +- Fixed a crash bug when initializing a license with a segmented license string. +- Fixed some bugs related to the barcode format settings when they are defined in the `RegionDefinition` object of the template. + +## 9.6.20 (03/16/2023) + +### Fixed + +- Fixed a bug where the methods InitLicense and GetInstance may not work as expected when using concurrent instance license. +- Fixed a bug where license authorization may fail when the main license server is not available. +- Other small fixes and tweaks. + +## 9.6.10 (01/10/2023) + +### New + +- Added a new method `SetLicenseCachePath` in the `CBarcodeReader` class to support customizing the license cache saving path. +- Add a new method `GetDeviceUUID` in the `CBarcodeReader` class to support getting device UUID for license activating. +- Added error code `DMERR_LICENSE_BUFFER_FAILED` to the potential error list of the license activation methods and decode methods. The error code is returned when the directory of the license cache is inaccessible. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +### Fixed + +- Fixed a crash bug when using a online license key on ARM64 environment. +- Fixed a crash bug when using a online license key on the AWS lambda environment. +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter `RequireStartStopChars` is set to 0. +- Other small fixes and tweaks. + +## 9.6.0 (11/29/2022) + +### Version Highlights + +- **Image orientation** handling is supported by a new feature. With the new feature, you can: + - Get a **TranformationMatrix** along with the barcode location result. + - Implement coordinates transformation on the barcode location result with the **TransformationMatrix**. +- **DotCode** decoding is improved by optimizing the localization of DotCodes that are close to one another. +- **EAN8 barcode** decoding is improved by honing the accuracy of localization algorithms. +- **QR code** localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image. +- **Mirrored rectangular DataMatrix barcode** is supported by implementing `MirrorMode` when localizing the barcodes. +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +### Edition Highlights + +- Added duplicate barcode filter feature in video mode. You can implement duplicate filter to ignore duplicate barcodes for a period. + +### Changelog + +#### New + +- Added a property `orientation` to struct `FrameDecodingParameters` to set the orientation information of the video frame. +- Added `orientation` to struct ImageData to set the orientation information. +- Enabled decoding methods `DecodeFile()`, `DecodeFileinMemory()` and `DecodeBase64String()` to read EXIF data of the given image so that the library can obtain the orientation information of the image file. +- Overloaded method `DecodeBuffer()` with a new parameter `orientation` to set the orientation information of the image data. +- Added a property `transformationMatrix` to struct `LocalizationResult` so that the library can output a transformation matrix for transforming the localization coordinates to image's natural orientation. +- Added a method `TransformCoordinates()` to support transforming the coordinates of a point based on a given transformation matrix. +- Added a property `duplicateForgetTime` to struct `FrameDecodingParameters` to set the time period used to filter out duplicate results found in frames. +- Added a method `SetUniqueBarcodeCallback()` to set callback function to obtain unique barcode result. +- Added properties `hasLeftRowIndicator` and `hasRightRowIndicator` to struct `PDF417Details` to return whether the left and right row indicator of the PDF417 barcode is detected. +- Added a member `BF2_ALL` to enumeration `BarcodeFormatIds_2` to support setting all barcode formats in BarcodeFormat group 2 with one enumeration. +- Extended the features of parameter `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Supported 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 accuracy of EAN8 localization result(s). +- Improved the localization of mirrored DataMatrix barcode by implementing `MirrorMode`. + +#### Fixed + +- Fixed a bug that DotCodes might not be decoded when they are densely arranged. +- Fixed a crash bug when trying to output a template which included `BarcodeTextRegExPattern`. +- Other small fixes and tweaks. + +## 9.4.0 (08/30/2022) + +### Highlights + +- **DotCode** decoding has been improved by optimizing the localization and decoding algorithm. +- **Stacked**, **skewed** or **perspective distorted OneD barcode** decoding has been improved. + +### Changelog + +#### New + +- Added an argument `IsOneDStacked` to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter `PatchCodeSearchingMargins` to specify the searching area of PatchCode. +- Added the supported data format of `FormatSpecification.PartitionModes` to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. + +#### 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`, `ExtendedResult` and `LocalizationResult`. All the barcode format strings will be returned by the attribute `barcodeFormatString`. + +## 9.2.0 (06/07/2022) + +### 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` to set a human-readable name that identifies the device. + +#### Fixed + +- Fixed a bug that `InitLicense` failed when using [online license](https://www.dynamsoft.com/license-server/docs/about/terms.html?ver=latest#online-license) on Linux ARM 32-bit system. + +## 9.0.0 (03/15/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 `BarcodeFormat` to specify newly supported barcode format, Code 11. +- Added `BF2_PHARMACODE_ONE_TRACK`, `BF2_PHARMACODE_TWO_TRACK` and `BF2_PHARMACODE` under Enumeration `BarcodeFormat_2` to specify newly supported barcode format, Pharmacode. +- Added a new error code `DBRERR_PHARMACODE_LICENSE_INVALID` which will be returned when the license of Pharmacode is invalid. +- Added `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` under Enumeration `DeformationResistingMode` to apply new deformation resisting modes. +- Added a parameter `FormatSpecification.PartitionModes` +- Added a parameter `FormatSpecification.VerifyCheckDigit` +- Added an Argument `ConfidenceThreshold` to the `LocalizationModes` mode arguments. + +#### Changed + +- Changed method `InitLicense` to a static method and added two more parameters to return detailed error message. +- Changed value of BF_ONED under Enumeration `BarcodeFormat` to 0x003007FF to have BF_CODE_11 combined. +- Changed value of BF_ALL under Enumeration `BarcodeFormat` to 0xFE3FFFFF to have BF_CODE_11 combined. +- Changed the behaviour of `DeformationResistingMode` DRM_GENERAL which now only applies basic process to resist deformation. +- Changed the return value of the method `GetIdleInstancesCount` from 0 to -1 when the available count needs to be updated from server by calling InitLicense. + + +#### Fixed +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. +- Fixed a bug that Function Code 1 (FNC1) character would not return if it was in the first position of GS1-128 codes. +- Other small fixes and tweaks. + + +#### Deprecated + +The following items are now deprecated. They still work in this version but could be removed in the near future. +- Method `InitLicenseFromServer` +- Method `InitLicenseFromLicenseContent` +- Method `OutputLicenseToString` +- Method `OutputLicenseToStringPtr` +- Method `FreeLicenseString` +- Method `InitDLSConnectionParameters` +- Method `InitLicenseFromDLS` +- Enumeration `DM_ChargeWay` +- Enumeration `DM_DeploymentType` +- Enumeration `DM_LicenseModule` +- Enumeration `DM_UUIDGenerationMethod` +- Enumeration `Product` \ No newline at end of file diff --git a/programming/cplusplus/release-notes/index.md b/programming/cplusplus/release-notes/index.md index 64165371..97beb5f3 100644 --- a/programming/cplusplus/release-notes/index.md +++ b/programming/cplusplus/release-notes/index.md @@ -8,62 +8,62 @@ needAutoGenerateSidebar: false # Release Notes - C++ Edition -- [11.4.1000 (02/05/2026)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1141000-02052026) -- [11.2.5000 (12/16/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1125000-12162025) -- [11.2.1000 (10/14/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1121000-10142025) -- [11.0.6000 (08/06/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1106000-08062025) -- [11.0.4000 (07/15/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1104000-07152025) -- [11.0.3000 (05/13/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1103000-05132025) -- [11.0.1000 (03/04/2025)]({{ site.dbr_cpp_release_notes_v11 }}cpp-11.html#1101000-03042025) -- [10.4.2000 (10/10/2024)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#1042000-10102024) -- [10.4.10 (07/23/2024)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#10410-07232024) -- [10.2.10 (03/01/2024)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#10210-03012024) -- [10.2.0 (01/16/2024)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#1020-01162024) -- [10.0.20 (10/26/2023)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#10020-10262023) -- [10.0.10 (08/08/2023)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#10010-08082023) -- [10.0.0 (07/04/2023)]({{ site.dbr_cpp_release_notes_v10 }}cpp-10.html#1000-07042023) -- [9.6.40 (03/14/2024)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#9640-03142024) -- [9.6.30 (08/29/2023)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#9630-08292023) -- [9.6.20 (03/16/2023)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#9620-03162023) -- [9.6.10 (01/10/2023)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#9610-01102023) -- [9.6.0 (11/29/2022)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#960-11292022) -- [9.4.0 (08/30/2022)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#940-08302022) -- [9.2.0 (06/07/2022)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#920-06072022) -- [9.0.0 (03/15/2022)]({{ site.dbr_cpp_release_notes_v9 }}cpp-9.html#900-03152022) -- [8.8.0 (10/12/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#880-10122021) -- [8.6.0 (07/15/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#860-07152021) -- [8.4.0 (06/08/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#840-06082021) -- [8.2.0 (03/17/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#812-01222021) -- [8.1.0 (01/12/2021)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#810-01122021) -- [8.0.0 (11/17/2020)]({{ site.dbr_cpp_release_notes_v9 }}cpp-8.html#800-11172020) -- [7.6.0 (09/01/2020)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#750-07222020) -- [7.4.0 (04/16/2020)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#740-04162020) -- [7.3.0 (01/02/2020)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#730-01022020) -- [7.2.2 (11/13/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#722-11132019) -- [7.2.1 (11/12/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#721-11122019) -- [7.2.0 (09/24/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#720-09242019) -- [7.1.0 (08/15/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#710-08152019) -- [7.0.0 (07/11/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#700-07112019) -- [6.5.3 (07/03/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#653-07032019) -- [6.5.2 (05/28/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#652-05282019) -- [6.5.1 (04/16/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#651-04162019) -- [6.5.0 (02/26/2019)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#650-02262019) -- [6.4.1 (11/22/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#641-11222018) -- [6.4.0 (10/15/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#640-10152018) -- [6.3.0 (08/16/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#630-08162018) -- [6.2.0 (06/28/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#620-06282018) -- [6.1.0 (05/14/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#610-05142018) -- [6.0.0 (03/30/2018)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#600-03302018) -- [5.2.0 (09/08/2017)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#520-09082017) -- [5.1.0 (05/25/2017)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#510-05252017) -- [5.0.0 (03/07/2017)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#500-03072017) -- [4.3.0 (10/13/2016)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#430-10132016) -- [4.2.0 (04/08/2016)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#420-04082016) -- [4.1.0 (01/21/2016)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#410-01212016) -- [4.0.0 (11/03/2015)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#400-11032015) -- [3.0.0 (08/13/2015)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#300-08132015) -- [2.1.0 (06/23/2015)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#210-06232015) -- [2.0.0 (05/12/2015)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#200-05122015) -- [1.0.0 (01/20/2015)]({{ site.dbr_cpp_release_notes_v9 }}cpp-7.html#100-01202015) \ No newline at end of file +- [11.4.1000 (02/05/2026)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1141000-02052026) +- [11.2.5000 (12/16/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1125000-12162025) +- [11.2.1000 (10/14/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1121000-10142025) +- [11.0.6000 (08/06/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1106000-08062025) +- [11.0.4000 (07/15/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1104000-07152025) +- [11.0.3000 (05/13/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1103000-05132025) +- [11.0.1000 (03/04/2025)]({{ site.dbr_cpp_release_notes }}cpp-11.html#1101000-03042025) +- [10.4.2000 (10/10/2024)]({{ site.dbr_cpp_release_notes }}cpp-10.html#1042000-10102024) +- [10.4.10 (07/23/2024)]({{ site.dbr_cpp_release_notes }}cpp-10.html#10410-07232024) +- [10.2.10 (03/01/2024)]({{ site.dbr_cpp_release_notes }}cpp-10.html#10210-03012024) +- [10.2.0 (01/16/2024)]({{ site.dbr_cpp_release_notes }}cpp-10.html#1020-01162024) +- [10.0.20 (10/26/2023)]({{ site.dbr_cpp_release_notes }}cpp-10.html#10020-10262023) +- [10.0.10 (08/08/2023)]({{ site.dbr_cpp_release_notes }}cpp-10.html#10010-08082023) +- [10.0.0 (07/04/2023)]({{ site.dbr_cpp_release_notes }}cpp-10.html#1000-07042023) +- [9.6.40 (03/14/2024)]({{ site.dbr_cpp_release_notes }}cpp-9.html#9640-03142024) +- [9.6.30 (08/29/2023)]({{ site.dbr_cpp_release_notes }}cpp-9.html#9630-08292023) +- [9.6.20 (03/16/2023)]({{ site.dbr_cpp_release_notes }}cpp-9.html#9620-03162023) +- [9.6.10 (01/10/2023)]({{ site.dbr_cpp_release_notes }}cpp-9.html#9610-01102023) +- [9.6.0 (11/29/2022)]({{ site.dbr_cpp_release_notes }}cpp-9.html#960-11292022) +- [9.4.0 (08/30/2022)]({{ site.dbr_cpp_release_notes }}cpp-9.html#940-08302022) +- [9.2.0 (06/07/2022)]({{ site.dbr_cpp_release_notes }}cpp-9.html#920-06072022) +- [9.0.0 (03/15/2022)]({{ site.dbr_cpp_release_notes }}cpp-9.html#900-03152022) +- [8.8.0 (10/12/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#880-10122021) +- [8.6.0 (07/15/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#860-07152021) +- [8.4.0 (06/08/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#840-06082021) +- [8.2.0 (03/17/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#812-01222021) +- [8.1.0 (01/12/2021)]({{ site.dbr_cpp_release_notes }}cpp-8.html#810-01122021) +- [8.0.0 (11/17/2020)]({{ site.dbr_cpp_release_notes }}cpp-8.html#800-11172020) +- [7.6.0 (09/01/2020)]({{ site.dbr_cpp_release_notes }}cpp-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.dbr_cpp_release_notes }}cpp-7.html#750-07222020) +- [7.4.0 (04/16/2020)]({{ site.dbr_cpp_release_notes }}cpp-7.html#740-04162020) +- [7.3.0 (01/02/2020)]({{ site.dbr_cpp_release_notes }}cpp-7.html#730-01022020) +- [7.2.2 (11/13/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#722-11132019) +- [7.2.1 (11/12/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#721-11122019) +- [7.2.0 (09/24/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#720-09242019) +- [7.1.0 (08/15/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#710-08152019) +- [7.0.0 (07/11/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#700-07112019) +- [6.5.3 (07/03/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#653-07032019) +- [6.5.2 (05/28/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#652-05282019) +- [6.5.1 (04/16/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#651-04162019) +- [6.5.0 (02/26/2019)]({{ site.dbr_cpp_release_notes }}cpp-7.html#650-02262019) +- [6.4.1 (11/22/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#641-11222018) +- [6.4.0 (10/15/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#640-10152018) +- [6.3.0 (08/16/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#630-08162018) +- [6.2.0 (06/28/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#620-06282018) +- [6.1.0 (05/14/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#610-05142018) +- [6.0.0 (03/30/2018)]({{ site.dbr_cpp_release_notes }}cpp-7.html#600-03302018) +- [5.2.0 (09/08/2017)]({{ site.dbr_cpp_release_notes }}cpp-7.html#520-09082017) +- [5.1.0 (05/25/2017)]({{ site.dbr_cpp_release_notes }}cpp-7.html#510-05252017) +- [5.0.0 (03/07/2017)]({{ site.dbr_cpp_release_notes }}cpp-7.html#500-03072017) +- [4.3.0 (10/13/2016)]({{ site.dbr_cpp_release_notes }}cpp-7.html#430-10132016) +- [4.2.0 (04/08/2016)]({{ site.dbr_cpp_release_notes }}cpp-7.html#420-04082016) +- [4.1.0 (01/21/2016)]({{ site.dbr_cpp_release_notes }}cpp-7.html#410-01212016) +- [4.0.0 (11/03/2015)]({{ site.dbr_cpp_release_notes }}cpp-7.html#400-11032015) +- [3.0.0 (08/13/2015)]({{ site.dbr_cpp_release_notes }}cpp-7.html#300-08132015) +- [2.1.0 (06/23/2015)]({{ site.dbr_cpp_release_notes }}cpp-7.html#210-06232015) +- [2.0.0 (05/12/2015)]({{ site.dbr_cpp_release_notes }}cpp-7.html#200-05122015) +- [1.0.0 (01/20/2015)]({{ site.dbr_cpp_release_notes }}cpp-7.html#100-01202015) \ No newline at end of file diff --git a/programming/cplusplus/samples/index.md b/programming/cplusplus/samples/index.md index f4d6cc03..30275708 100644 --- a/programming/cplusplus/samples/index.md +++ b/programming/cplusplus/samples/index.md @@ -4,7 +4,6 @@ title: Samples - Dynamsoft Barcode Reader SDK C++ Edition description: Sample list page of Dynamsoft Barcode Reader C++ Edition. keywords: c++ needAutoGenerateSidebar: false -permalink: /programming/cplusplus/samples/index.html --- # Samples and Demos - C++ Edition diff --git a/programming/cplusplus/user-guide/index.md b/programming/cplusplus/user-guide/index.md index cbefcca9..10980593 100644 --- a/programming/cplusplus/user-guide/index.md +++ b/programming/cplusplus/user-guide/index.md @@ -3,7 +3,6 @@ layout: default-layout title: CPP Edition User Guide Index description: This is the user guide index page of Dynamsoft Barcode Reader CPP Edition. keywords: user guide index, CPP -permalink: /programming/cplusplus/user-guide/index.html --- # CPP Edition User Guide diff --git a/programming/cplusplus/user-guide/use-cases/index.md b/programming/cplusplus/user-guide/use-cases/index.md index 437232a1..f262d03c 100644 --- a/programming/cplusplus/user-guide/use-cases/index.md +++ b/programming/cplusplus/user-guide/use-cases/index.md @@ -4,7 +4,6 @@ title: Use Cases - Dynamsoft Barcode Reader SDK C++ Edition User Guide description: This page explores the use cases of Dynamsoft Barcode Reader CPP Edition. keywords: user guide, use cases, cpp breadcrumbText: Use Cases -permalink: /programming/cplusplus/user-guide/use-cases/index.html --- # Use Cases diff --git a/programming/dotnet/migrate-10-to-11.md b/programming/dotnet/migrate-from-v10/index.md similarity index 100% rename from programming/dotnet/migrate-10-to-11.md rename to programming/dotnet/migrate-from-v10/index.md diff --git a/programming/dotnet/migrate-9-to-11.md b/programming/dotnet/migrate-from-v9/index.md similarity index 100% rename from programming/dotnet/migrate-9-to-11.md rename to programming/dotnet/migrate-from-v9/index.md diff --git a/programming/dotnet/release-notes/dotnet-10.md b/programming/dotnet/release-notes/dotnet-10.md new file mode 100644 index 00000000..c3959007 --- /dev/null +++ b/programming/dotnet/release-notes/dotnet-10.md @@ -0,0 +1,75 @@ +--- +layout: default-layout +title: Release Notes v10.x - Dynamsoft Barcode Reader SDK .NET Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK .NET Edition v10.x. +keywords: release notes, .NET +needGenerateH3Content: false +--- + +# Release Notes for .NET Edition - 10.x + +## 10.4.2000 (10/10/2024) + +### Highlights + +- Added to-the-latest overlapping feature. +- Improved the error handling logic of `Capture`, `StartCapturing` and `InitLicense` methods to clearly report a licensing issue. + +### Changelogs + +#### New + +- Added new functions `SetMaxOverlappingFrames`, `GetMaxOverlappingFrames`, `EnableLatestOverlapping` and `IsLatestOverlappingEnabled` to the class `CMultiFrameResultCrossFilter`. + +- Added new error codes + - `EC_LICENSE_WARNING` + - `EC_BARCODE_READER_LICENSE_NOT_FOUND` + +- Added new properties to the `QRCodeDetails` class + - `codewords` + - `dataMaskPattern` + +#### Fixed + +- Fixed a crash bug caused by the usage of RegEx. +- Fixed a bug that could prevent the reading of `GS1_DATABAR_EXPANDED_STACKED` barcodes. +- Small fixes and tweaks. + +#### Changed + +- Changed the template loading mode. By default, the library loads all template files from the `Templates` folder in the same directory as the library file. +- Changed the enumeration value of `EnumBarcodeFormat.BF_ALL` to 0xFFFFFFFEFFFFFFFF. +- Integrated the previously separate nuget packages directly into the `Dynamsoft.DotNet.BarcodeReader.Bundle` package. As a result, the following nuget packages have been announced as deprecated. + - Dynamsoft.DotNet.BarcodeReader + - Dynamsoft.DotNet.CaptureVisionRouter + - Dynamsoft.DotNet.Core + - Dynamsoft.DotNet.ImageProcessing + - Dynamsoft.DotNet.License + - Dynamsoft.DotNet.Utility + + +## 10.2.12 (06/19/2024) + +- Fixed a bug that caused 32-bit applications to crash on startup under .NET Framework. + +## 10.2.11 (06/12/2024) + +- Fixed a bug where calling the method `GetSimplifiedSettings` would throw a `System.IO.FileNotFoundException` with the message "Could not load file or assembly ...". + +## 10.2.10 (05/30/2024) + +### Highlights + +`DynamsoftBarcodeReader` SDK has been revamped to integrate with `DynamsoftCaptureVision (DCV)` architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually. + +* `DynamsoftCaptureVision` architecture consists of: + * `ImageSourceAdapter(ISA)`, the standard input interface for you to convert image data from different sources into the standard input image data. In addition, `ISA` incorporates an image buffer management system that allows instant access to the buffered image data. + * `CaptureVisionRouter (CVR)`, an engine for you to update templates, retrieve images from `ISA`, coordinate corresponding functional products and dispatch the results to the receivers. + * Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required. + * Result receiver interfaces. You can implement `CapturedResultReceiver (CRR)` to receive the `CapturedResults` that output when the processing on an image is finalized. +* The parameter template system has been comprehensively upgraded. + * Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file. + * Extended the feature of the ROI system. By configuring the `target ROI` parameters, you can not only specify an `ROI` on the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. + * The image processing parameters are separated from the task parameters so that the template settings become more clear and concise. +* The `intermediate result` system has been improved. + * Achieved the `intermediate result` sharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable the `intermediate result` sharing. The library can recognize all the reusable results automatically based on the template file you uploaded. \ No newline at end of file diff --git a/programming/dotnet/release-notes/dotnet-7.md b/programming/dotnet/release-notes/dotnet-7.md new file mode 100644 index 00000000..040eac12 --- /dev/null +++ b/programming/dotnet/release-notes/dotnet-7.md @@ -0,0 +1,473 @@ +--- +layout: default-layout +title: Release Notes v7.6.0 and below - Dynamsoft Barcode Reader SDK .NET Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK .NET Edition v7.6.0 and below. +keywords: release notes, .net +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for .NET SDK - 7.6.0 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.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 an optimized decoding method for linear barcodes in vector PDF files. The vector PDF file can be decoded without rasterizing, increase decoding efficiency. +- 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. +- Added the capability to obtain accompanying texts at the top or bottom of a linear barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> AccompanyingTextRecognitionModes. +- 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. +- Fixed a bug where the use of barcodeText and barcodeBytes was reversed, resulting in an incorrect value. + +## 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. + +## 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. +- Added a method, DBR_GetModeArgument()/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 a new struct FrameDecodingParameters, added methods InitFrameDecodingParameters(), and StartFrameDecodingEx() to start a new thread to decode barcodes. + +### 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 + +- Updated PDF component to v10.3.2.0806 +- 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. +- Fixed a bug that GetIntermediateResults would throw exception "Value cannot be null.\r\nParameter name: destination". +- Fixed a misspelling on Dynamsoft.Barcode.EnumBinarizationMode.BM_LOCAL_BLCOK. + +## 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.3 (07/03/2019) + +### FIXED + +- Updated the license verification process for development license and desktop runtime license. The old license verification process may lead to license error on some computers. +- Small fixes and tweaks. + +## 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 +- Added a new Dispose method to help release resources in time in the BarcodeReader Class. +- 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. + +### 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 + +- Decreased misreading rate for 1D barcodes. +- Enhanced performance for reading multiple barcodes from an image. +- Greatly improved recognition rate for QR Code and DataMatrix on complicated backgrounds. +- Greatly improved recognition rate for barcodes on grid background. +- Optimized localization for PDF417 without enough quiet zone. + +### NEW RESOURCES + +- New console samples – Decode Single Barcode, Decode Multi-Barcodes, Read Barcode from Region, Trigger Event after Decoding - are now available in the installer. + +### FIXED + +- Small fixes and tweaks. + +## 6.1.0 (05/14/2018) + +### NEW + +- Added GetTemplateSettings and SetTemplateSettings methods which allow you to review and adjust barcode reading settings at runtime. + +### IMPROVED + +- Improved localization algorithm for barcodes rotated in a degree or with poor perspective. +- Faster read speed for QR, Data Matrix and PDF417 barcodes. + +## 6.0.0 (03/30/2018) + +### NEW + +- Easy and flexible to create a custom barcode reading template for your specific use case. + +### IMPROVED + +- Improved average reading speed by 50% in a four-core CPU environment. +- Improved the reading accuracy and speed for blurred QRCode and DataMatrix. +- Improved the speed for reading barcodes directly from a computer/phone screen. +- Improved reading speed for small barcodes in high-resolution images. + +### FIXED + +- Small fixes and tweaks. + +## 5.2.0 (09/08/2017) + +### IMPROVED + +- Improved the localization and recognition algorithms for PDF417 barcodes. +- Optimized the de-blur algorithm for 1D barcodes to improve the recognition accuracy. +- Optimized the timeout support. Now it is possible to stop barcode recognition by timeout. +- Increased QR Code and DataMatrix barcode recognition speed for B&W images. + +### FIXED + +- Small fixes and tweaks. + +## 5.1.0 (05/25/2017) + +### FIXED + +- Fixed a bug that caused incorrect result points if de-blur algorithm is used when reading 1D barcodes. +- Other small fixes and tweaks. + +## 5.0.0 (03/07/2017) + +### NEW + +- New de-blur algorithm for 1D barcodes to improve the accuracy when scanning linear barcodes from out-of-focus, blurred images. +- New multi-thread processing to improve the scanning accuracy and speed of 1D and PDF417 barcodes. +- Added new APIs that enable you to specify page numbers, barcode regions, barcode width, barcode height, barcode module size and barcode angles for barcode detection. These greatly improve the decoding workflow and barcode reading efficiency. +- Added ImageCaptureDevice API to set the capture device (scanner, camera or fax) being used to scan barcode images. When set, it will use a better and more appropriate image processing technique to the images captured from that device. +- Added TimeoutPerPage API to set the maximum amount of time for reading barcodes on one page. +- Added BarcodeColorMode API to set the ink color for barcodes searching. +- Added BarcodeTextEncoding API to set barcode text encoding mode so that you can display special characters properly. +- Added ReturnUnrecognizedBarcode API to set whether to return unrecognized barcodes. +- Added LoadSetting API so that you can now load the settings to be used in recognizing barcodes from a JSON string. +- Added Angle API to set the angle ranges of barcodes for scanning. +- Added Angle property to return the rotation angle of a detected barcode. + +### FIXED + +- Fixed an issue where the DLL crashes when reading DataMatrix in multiple threads. +- Other small fixes and tweaks. + +## 4.3.0 (10/13/2016) + +### NEW + +- New localization algorithm was implemented for 1D barcode scanning to improve barcode reading speed. +- New multi-thread processing was implemented for 2D barcode reading to improve decoding accuracy. + +### IMPROVED + +- Improved recognition for perspective QR Codes. +- Optimized decoding performance for large size, special angle and multiple 1D barcodes. +- Improved sample applications to support Visual Studio 2015. +- Other small fixes and tweaks. + +### NEW RESOURCES + +- New samples are now available in the Code Gallery: + RESTful Web Service - implements server-side RESTful web service in C# for barcode reading. + +## 4.2.0 (04/08/2016) + +### 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. +- Improved ResultPoints Property to adjust the sequence of barcode corner points. + +## 4.1.0 (01/21/2016) + +### NEW + +- Added new APIs DecodeStream, DecodeStreamRect, DecodeBase64String and DecodeBase64StringRect for ActiveX/COM, .Net DLL. +- Added a new C# sample to demonstrate barcode reading from scanned document, captured photos and imported local image file. +- Added Error Code -10022: "PDF Rasterizer DLL Missing". + +### IMPROVED + +- Improved positioning algorithm to better identify and localize DataMatrix barcodes. + +## 4.0.0 (11/03/2015) + +### NEW + +- Added support for reading PDF417 and DataMatrix. +- Added reading barcode from all types of PDF file. +- A user-friendly demo guide program – "Dynamsoft Barcode Reader SDK" - is now available. You can run it from the shortcut icon on the desktop and have an overall view of all demos & sample code. +- An out-of-box application - "Process documents with barcode" - is now available. It can rename, split or classify documents via barcodes on images and we provide overall view of all demos & sample code. + +### IMPROVED + +- Improved the .NET DLL to support AnyCPU for enhanced platform integration. + +## 3.0.0 (08/13/2015) + +### NEW + +- Added 2D Barcode Reader to support reading QR Code. + +### IMPROVED + +- Improved 1D Barcode Reader to support reading Industrial 2 of 5. + +## 2.1.0 (06/23/2015) + +### NEW + +- Reading image format of GIF is supported. + +### IMPROVED + +- Improved CODE128 decoding. +- Improved recognition of CODE39, CODE93, etc. +- Improved the ASP.NET sample's user interface. + +## 2.0.0 (05/12/2015) + +### NEW + +- Dynamsoft Barcode Reader is now made available as a standalone product, in addition to working as an add-on for Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. +- Windows Edition: provides C, C++, ActiveX / COM and .NET APIs +- Supported barcode types now include: + Code39, Code128, Code93, Codabar, ITF, EAN13, EAN8, UPCA and UPCE +- Supported image formats include BMP, JPG, PNG, (single or multi-page) TIFF, Windows DIB and .NET Bitmap. +- Various code samples (in C/C++/C#/Java/VB/VB.NET) available. + +## 1.0.0 (01/20/2015) + +### NEW + +- Dynamsoft's barcode recognition engine has been in existence since April, 2012. It works as an add-on to our Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. In this new release, we are changing the product name to Dynamic Barcode Reader and the version to 1.0. +- Updates in this version include 1D barcode improvements in accuracy and performance for Code 39 and Code128 recognition. Also image preprocessing is improved. For Code 128, the recognition ratio and speed have jumped up by as much as 30 percent. \ No newline at end of file diff --git a/programming/dotnet/release-notes/dotnet-8.md b/programming/dotnet/release-notes/dotnet-8.md new file mode 100644 index 00000000..6c1d43cc --- /dev/null +++ b/programming/dotnet/release-notes/dotnet-8.md @@ -0,0 +1,152 @@ +--- +layout: default-layout +title: Release Notes v8.x - Dynamsoft Barcode Reader SDK .NET Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK .NET Edition v8.x. +keywords: release notes, .net +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for .NET SDK - 8.x + +## 8.8.0 (10/12/2021) + +### 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`, 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`, `BarcodeWidthRangeArray`, `BarcodeAngleRangeArray` and `MinRatioOfBarcodeZoneWidthToHeight`. +- 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` is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +## 8.6.0 (07/15/2021) + +### 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 two DeblurMode Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added methods `InitDLSConnectionParameters` and `InitLicenseFromDLS` in `BarcodeReader` class to replace methods `InitLTSConnectionParameters` and `InitLicenseFromLTS`. +- Added class `DMDLSConnectionParameters` to replace class `DMLTSConnectionParameters`. + +#### Improved + +- Improved the `confidence` algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +## 8.4.0 (06/08/2021) + +### New + +- Added a new method `GetIdleInstancesCount` to return the number of available instances when using the 'per concurrent instance' licensing model. +- Added the `organizationID` property for license authentication. +- Added a new attribute `isMirrored` to the `TextResult` class. `isMirrored` returns whether the barcode is mirrored. +- Added a new attribute `isDPM` to the `TextResult` 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 a bug that may cause the error 'Failed to get the address of DBR_CreateInstance' when initializing DBR. +- Fixed an issue that happens when calling initLicenseFromLTS if `handShakeCode` is not set. + +## 8.2.0 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to `RegionPredetectionModes` that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to `RPM_GENERAL_HSV_CONTRAST`. + +### 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.0 (01/12/2021) + +### New + +- Added support for MSI Code (Modified Plessey). +- Added a new member `BarcodeZoneMinDistanceToImageBorders` in the `PublicRuntimeSettings` struct 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 the struct `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.0 (11/17/2020) + +### New + +- Implemented the mechanism of loading libraries dynamically at runtime when `Parameter Mode Enumerations` are used (except *_AUTO and *_SKIP). Use LibraryFileName and LibraryParameters to configure. +- (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. +- The .NET assembly DLL file (Dynamsoft.BarcodeReader.dll) does not include compressed C++ DLLs. Now, users need to distribute Dynamsoft.BarcodeReader.dll, DynamsoftCommon.dll, x86/x64 folders with the application. \ No newline at end of file diff --git a/programming/dotnet/release-notes/dotnet-9.md b/programming/dotnet/release-notes/dotnet-9.md new file mode 100644 index 00000000..e6c69994 --- /dev/null +++ b/programming/dotnet/release-notes/dotnet-9.md @@ -0,0 +1,223 @@ +--- +layout: default-layout +title: Release Notes v9.x - Dynamsoft Barcode Reader SDK .NET Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK .NET Edition v9.x. +keywords: release notes, .net +needGenerateH3Content: false +--- + +# Release Notes for .NET Edition - 9.x + +## 9.6.60 (12/23/2025) + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.40 (03/14/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. + +### Fixed + +- Fixed crash bugs in the barcode decoding algorithm. +- Fixed a bug where the location of the barcode result(s) might be incorrect. + +### Changed + +- Changed the error message of error `DBRERR_PDF_DLL_MISSING` from "The PDF DLL is missing" to "The PDF library could not be loaded". +- Added a new error code `DMERR_LICENSE_CACHE_USED`, which is returned when failing to connect to the license server but a valid license cache is available. Error codes `DMERR_FAILED_TO_REACH_DLS` and `DMERR_LICENSE_SYNC_FAILED` are no longer returned on this scenario. + +## 9.6.30 (08/29/2023) + +### New + +- Added a new method `GetInstancePoolStatus` and class `InstancePoolStatus` to provide a real-time view of how the concurrent instance licenses are being utilized. This applies only if you are using a concurrent instance license. + +### Improved + +- Optimized the concurrent instance management and license usage statistics when using a concurrent instance license. +- Extended the availability of methods `GetInstance` and `Recycle`, making them accessible to all licensing modes. +- Implemented additional checkpoints to ensure timely timeout and termination. + +### Fixed + +- Fixed a bug where barcode results varied depending on the operating system being used. +- Fixed a crash bug when initializing a license with a segmented license string. +- Fixed some bugs related to the barcode format settings when they are defined in the `RegionDefinition` object of the template. + +## 9.6.20 (03/16/2023) + +### Fixed + +- Fixed a bug where the methods InitLicense and GetInstance may not work as expected when using concurrent instance license. +- Fixed a bug where license authorization may fail when the main license server is not available. +- Other small fixes and tweaks. + +## 9.6.10 (01/10/2023) + +### New + +- Added a new method `SetLicenseCachePath` in the `BarcodeReader` class to support customizing the license cache saving path. +- Add a new method `GetDeviceUUID` in the `BarcodeReader` class to support getting device UUID for license activating. +- Added error code `DMERR_LICENSE_BUFFER_FAILED` to the potential error list of the license activation methods and decode methods. The error code is returned when the directory of the license cache is inaccessible. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +### Fixed + +- Fixed a crash bug when using a online license key on ARM64 environment. +- Fixed a crash bug when using a online license key on the AWS lambda environment. +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter `RequireStartStopChars` is set to 0. +- Other small fixes and tweaks. + +## 9.6.0 (11/29/2022) + +### Version Highlights + +- **Image orientation** handling is supported by a new feature. With the new feature, you can: + - Get a **TranformationMatrix** along with the barcode location result. + - Implement coordinates transformation on the barcode location result with the **TransformationMatrix**. +- **DotCode** decoding is improved by optimizing the localization of DotCodes that are close to one another. +- **EAN8 barcode** decoding is improved by honing the accuracy of localization algorithms. +- **QR code** localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image. +- **Mirrored rectangular DataMatrix barcode** is supported by implementing `MirrorMode` when localizing the barcodes. +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +### Edition Highlights + +- Added duplicate barcode filter feature in video mode. You can implement duplicate filter to ignore duplicate barcodes for a period. + +### Changelog + +#### New + +- Added a property `Orientation` to class `FrameDecodingParameters` to set the orientation information of the video frame. +- Added `Orientation` to class ImageData to set the orientation information. +- Enabled decoding methods `DecodeFile()`, `DecodeFileinMemory()` and `DecodeBase64String()` to read EXIF data of the given image so that the library can obtain the orientation information of the image file. +- Overloaded method `DecodeBuffer()` with a new parameter `Orientation` to set the orientation information of the image data. +- Added a property `TransformationMatrix` to class `LocalizationResult` so that the library can output a transformation matrix for transforming the localization coordinates to image's natural orientation. +- Added a method `TransformCoordinates()` to support transforming the coordinates of a point based on a given transformation matrix. +- Added a property `DuplicateForgetTime` to class `FrameDecodingParameters` to set the time period used to filter out duplicate results found in frames. +- Added a method `SetUniqueBarcodeCallback()` to set callback function to obtain unique barcode result. +- Added properties `HasLeftRowIndicator` and `HasRightRowIndicator` to class `PDF417Details` to return whether the left and right row indicator of the PDF417 barcode is detected. +- Added a member `BF2_ALL` to enumeration `BarcodeFormatIds_2` to support setting all barcode formats in BarcodeFormat group 2 with one enumeration. +- Extended the features of parameter `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Supported 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 accuracy of EAN8 localization result(s). +- Improved the localization of mirrored DataMatrix barcode by implementing `MirrorMode`. + +#### Fixed + +- Fixed a bug that DotCodes might not be decoded when they are densely arranged. +- Fixed a crash bug when trying to output a template which included `BarcodeTextRegExPattern`. +- Other small fixes and tweaks. + +## 9.4.0 (08/30/2022) + +### Highlights + +- **DotCode** decoding has been improved by optimizing the localization and decoding algorithm. +- **Stacked**, **skewed** or **perspective distorted OneD barcode** decoding has been improved. + +### Changelog + +#### New + +- Added an argument `IsOneDStacked` to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter `PatchCodeSearchingMargins` to specify the searching area of PatchCode. +- Added the supported data format of `FormatSpecification.PartitionModes` to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. + +#### 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`, `ExtendedResult` and `LocalizationResult`. All the barcode format strings will be returned by the attribute `BarcodeFormatString`. + + +## 9.2.0 (06/07/2022) + +### 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` to set a human-readable name that identifies the device. + +## 9.0.0 (03/15/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` to specify newly supported barcode format, Code 11. +- Added `BF2_PHARMACODE_ONE_TRACK`, `BF2_PHARMACODE_TWO_TRACK` and `BF2_PHARMACODE` under Enumeration `EnumBarcodeFormat_2` to specify newly supported barcode format, Pharmacode. +- Added a new error code `DBRERR_PHARMACODE_LICENSE_INVALID` which will be returned when the license of Pharmacode is invalid. +- Added `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` under Enumeration `EnumDeformationResistingMode` to apply new deformation resisting modes. +- Added a parameter `FormatSpecification.PartitionModes` +- Added a parameter `FormatSpecification.VerifyCheckDigit` +- Added an Argument `ConfidenceThreshold` to the `LocalizationModes` mode arguments. +- Added a method `InitLicense` to initialize license key and activate the SDK. + +#### Changed + +- Changed value of BF_ONED under Enumeration `EnumBarcodeFormat` to 0x003007FF to have BF_CODE_11 combined. +- Changed value of BF_ALL under Enumeration `EnumBarcodeFormat` to 0xFE3FFFFF to have BF_CODE_11 combined. +- Changed the behaviour of `DeformationResistingMode` DRM_GENERAL which now only applies basic process to resist deformation. +- Changed the return value of the method `GetIdleInstancesCount` from 0 to -1 when the available count needs to be updated from server by calling InitLicense. + + +#### Fixed +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. +- Fixed a bug that Function Code 1 (FNC1) character would not return if it was in the first position of GS1-128 codes. +- Other small fixes and tweaks. + + +#### Deprecated + +The following items are now deprecated. They still work in this version but could be removed in the near future. +- Method `InitLicenseFromServer` +- Method `InitLicenseFromLicenseContent` +- Method `OutputLicenseToString` +- Method `InitDLSConnectionParameters` +- Method `InitLicenseFromDLS` +- Method `BarcodeReader(string productKey)` +- Method `BarcodeReader(string modulePath, string productKey)` +- Attribute `ProductKey` +- Enumeration `EnumDMChargeWay` +- Enumeration `EnumDMDeploymentType` +- Enumeration `EnumDMLicenseModule` +- Enumeration `EnumDMUUIDGenerationMethod` +- Enumeration `EnumProduct` \ No newline at end of file diff --git a/programming/dotnet/release-notes/index.md b/programming/dotnet/release-notes/index.md index 946ffe68..e1f0dfd5 100644 --- a/programming/dotnet/release-notes/index.md +++ b/programming/dotnet/release-notes/index.md @@ -8,58 +8,58 @@ needAutoGenerateSidebar: false # Release Notes for .NET Edition -- [11.4.1000 (02/05/2026)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1141000-02052026) -- [11.2.5000 (12/16/2025)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1125000-12162025) -- [11.2.1000 (10/14/2025)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1121000-10142025) -- [11.0.6000 (08/06/2025)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1106000-08062025) -- [11.0.4000 (07/15/2025)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1104000-07152025) -- [11.0.3000 (05/13/2025)]({{ site.dbr_dotnet_release_notes_v11 }}dotnet-11.html#1103000-05132025) -- [10.4.2000 (10/10/2024)]({{ site.dbr_dotnet_release_notes_v10 }}dotnet-10.html#1042000-10102024) -- [10.2.12 (06/19/2024)]({{ site.dbr_dotnet_release_notes_v10 }}dotnet-10.html#10212-06192024) -- [10.2.11 (06/12/2024)]({{ site.dbr_dotnet_release_notes_v10 }}dotnet-10.html#10211-06122024) -- [10.2.10 (05/30/2024)]({{ site.dbr_dotnet_release_notes_v10 }}dotnet-10.html#10210-05302024) -- [9.6.40 (03/14/2024)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#9640-03142024) -- [9.6.30 (08/29/2023)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#9630-08292023) -- [9.6.20 (03/16/2023)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#9620-03162023) -- [9.6.10 (01/10/2023)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#9610-01102023) -- [9.6.0 (11/29/2022)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#960-11292022) -- [9.4.0 (08/30/2022)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#940-08302022) -- [9.2.0 (06/07/2022)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#920-06072022) -- [9.0.0 (03/15/2022)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-9.html#900-03152022) -- [8.8.0 (10/12/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#880-10122021) -- [8.6.0 (07/15/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#860-07152021) -- [8.4.0 (06/08/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#840-06082021) -- [8.2.0 (03/17/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#812-01222021) -- [8.1.0 (01/12/2021)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#810-01122021) -- [8.0.0 (11/17/2020)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-8.html#800-11172020) -- [7.6.0 (09/01/2020)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#750-07222020) -- [7.4.0 (04/16/2020)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#740-04162020) -- [7.3.0 (01/02/2020)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#730-01022020) -- [7.2.2 (11/13/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#722-11132019) -- [7.2.1 (11/12/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#721-11122019) -- [7.2.0 (09/24/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#720-09242019) -- [7.1.0 (08/15/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#710-08152019) -- [7.0.0 (07/11/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#700-07112019) -- [6.5.3 (07/03/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#653-07032019) -- [6.5.2 (05/28/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#652-05282019) -- [6.5.1 (04/16/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#651-04162019) -- [6.5.0 (02/26/2019)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#650-02262019) -- [6.4.1 (11/22/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#641-11222018) -- [6.4.0 (10/15/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#640-10152018) -- [6.3.0 (08/16/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#630-08162018) -- [6.2.0 (06/28/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#620-06282018) -- [6.1.0 (05/14/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#610-05142018) -- [6.0.0 (03/30/2018)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#600-03302018) -- [5.2.0 (09/08/2017)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#520-09082017) -- [5.1.0 (05/25/2017)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#510-05252017) -- [5.0.0 (03/07/2017)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#500-03072017) -- [4.3.0 (10/13/2016)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#430-10132016) -- [4.2.0 (04/08/2016)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#420-04082016) -- [4.1.0 (01/21/2016)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#410-01212016) -- [4.0.0 (11/03/2015)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#400-11032015) -- [3.0.0 (08/13/2015)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#300-08132015) -- [2.1.0 (06/23/2015)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#210-06232015) -- [2.0.0 (05/12/2015)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#200-05122015) -- [1.0.0 (01/20/2015)]({{ site.dbr_dotnet_release_notes_v9 }}dotnet-7.html#100-01202015) \ No newline at end of file +- [11.4.1000 (02/05/2026)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1141000-02052026) +- [11.2.5000 (12/16/2025)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1125000-12162025) +- [11.2.1000 (10/14/2025)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1121000-10142025) +- [11.0.6000 (08/06/2025)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1106000-08062025) +- [11.0.4000 (07/15/2025)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1104000-07152025) +- [11.0.3000 (05/13/2025)]({{ site.dbr_dotnet_release_notes }}dotnet-11.html#1103000-05132025) +- [10.4.2000 (10/10/2024)]({{ site.dbr_dotnet_release_notes }}dotnet-10.html#1042000-10102024) +- [10.2.12 (06/19/2024)]({{ site.dbr_dotnet_release_notes }}dotnet-10.html#10212-06192024) +- [10.2.11 (06/12/2024)]({{ site.dbr_dotnet_release_notes }}dotnet-10.html#10211-06122024) +- [10.2.10 (05/30/2024)]({{ site.dbr_dotnet_release_notes }}dotnet-10.html#10210-05302024) +- [9.6.40 (03/14/2024)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#9640-03142024) +- [9.6.30 (08/29/2023)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#9630-08292023) +- [9.6.20 (03/16/2023)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#9620-03162023) +- [9.6.10 (01/10/2023)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#9610-01102023) +- [9.6.0 (11/29/2022)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#960-11292022) +- [9.4.0 (08/30/2022)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#940-08302022) +- [9.2.0 (06/07/2022)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#920-06072022) +- [9.0.0 (03/15/2022)]({{ site.dbr_dotnet_release_notes }}dotnet-9.html#900-03152022) +- [8.8.0 (10/12/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#880-10122021) +- [8.6.0 (07/15/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#860-07152021) +- [8.4.0 (06/08/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#840-06082021) +- [8.2.0 (03/17/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#812-01222021) +- [8.1.0 (01/12/2021)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#810-01122021) +- [8.0.0 (11/17/2020)]({{ site.dbr_dotnet_release_notes }}dotnet-8.html#800-11172020) +- [7.6.0 (09/01/2020)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#750-07222020) +- [7.4.0 (04/16/2020)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#740-04162020) +- [7.3.0 (01/02/2020)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#730-01022020) +- [7.2.2 (11/13/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#722-11132019) +- [7.2.1 (11/12/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#721-11122019) +- [7.2.0 (09/24/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#720-09242019) +- [7.1.0 (08/15/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#710-08152019) +- [7.0.0 (07/11/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#700-07112019) +- [6.5.3 (07/03/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#653-07032019) +- [6.5.2 (05/28/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#652-05282019) +- [6.5.1 (04/16/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#651-04162019) +- [6.5.0 (02/26/2019)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#650-02262019) +- [6.4.1 (11/22/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#641-11222018) +- [6.4.0 (10/15/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#640-10152018) +- [6.3.0 (08/16/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#630-08162018) +- [6.2.0 (06/28/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#620-06282018) +- [6.1.0 (05/14/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#610-05142018) +- [6.0.0 (03/30/2018)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#600-03302018) +- [5.2.0 (09/08/2017)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#520-09082017) +- [5.1.0 (05/25/2017)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#510-05252017) +- [5.0.0 (03/07/2017)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#500-03072017) +- [4.3.0 (10/13/2016)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#430-10132016) +- [4.2.0 (04/08/2016)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#420-04082016) +- [4.1.0 (01/21/2016)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#410-01212016) +- [4.0.0 (11/03/2015)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#400-11032015) +- [3.0.0 (08/13/2015)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#300-08132015) +- [2.1.0 (06/23/2015)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#210-06232015) +- [2.0.0 (05/12/2015)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#200-05122015) +- [1.0.0 (01/20/2015)]({{ site.dbr_dotnet_release_notes }}dotnet-7.html#100-01202015) \ No newline at end of file diff --git a/programming/java/migrate-10-to-11.md b/programming/java/migrate-from-v10/index.md similarity index 100% rename from programming/java/migrate-10-to-11.md rename to programming/java/migrate-from-v10/index.md diff --git a/programming/java/migrate-9-to-11.md b/programming/java/migrate-from-v9/index.md similarity index 100% rename from programming/java/migrate-9-to-11.md rename to programming/java/migrate-from-v9/index.md diff --git a/programming/java/release-notes/index.md b/programming/java/release-notes/index.md index 761be8ea..bb37ba9b 100644 --- a/programming/java/release-notes/index.md +++ b/programming/java/release-notes/index.md @@ -8,54 +8,54 @@ needAutoGenerateSidebar: false # Release Notes for Java Edition -- [11.4.1000 (02/05/2026)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1141000-02052026) -- [11.2.5000 (12/16/2025)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1125000-12162025) -- [11.2.1100 (10/28/2025)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1121100-10282025) -- [11.2.1000 (10/14/2025)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1121000-10142025) -- [11.0.6100 (08/19/2025)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1106100-08192025) -- [11.0.6000 (08/06/2025)]({{ site.dbr_java_release_notes_v11 }}java-11.html#1106000-08062025) -- [9.6.40 (03/14/2024)]({{ site.dbr_java_release_notes_v9 }}java-9.html#9640-03142024) -- [9.6.30 (08/29/2023)]({{ site.dbr_java_release_notes_v9 }}java-9.html#9630-08292023) -- [9.6.20 (03/16/2023)]({{ site.dbr_java_release_notes_v9 }}java-9.html#9620-03162023) -- [9.6.10 (01/10/2023)]({{ site.dbr_java_release_notes_v9 }}java-9.html#9610-01102023) -- [9.6.0 (11/29/2022)]({{ site.dbr_java_release_notes_v9 }}java-9.html#960-11292022) -- [9.4.0 (08/30/2022)]({{ site.dbr_java_release_notes_v9 }}java-9.html#940-08302022) -- [9.2.0 (06/07/2022)]({{ site.dbr_java_release_notes_v9 }}java-9.html#920-06072022) -- [9.0.0 (03/15/2022)]({{ site.dbr_java_release_notes_v9 }}java-9.html#900-03152022) -- [8.8.0 (10/12/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#880-10122021) -- [8.6.0 (07/15/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#860-07152021) -- [8.4.0 (06/08/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#840-06082021) -- [8.2.0 (03/17/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#812-01222021) -- [8.1.0 (01/12/2021)]({{ site.dbr_java_release_notes_v9 }}java-8.html#810-01122021) -- [8.0.0 (11/17/2020)]({{ site.dbr_java_release_notes_v9 }}java-8.html#800-11172020) -- [7.6.0 (09/01/2020)]({{ site.dbr_java_release_notes_v9 }}java-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.dbr_java_release_notes_v9 }}java-7.html#750-07222020) -- [7.4.0 (04/16/2020)]({{ site.dbr_java_release_notes_v9 }}java-7.html#740-04162020) -- [7.3.0 (01/02/2020)]({{ site.dbr_java_release_notes_v9 }}java-7.html#730-01022020) -- [7.2.2 (11/13/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#722-11132019) -- [7.2.1 (11/12/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#721-11122019) -- [7.2.0 (09/24/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#720-09242019) -- [7.1.0 (08/15/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#710-08152019) -- [7.0.0 (07/11/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#700-07112019) -- [6.5.3 (07/03/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#653-07032019) -- [6.5.2 (05/28/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#652-05282019) -- [6.5.1 (04/16/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#651-04162019) -- [6.5.0 (02/26/2019)]({{ site.dbr_java_release_notes_v9 }}java-7.html#650-02262019) -- [6.4.1 (11/22/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#641-11222018) -- [6.4.0 (10/15/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#640-10152018) -- [6.3.0 (08/16/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#630-08162018) -- [6.2.0 (06/28/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#620-06282018) -- [6.1.0 (05/14/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#610-05142018) -- [6.0.0 (03/30/2018)]({{ site.dbr_java_release_notes_v9 }}java-7.html#600-03302018) -- [5.2.0 (09/08/2017)]({{ site.dbr_java_release_notes_v9 }}java-7.html#520-09082017) -- [5.1.0 (05/25/2017)]({{ site.dbr_java_release_notes_v9 }}java-7.html#510-05252017) -- [5.0.0 (03/07/2017)]({{ site.dbr_java_release_notes_v9 }}java-7.html#500-03072017) -- [4.3.0 (10/13/2016)]({{ site.dbr_java_release_notes_v9 }}java-7.html#430-10132016) -- [4.2.0 (04/08/2016)]({{ site.dbr_java_release_notes_v9 }}java-7.html#420-04082016) -- [4.1.0 (01/21/2016)]({{ site.dbr_java_release_notes_v9 }}java-7.html#410-01212016) -- [4.0.0 (11/03/2015)]({{ site.dbr_java_release_notes_v9 }}java-7.html#400-11032015) -- [3.0.0 (08/13/2015)]({{ site.dbr_java_release_notes_v9 }}java-7.html#300-08132015) -- [2.1.0 (06/23/2015)]({{ site.dbr_java_release_notes_v9 }}java-7.html#210-06232015) -- [2.0.0 (05/12/2015)]({{ site.dbr_java_release_notes_v9 }}java-7.html#200-05122015) -- [1.0.0 (01/20/2015)]({{ site.dbr_java_release_notes_v9 }}java-7.html#100-01202015) \ No newline at end of file +- [11.4.1000 (02/05/2026)]({{ site.dbr_java_release_notes }}java-11.html#1141000-02052026) +- [11.2.5000 (12/16/2025)]({{ site.dbr_java_release_notes }}java-11.html#1125000-12162025) +- [11.2.1100 (10/28/2025)]({{ site.dbr_java_release_notes }}java-11.html#1121100-10282025) +- [11.2.1000 (10/14/2025)]({{ site.dbr_java_release_notes }}java-11.html#1121000-10142025) +- [11.0.6100 (08/19/2025)]({{ site.dbr_java_release_notes }}java-11.html#1106100-08192025) +- [11.0.6000 (08/06/2025)]({{ site.dbr_java_release_notes }}java-11.html#1106000-08062025) +- [9.6.40 (03/14/2024)]({{ site.dbr_java_release_notes }}java-9.html#9640-03142024) +- [9.6.30 (08/29/2023)]({{ site.dbr_java_release_notes }}java-9.html#9630-08292023) +- [9.6.20 (03/16/2023)]({{ site.dbr_java_release_notes }}java-9.html#9620-03162023) +- [9.6.10 (01/10/2023)]({{ site.dbr_java_release_notes }}java-9.html#9610-01102023) +- [9.6.0 (11/29/2022)]({{ site.dbr_java_release_notes }}java-9.html#960-11292022) +- [9.4.0 (08/30/2022)]({{ site.dbr_java_release_notes }}java-9.html#940-08302022) +- [9.2.0 (06/07/2022)]({{ site.dbr_java_release_notes }}java-9.html#920-06072022) +- [9.0.0 (03/15/2022)]({{ site.dbr_java_release_notes }}java-9.html#900-03152022) +- [8.8.0 (10/12/2021)]({{ site.dbr_java_release_notes }}java-8.html#880-10122021) +- [8.6.0 (07/15/2021)]({{ site.dbr_java_release_notes }}java-8.html#860-07152021) +- [8.4.0 (06/08/2021)]({{ site.dbr_java_release_notes }}java-8.html#840-06082021) +- [8.2.0 (03/17/2021)]({{ site.dbr_java_release_notes }}java-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.dbr_java_release_notes }}java-8.html#812-01222021) +- [8.1.0 (01/12/2021)]({{ site.dbr_java_release_notes }}java-8.html#810-01122021) +- [8.0.0 (11/17/2020)]({{ site.dbr_java_release_notes }}java-8.html#800-11172020) +- [7.6.0 (09/01/2020)]({{ site.dbr_java_release_notes }}java-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.dbr_java_release_notes }}java-7.html#750-07222020) +- [7.4.0 (04/16/2020)]({{ site.dbr_java_release_notes }}java-7.html#740-04162020) +- [7.3.0 (01/02/2020)]({{ site.dbr_java_release_notes }}java-7.html#730-01022020) +- [7.2.2 (11/13/2019)]({{ site.dbr_java_release_notes }}java-7.html#722-11132019) +- [7.2.1 (11/12/2019)]({{ site.dbr_java_release_notes }}java-7.html#721-11122019) +- [7.2.0 (09/24/2019)]({{ site.dbr_java_release_notes }}java-7.html#720-09242019) +- [7.1.0 (08/15/2019)]({{ site.dbr_java_release_notes }}java-7.html#710-08152019) +- [7.0.0 (07/11/2019)]({{ site.dbr_java_release_notes }}java-7.html#700-07112019) +- [6.5.3 (07/03/2019)]({{ site.dbr_java_release_notes }}java-7.html#653-07032019) +- [6.5.2 (05/28/2019)]({{ site.dbr_java_release_notes }}java-7.html#652-05282019) +- [6.5.1 (04/16/2019)]({{ site.dbr_java_release_notes }}java-7.html#651-04162019) +- [6.5.0 (02/26/2019)]({{ site.dbr_java_release_notes }}java-7.html#650-02262019) +- [6.4.1 (11/22/2018)]({{ site.dbr_java_release_notes }}java-7.html#641-11222018) +- [6.4.0 (10/15/2018)]({{ site.dbr_java_release_notes }}java-7.html#640-10152018) +- [6.3.0 (08/16/2018)]({{ site.dbr_java_release_notes }}java-7.html#630-08162018) +- [6.2.0 (06/28/2018)]({{ site.dbr_java_release_notes }}java-7.html#620-06282018) +- [6.1.0 (05/14/2018)]({{ site.dbr_java_release_notes }}java-7.html#610-05142018) +- [6.0.0 (03/30/2018)]({{ site.dbr_java_release_notes }}java-7.html#600-03302018) +- [5.2.0 (09/08/2017)]({{ site.dbr_java_release_notes }}java-7.html#520-09082017) +- [5.1.0 (05/25/2017)]({{ site.dbr_java_release_notes }}java-7.html#510-05252017) +- [5.0.0 (03/07/2017)]({{ site.dbr_java_release_notes }}java-7.html#500-03072017) +- [4.3.0 (10/13/2016)]({{ site.dbr_java_release_notes }}java-7.html#430-10132016) +- [4.2.0 (04/08/2016)]({{ site.dbr_java_release_notes }}java-7.html#420-04082016) +- [4.1.0 (01/21/2016)]({{ site.dbr_java_release_notes }}java-7.html#410-01212016) +- [4.0.0 (11/03/2015)]({{ site.dbr_java_release_notes }}java-7.html#400-11032015) +- [3.0.0 (08/13/2015)]({{ site.dbr_java_release_notes }}java-7.html#300-08132015) +- [2.1.0 (06/23/2015)]({{ site.dbr_java_release_notes }}java-7.html#210-06232015) +- [2.0.0 (05/12/2015)]({{ site.dbr_java_release_notes }}java-7.html#200-05122015) +- [1.0.0 (01/20/2015)]({{ site.dbr_java_release_notes }}java-7.html#100-01202015) \ No newline at end of file diff --git a/programming/java/release-notes/java-7.md b/programming/java/release-notes/java-7.md new file mode 100644 index 00000000..5903e6d1 --- /dev/null +++ b/programming/java/release-notes/java-7.md @@ -0,0 +1,466 @@ +--- +layout: default-layout +title: Release Notes v7.6.0 and below - Dynamsoft Barcode Reader SDK Java Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Java Edition v7.6.0 and below. +keywords: release notes, java +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for Java SDK - 7.6.0 and below + +## 7.6.0 (09/01/2020) + +### NEW + +- Added Mac library into the JAR file to support macOS platform. The Java SDK now supports Windows, Linux and macOS. +- 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.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 an optimized decoding method for linear barcodes in vector PDF files. The vector PDF file can be decoded without rasterizing, increase decoding efficiency. +- 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. +- Combined Windows and Linux Java libraries into one JAR file to support both platforms. The JAR file is also available on Dynamsoft server for developers to add dependencies easily via Maven repositories. +- 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. +- Added the capability to obtain accompanying texts at the top or bottom of a linear barcode. It can be enabled by turning on the struct PublicRuntimeSettings -> FurtherModes -> AccompanyingTextRecognitionModes. +- 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. + +## 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. +- 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. + +### 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 + +- Updated PDF component to v10.3.2.0806 +- 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.3 (07/03/2019) + +### FIXED + +- Updated the license verification process for development license and desktop runtime license. The old license verification process may lead to license error on some computers. +- Small fixes and tweaks. + +## 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. + +### 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 + +- Decreased misreading rate for 1D barcodes. +- Enhanced performance for reading multiple barcodes from an image. +- Greatly improved recognition rate for QR Code and DataMatrix on complicated backgrounds. +- Greatly improved recognition rate for barcodes on grid background. +- Optimized localization for PDF417 without enough quiet zone. + +### NEW RESOURCES + +- New console samples – Decode Single Barcode, Decode Multi-Barcodes, Read Barcode from Region, Trigger Event after Decoding - are now available in the installer. + +### FIXED + +- Small fixes and tweaks. + +## 6.1.0 (05/14/2018) + +### NEW + +- Added GetTemplateSettings and SetTemplateSettings methods which allow you to review and adjust barcode reading settings at runtime. + +### IMPROVED + +- Improved localization algorithm for barcodes rotated in a degree or with poor perspective. +- Faster read speed for QR, Data Matrix and PDF417 barcodes. + +## 6.0.0 (03/30/2018) + +### NEW + +- Easy and flexible to create a custom barcode reading template for your specific use case. + +### IMPROVED + +- Improved average reading speed by 50% in a four-core CPU environment. +- Improved the reading accuracy and speed for blurred QRCode and DataMatrix. +- Improved the speed for reading barcodes directly from a computer/phone screen. +- Improved reading speed for small barcodes in high-resolution images. + +### FIXED + +- Small fixes and tweaks. + +## 5.2.0 (09/08/2017) + +### IMPROVED + +- Improved the localization and recognition algorithms for PDF417 barcodes. +- Optimized the de-blur algorithm for 1D barcodes to improve the recognition accuracy. +- Optimized the timeout support. Now it is possible to stop barcode recognition by timeout. +- Increased QR Code and DataMatrix barcode recognition speed for B&W images. + +### FIXED + +- Small fixes and tweaks. + +## 5.1.0 (05/25/2017) + +### FIXED + +- Fixed a bug that caused incorrect result points if de-blur algorithm is used when reading 1D barcodes. +- Other small fixes and tweaks. + +## 5.0.0 (03/07/2017) + +### NEW + +- New de-blur algorithm for 1D barcodes to improve the accuracy when scanning linear barcodes from out-of-focus, blurred images. +- New multi-thread processing to improve the scanning accuracy and speed of 1D and PDF417 barcodes. +- Added new APIs that enable you to specify page numbers, barcode regions, barcode width, barcode height, barcode module size and barcode angles for barcode detection. These greatly improve the decoding workflow and barcode reading efficiency. +- Added ImageCaptureDevice API to set the capture device (scanner, camera or fax) being used to scan barcode images. When set, it will use a better and more appropriate image processing technique to the images captured from that device. +- Added TimeoutPerPage API to set the maximum amount of time for reading barcodes on one page. +- Added BarcodeColorMode API to set the ink color for barcodes searching. +- Added BarcodeTextEncoding API to set barcode text encoding mode so that you can display special characters properly. +- Added ReturnUnrecognizedBarcode API to set whether to return unrecognized barcodes. +- Added LoadSetting API so that you can now load the settings to be used in recognizing barcodes from a JSON string. +- Added Angle API to set the angle ranges of barcodes for scanning. +- Added Angle property to return the rotation angle of a detected barcode. + +### FIXED + +- Fixed an issue where the DLL crashes when reading DataMatrix in multiple threads. +- Other small fixes and tweaks. + +## 4.3.0 (10/13/2016) + +### NEW + +- New localization algorithm was implemented for 1D barcode scanning to improve barcode reading speed. +- New multi-thread processing was implemented for 2D barcode reading to improve decoding accuracy. + +### IMPROVED + +- Improved recognition for perspective QR Codes. +- Optimized decoding performance for large size, special angle and multiple 1D barcodes. +- Improved sample applications to support Visual Studio 2015. +- Other small fixes and tweaks. + +### NEW RESOURCES + +- New samples are now available in the Code Gallery: + - RESTful Web Service - implements server-side RESTful web service in C# for barcode reading. + - HelloWorld - reads barcodes from a sample image in a Java web application. + - Read barcode from mobile webcam - reads barcodes from photos captured from mobile webcam in Java on the mobile phones or tablets. + +## 4.2.0 (04/08/2016) + +### 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. +- Improved ResultPoints Property to adjust the sequence of barcode corner points. + +## 4.1.0 (01/21/2016) + +### NEW + +- Added Error Code -10022: "PDF Rasterizer DLL Missing". + +### IMPROVED + +- Improved positioning algorithm to better identify and localize DataMatrix barcodes. + +## 4.0.0 (11/03/2015) + +### NEW + +- Added support for reading PDF417 and DataMatrix. +- Added reading barcode from all types of PDF file. + +## 3.0.0 (08/13/2015) + +### NEW + +- Added 2D Barcode Reader to support reading QR Code. + +### IMPROVED + +- Improved 1D Barcode Reader to support reading Industrial 2 of 5. + +## 2.1.0 (06/23/2015) + +### NEW + +- Reading image format of GIF is supported. + +### IMPROVED + +- Improved CODE128 decoding +- Improved recognition of CODE39, CODE93, etc. + +## 2.0.0 (05/12/2015) + +### NEW + +- Dynamsoft Barcode Reader is now made available as a standalone product, in addition to working as an add-on for Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. +- Windows Edition: provides C, C++, ActiveX / COM and .NET APIs. +- Supported barcode types now include: + Code39, Code128, Code93, Codabar, ITF, EAN13, EAN8, UPCA and UPCE +- Supported image formats include BMP, JPG, PNG, (single or multi-page) TIFF, Windows DIB and .NET Bitmap. +- Various code samples (in C/C++/C#/Java/VB/VB.NET) available. + +## 1.0.0 (01/20/2015) + +### NEW + +- Dynamsoft's barcode recognition engine has been in existence since April, 2012. It works as an add-on to our Dynamic Web TWAIN and Dynamic .NET TWAIN SDKs. In this new release, we are changing the product name to Dynamic Barcode Reader and the version to 1.0. +- Updates in this version include 1D barcode improvements in accuracy and performance for Code 39 and Code128 recognition. Also image preprocessing is improved. For Code 128, the recognition ratio and speed have jumped up by as much as 30 percent. \ No newline at end of file diff --git a/programming/java/release-notes/java-8.md b/programming/java/release-notes/java-8.md new file mode 100644 index 00000000..ade07c7b --- /dev/null +++ b/programming/java/release-notes/java-8.md @@ -0,0 +1,153 @@ +--- +layout: default-layout +title: Release Notes v8.x - Dynamsoft Barcode Reader SDK Java Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Java Edition v8.x. +keywords: release notes, java +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for Java SDK - 8.x + +## 8.8.0 (10/12/2021) + +### 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`, 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`, `BarcodeWidthRangeArray`, `BarcodeAngleRangeArray` and `MinRatioOfBarcodeZoneWidthToHeight`. +- 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` is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +## 8.6.0 (07/15/2021) + +### 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 two DeblurMode Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added `initLicenseFromDLS` and `initDLSConnectionParameters` in `BarcodeReader` class to replace `initLicenseFromLTS` and `initLTSConnectionParameters`. +- Added class `DMDLSConnectionParameters` to replace class `DMLTSConnectionParameters`. + +#### Improved + +- Improved the `confidence` algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +## 8.4.0 (06/08/2021) + +### New + +- Added a new method `GetIdleInstancesCount` to return the number of available instances when using the 'per concurrent instance' licensing model. +- Added the `organizationID` property for license authentication. +- Added a new attribute `isMirrored` to the `TextResult` class. `isMirrored` returns whether the barcode is mirrored. +- Added a new attribute `isDPM` to the `TextResult` 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` is not set. + +## 8.2.0 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to `RegionPredetectionModes` that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to `RPM_GENERAL_HSV_CONTRAST`. + +### 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. + +### 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 `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.0 (11/17/2020) + +### New + +- Implemented the mechanism of loading libraries dynamically at runtime when `Parameter Mode Enumerations` are used (except *_AUTO and *_SKIP). Use LibraryFileName and LibraryParameters to configure. +- (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. + +### Fixed + +- Fixed a crash issue that could happen when conflicts occur on Linux. + +### 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/java/release-notes/java-9.md b/programming/java/release-notes/java-9.md new file mode 100644 index 00000000..6b5b256e --- /dev/null +++ b/programming/java/release-notes/java-9.md @@ -0,0 +1,228 @@ +--- +layout: default-layout +title: Release Notes v9.x - Dynamsoft Barcode Reader SDK Java Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Java Edition v9.x. +keywords: release notes, java +needGenerateH3Content: false +--- + +# Release Notes for Java Edition - 9.x + +## 9.6.60 (12/23/2025) + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.40 (03/14/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. + +### Fixed + +- Fixed crash bugs in the barcode decoding algorithm. +- Fixed a bug where the location of the barcode result(s) might be incorrect. + +### Changed + +- Changed the error message of error `DBR_PDF_DLL_MISSING` from "The PDF DLL is missing" to "The PDF library could not be loaded". +- 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 on this scenario. + +## 9.6.30 (08/29/2023) + +### New + +- Added a new method `getInstancePoolStatus` and class `InstancePoolStatus` to provide a real-time view of how the concurrent instance licenses are being utilized. This applies only if you are using a concurrent instance license. + +### Improved + +- Optimized the concurrent instance management and license usage statistics when using a concurrent instance license. +- Extended the availability of methods `GetInstance` and `Recycle`, making them accessible to all licensing modes. +- Implemented additional checkpoints to ensure timely timeout and termination. + +### Fixed + +- Fixed a bug where barcode results varied depending on the operating system being used. +- Fixed a crash bug when initializing a license with a segmented license string. +- Fixed some bugs related to the barcode format settings when they are defined in the `RegionDefinition` object of the template. + +## 9.6.20 (03/16/2023) + +### Fixed + +- Fixed a bug where the methods initLicense and gGetInstance may not work as expected when using concurrent instance license. +- Fixed a bug where license authorization may fail when the main license server is not available. +- Other small fixes and tweaks. + +## 9.6.10 (01/10/2023) + +### New + +- Added a new method `setLicenseCachePath` in the `BarcodeReader` class to support customizing the license cache saving path. +- Add a new method `getDeviceUUID` in the `BarcodeReader` class to support getting device UUID for license activating. +- Added error code `DM_LICENSE_BUFFER_FAILED` to the potential error list of the license activation methods and decode methods. The error code is returned when the directory of the license cache is inaccessible. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +### Fixed + +- Fixed a crash bug when using a online license key on ARM64 environment. +- Fixed a crash bug when using a online license key on the AWS lambda environment. +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter `RequireStartStopChars` is set to 0. +- Other small fixes and tweaks. + +## 9.6.0 (11/29/2022) + +### Version Highlights + +- **Image orientation** handling is supported by a new feature. With the new feature, you can: + - Get a **TranformationMatrix** along with the barcode location result. + - Implement coordinates transformation on the barcode location result with the **TransformationMatrix**. +- **DotCode** decoding is improved by optimizing the localization of DotCodes that are close to one another. +- **EAN8 barcode** decoding is improved by honing the accuracy of localization algorithms. +- **QR code** localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image. +- **Mirrored rectangular DataMatrix barcode** is supported by implementing `MirrorMode` when localizing the barcodes. +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +### Edition Highlights + +- Added duplicate barcode filter feature in video mode. You can implement duplicate filter to ignore duplicate barcodes for a period. + +### Changelog + +#### New + +- Added a property `orientation` to class `FrameDecodingParameters` to set the orientation information of the video frame. +- Added `orientation` to class ImageData to set the orientation information. +- Enabled decoding methods `decodeFile()`, `decodeFileinMemory()` and `decodeBase64String()` to read EXIF data of the given image so that the library can obtain the orientation information of the image file. +- Overloaded method `decodeBuffer()` with a new parameter `orientation` to set the orientation information of the image data. +- Added a property `transformationMatrix` to class `LocalizationResult` so that the library can output a transformation matrix for transforming the localization coordinates to image's natural orientation. +- Added a method `transformCoordinates()` to support transforming the coordinates of a point based on a given transformation matrix. +- Added a property `duplicateForgetTime` to class `FrameDecodingParameters` to set the time period used to filter out duplicate results found in frames. +- Added a callback method `uniqueBarcodeCallback()` to interface `TextResultCallback` which will be triggered when the library finishes decoding a frame and finds unique barcodes. +- Added properties `hasLeftRowIndicator` and `hasRightRowIndicator` to class `PDF417Details` to return whether the left and right row indicator of the PDF417 barcode is detected. +- Added a member `BF2_ALL` to enumeration `BarcodeFormatIds_2` to support setting all barcode formats in BarcodeFormat group 2 with one enumeration. +- Extended the features of parameter `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Supported 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 accuracy of EAN8 localization result(s). +- Improved the localization of mirrored DataMatrix barcode by implementing `MirrorMode`. + +#### Fixed + +- Fixed a bug that DotCodes might not be decoded when they are densely arranged. +- Fixed a crash bug when trying to output a template which included `BarcodeTextRegExPattern`. +- Other small fixes and tweaks. + +## 9.4.0 (08/30/2022) + +### Highlights + +- **DotCode** decoding has been improved by optimizing the localization and decoding algorithm. +- **Stacked**, **skewed** or **perspective distorted OneD barcode** decoding has been improved. + +### Changelog + +#### New + +- Added an argument `IsOneDStacked` to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter `PatchCodeSearchingMargins` to specify the searching area of PatchCode. +- Added the supported data format of `FormatSpecification.PartitionModes` to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. + +#### 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`, `ExtendedResult` and `LocalizationResult`. All the barcode format strings will be returned by the attribute `barcodeFormatString`. + +## 9.2.0 (06/07/2022) + +### Version Highlights + +- Barcode boundary-seeking algorithm is refactored to improve stability. +- Pharmacode decoding is optimized to improve accuracy. +- The function of device-alias is added to allow users to give each device a readable name. For end-users and administrators, this makes it more friendly to distinguish between devices about license usage statistics. + +### Edition Highlights + +- Added macOS ARM64 support to the Java edition of the SDK. + +### Changelog + +#### New + +- Added a new method `setDeviceFriendlyName` to set a human-readable name that identifies the device. + +## 9.0.0 (03/15/2022) + +### Version Highlights + +- Simplified the license activation steps. Different license activation APIs are integrated into `initLicense` method. +- Added support for **Pharmacode**. +- Added support for **Code 11**, a 1D format. +- Deformation resisting modes `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` are optimized and detached from `DRM_GENERAL`. Users can specify a more effective deformation resisting mode when processing **QRCode** and **DataMatrix codes**. +- Optimized the confidence scoring system for **PDF417 codes**. + +### Edition Highlights + +- Added ARM64 Linux support to the Java edition of the SDK. In previous versions, Java Edition supported Windows x32/x64, macOS x64, and Linux x64. + +### Changelog + +#### New + +- Added `BF_CODE_11` under Enumeration `EnumBarcodeFormat` to specify newly supported barcode format, Code 11. +- Added `BF2_PHARMACODE_ONE_TRACK`, `BF2_PHARMACODE_TWO_TRACK` and `BF2_PHARMACODE` under Enumeration `EnumBarcodeFormat_2` to specify newly supported barcode format, Pharmacode. +- Added a new error code `DBR_PHARMACODE_LICENSE_INVALID` which will be returned when the license of Pharmacode is invalid. +- Added `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` under Enumeration `EnumDeformationResistingMode` to apply new deformation resisting modes. +- Added a parameter `FormatSpecification.PartitionModes` +- Added a parameter `FormatSpecification.VerifyCheckDigit` +- Added an Argument `ConfidenceThreshold` to the `LocalizationModes` mode arguments. + +#### Changed + +- Changed method `InitLicense` to a static method. +- Changed value of BF_ONED under Enumeration `EnumBarcodeFormat` to 0x003007FF to have BF_CODE_11 combined. +- Changed value of BF_ALL under Enumeration `EnumBarcodeFormat` to 0xFE3FFFFF to have BF_CODE_11 combined. +- Changed the behaviour of `DeformationResistingMode` DRM_GENERAL which now only applies basic process to resist deformation. +- Changed the return value of the method `getIdleInstancesCount` from 0 to -1 when the available count needs to be updated from server by calling initLicense. + + +#### Fixed +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. +- Fixed a bug that throws exceptions when using method `getIdleInstancesCount`. +- Fixed a bug that Function Code 1 (FNC1) character would not return if it was in the first position of GS1-128 codes. +- Other small fixes and tweaks. + + +#### Deprecated + +The following items are now deprecated. They still work in this version but could be removed in the near future. +- Method `initLicenseFromServer` +- Method `initLicenseFromLicenseContent` +- Method `outputLicenseToString` +- Method `initDLSConnectionParameters` +- Method `initLicenseFromDLS` +- Enumeration `EnumDMChargeWay` +- Enumeration `EnumDMDeploymentType` +- Enumeration `EnumDMLicenseModule` +- Enumeration `EnumDMUUIDGenerationMethod` +- Enumeration `EnumProduct` \ No newline at end of file diff --git a/programming/python/migrate-10-to-11.md b/programming/python/migrate-from-v10/index.md similarity index 100% rename from programming/python/migrate-10-to-11.md rename to programming/python/migrate-from-v10/index.md diff --git a/programming/python/migrate-9-to-11.md b/programming/python/migrate-from-v9/index.md similarity index 100% rename from programming/python/migrate-9-to-11.md rename to programming/python/migrate-from-v9/index.md diff --git a/programming/python/release-notes/index.md b/programming/python/release-notes/index.md index a88ca26b..14f2d263 100644 --- a/programming/python/release-notes/index.md +++ b/programming/python/release-notes/index.md @@ -8,32 +8,32 @@ needAutoGenerateSidebar: false # Release Notes for Python Edition -- [11.4.1000 (02/05/2026)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1141000-02052026) -- [11.2.5000 (12/16/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1125000-12162025) -- [11.2.1000 (10/14/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1121000-10142025) -- [11.0.6000 (08/06/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1106000-08062025) -- [11.0.4000 (07/15/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1104000-07152025) -- [11.0.3000 (05/15/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1103000-05152025) -- [11.0.2000 (04/09/2025)]({{ site.dbr_python_release_notes_v11 }}python-11.html#1102000-04092025) -- [10.5.2100 (12/05/2024)]({{ site.dbr_python_release_notes_v10 }}python-10.html#1052100-12052024) -- [10.4.2100 (11/07/2024)]({{ site.dbr_python_release_notes_v10 }}python-10.html#1042100-11072024) -- [10.4.2000 (10/10/2024)]({{ site.dbr_python_release_notes_v10 }}python-10.html#1042000-10102024) -- [9.6.40 (03/14/2024)]({{ site.dbr_python_release_notes_v9 }}python-9.html#9640-03142024) -- [9.6.30 (08/29/2023)]({{ site.dbr_python_release_notes_v9 }}python-9.html#9630-08292023) -- [9.6.20 (03/16/2023)]({{ site.dbr_python_release_notes_v9 }}python-9.html#9620-03162023) -- [9.6.10 (01/10/2023)]({{ site.dbr_python_release_notes_v9 }}python-9.html#9610-01102023) -- [9.6.0 (11/29/2022)]({{ site.dbr_python_release_notes_v9 }}python-9.html#960-11292022) -- [9.4.0 (08/30/2022)]({{ site.dbr_python_release_notes_v9 }}python-9.html#940-08302022) -- [9.2.0 (06/21/2022)]({{ site.dbr_python_release_notes_v9 }}python-9.html#920-06212022) -- [9.0.0 (03/31/2022)]({{ site.dbr_python_release_notes_v9 }}python-9.html#900-03312022) -- [8.8.0 (10/22/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#860-10222021) -- [8.6.0 (07/20/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#860-07202021) -- [8.4.0 (06/10/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#840-06102021) -- [8.2.0 (03/17/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#820-03172021) -- [8.1.2 (01/22/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#812-01222021) -- [8.1.0 (01/19/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#810-01192021) -- [8.0.0.1 (01/06/2021)]({{ site.dbr_python_release_notes_v9 }}python-8.html#8001-01062021) -- [8.0.0 (11/26/2020)]({{ site.dbr_python_release_notes_v9 }}python-8.html#800-11262020) -- [7.6.0 (09/01/2020)]({{ site.dbr_python_release_notes_v9 }}python-7.html#760-09012020) -- [7.5.0 (07/22/2020)]({{ site.dbr_python_release_notes_v9 }}python-7.html#750-07222020) -- [7.4.0 (04/16/2020)]({{ site.dbr_python_release_notes_v9 }}python-7.html#740-04162020) \ No newline at end of file +- [11.4.1000 (02/05/2026)]({{ site.dbr_python_release_notes }}python-11.html#1141000-02052026) +- [11.2.5000 (12/16/2025)]({{ site.dbr_python_release_notes }}python-11.html#1125000-12162025) +- [11.2.1000 (10/14/2025)]({{ site.dbr_python_release_notes }}python-11.html#1121000-10142025) +- [11.0.6000 (08/06/2025)]({{ site.dbr_python_release_notes }}python-11.html#1106000-08062025) +- [11.0.4000 (07/15/2025)]({{ site.dbr_python_release_notes }}python-11.html#1104000-07152025) +- [11.0.3000 (05/15/2025)]({{ site.dbr_python_release_notes }}python-11.html#1103000-05152025) +- [11.0.2000 (04/09/2025)]({{ site.dbr_python_release_notes }}python-11.html#1102000-04092025) +- [10.5.2100 (12/05/2024)]({{ site.dbr_python_release_notes }}python-10.html#1052100-12052024) +- [10.4.2100 (11/07/2024)]({{ site.dbr_python_release_notes }}python-10.html#1042100-11072024) +- [10.4.2000 (10/10/2024)]({{ site.dbr_python_release_notes }}python-10.html#1042000-10102024) +- [9.6.40 (03/14/2024)]({{ site.dbr_python_release_notes }}python-9.html#9640-03142024) +- [9.6.30 (08/29/2023)]({{ site.dbr_python_release_notes }}python-9.html#9630-08292023) +- [9.6.20 (03/16/2023)]({{ site.dbr_python_release_notes }}python-9.html#9620-03162023) +- [9.6.10 (01/10/2023)]({{ site.dbr_python_release_notes }}python-9.html#9610-01102023) +- [9.6.0 (11/29/2022)]({{ site.dbr_python_release_notes }}python-9.html#960-11292022) +- [9.4.0 (08/30/2022)]({{ site.dbr_python_release_notes }}python-9.html#940-08302022) +- [9.2.0 (06/21/2022)]({{ site.dbr_python_release_notes }}python-9.html#920-06212022) +- [9.0.0 (03/31/2022)]({{ site.dbr_python_release_notes }}python-9.html#900-03312022) +- [8.8.0 (10/22/2021)]({{ site.dbr_python_release_notes }}python-8.html#860-10222021) +- [8.6.0 (07/20/2021)]({{ site.dbr_python_release_notes }}python-8.html#860-07202021) +- [8.4.0 (06/10/2021)]({{ site.dbr_python_release_notes }}python-8.html#840-06102021) +- [8.2.0 (03/17/2021)]({{ site.dbr_python_release_notes }}python-8.html#820-03172021) +- [8.1.2 (01/22/2021)]({{ site.dbr_python_release_notes }}python-8.html#812-01222021) +- [8.1.0 (01/19/2021)]({{ site.dbr_python_release_notes }}python-8.html#810-01192021) +- [8.0.0.1 (01/06/2021)]({{ site.dbr_python_release_notes }}python-8.html#8001-01062021) +- [8.0.0 (11/26/2020)]({{ site.dbr_python_release_notes }}python-8.html#800-11262020) +- [7.6.0 (09/01/2020)]({{ site.dbr_python_release_notes }}python-7.html#760-09012020) +- [7.5.0 (07/22/2020)]({{ site.dbr_python_release_notes }}python-7.html#750-07222020) +- [7.4.0 (04/16/2020)]({{ site.dbr_python_release_notes }}python-7.html#740-04162020) \ No newline at end of file diff --git a/programming/python/release-notes/python-10.md b/programming/python/release-notes/python-10.md new file mode 100644 index 00000000..2c6fef2d --- /dev/null +++ b/programming/python/release-notes/python-10.md @@ -0,0 +1,53 @@ +--- +layout: default-layout +title: Release Notes v10.x - Dynamsoft Barcode Reader SDK Python Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Python Edition v10.x. +keywords: release notes, python +needGenerateH3Content: false +--- + +# Release Notes for Python Edition - 10.x + +## 10.5.2100 (12/05/2024) + +### New + +- Added `Intermediate Results`, completing DCV's feature set with real-time feedback and interactivity. +- Added support for Python 3.13. + +### Fixed + +- Removed the `static dependency on NumPy`, allowing users to import it only when needed. + +## 10.4.2100 (11/07/2024) + +### New + +- Added support for `numpy.ndarray` image type in the `capture` interface. + +### Improved + +- Optimized the usage of list type member variables, allowing modification of individual objects within the list without needing to reassign the entire list. +- Improved the usage of `EnumPresetTemplate` and `EnumBarcodeFormat`, no longer requiring `.value` for accessing enum members. + +### Fixed + +- Fixed a bug where initializing `FileImageTag` would raise a `TypeError` exception. + +## 10.4.2000 (10/10/2024) + +### Highlights + +`DynamsoftBarcodeReader` SDK has been revamped to integrate with `DynamsoftCaptureVision (DCV)` architecture, which is newly established to aggregate the features of functional products powered by Dynamsoft. The features are designed to be pluggable, customizable and interactable. In addition, the functional products share the computation so that their processing speed is much higher than working individually. To reflect these improvements, the package has been renamed to `dynamsoft-barcode-reader-bundle`. + +* `DynamsoftCaptureVision` architecture consists of: + * `ImageSourceAdapter(ISA)`, the standard input interface for you to convert image data from different sources into the standard input image data. In addition, `ISA` incorporates an image buffer management system that allows instant access to the buffered image data. + * `CaptureVisionRouter (CVR)`, an engine for you to update templates, retrieve images from `ISA`, coordinate corresponding functional products and dispatch the results to the receivers. + * Functional products that perform image processing, content understanding and semantic processing. The functional products are pluggable and passively called by CVR when they are required. + * Result receiver interfaces. You can implement `CapturedResultReceiver (CRR)` to receive the `CapturedResults` that output when the processing on an image is finalized. +* The parameter template system has been comprehensively upgraded. + * Multiple algorithm task settings are available. You can define barcode decoding, label recognizing, document scanning and semantic processing tasks in one template file. + * Extended the feature of the ROI system. By configuring the `target ROI` parameters, you can not only specify an `ROI` on the original image but also define the dependencies of the algorithm tasks. This feature enables you to customize the workflow when processing complex scenarios. + * The image processing parameters are separated from the task parameters so that the template settings become more clear and concise. +* The `intermediate result` system has been improved. + * Achieved the `intermediate result` sharing between different functional products. The results that have the same image source and processing parameters are directly reused, which speeds up the image processing workflow. You don’t need to add any additional code to enable the `intermediate result` sharing. The library can recognize all the reusable results automatically based on the template file you uploaded. \ No newline at end of file diff --git a/programming/python/release-notes/python-7.md b/programming/python/release-notes/python-7.md new file mode 100644 index 00000000..1654e440 --- /dev/null +++ b/programming/python/release-notes/python-7.md @@ -0,0 +1,87 @@ +--- +layout: default-layout +title: Release Notes v7.x - Dynamsoft Barcode Reader SDK Python Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Python Edition v7.x. +keywords: release notes, python +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for Python SDK - 7.x + +## 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.0 (04/16/2020) + +Version 7.4 marks the initial release of Dynamsoft Barcode Reader Python SDK. + +### 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 an optimized decoding method for linear barcodes in vector PDF files. The vector PDF file can be decoded without rasterizing, increase decoding efficiency. +- 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. \ No newline at end of file diff --git a/programming/python/release-notes/python-8.md b/programming/python/release-notes/python-8.md new file mode 100644 index 00000000..39f7d2b7 --- /dev/null +++ b/programming/python/release-notes/python-8.md @@ -0,0 +1,167 @@ +--- +layout: default-layout +title: Release Notes v8.x - Dynamsoft Barcode Reader SDK Python Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Python Edition v8.x. +keywords: release notes, python +needAutoGenerateSidebar: true +needGenerateH3Content: false +noTitleIndex: true +--- + +# Release Notes for Python SDK - 8.x + +## 8.8.0 (10/22/2021) + +### 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`, 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`, `BarcodeWidthRangeArray`, `BarcodeAngleRangeArray` and `MinRatioOfBarcodeZoneWidthToHeight`. +- 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` is preset to 30, which can filter out the majority of misreading results and keep as many correct results as possible. + +## 8.6.0 (07/20/2021) + +### 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 two DeblurMode Enumerations, `DM_BASED_ON_LOC_BIN` and `DM_SHARPENING_SMOOTHING`, to support more usage scenarios. +- Added methods `init_license_from_dls` and `init_dls_connection_parameters` in `BarcodeReader` class to replace `init_license_from_lts` and `init_lts_connection_parameters`. +- Added class `DMDLSConnectionParameters` to replace class `DMLTSConnectionParameters`. + +#### Improved + +- Improved the `confidence` algorithm for 1D barcode results. Users can get even more accurate results by configuring the `confidence` filter. + +## 8.4.0 (06/10/2021) + +### New + +- Added a new method `get_idle_instances_count` to return the number of available instances when using the 'per concurrent instance' licensing model. +- Added the `organizationID` property for license authentication. +- Added a new attribute `is_mirrored` to the `TextResult` class. `is_mirrored` returns whether the barcode is mirrored. +- Added a new attribute `is_dpm` to the `TextResult` class. `is_dpm` 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 `handshake_code` is not set. + +## 8.2.0 (03/17/2021) + +### New + +- Added a new mode argument, `FindAccurateBoundary`, to `RegionPredetectionModes` that determines if the SDK attempts to find an accurate boundary when RegionPredetectionModes is set to `RPM_GENERAL_HSV_CONTRAST`. + +### 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. +- Added support for Python 3.9. + +### 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/19/2021) + +### NEW + +- Added support for MSI Code (Modified Plessey). +- Added a new member `barcode_zone_min_distance_to_image_borders` 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 the class `PublicRuntimeSettings` -> `barcode_zone_min_distance_to_image_borders`. +- Added exception error message to `TextResult` when license initialization fails or decoding authorization fails. +- Added a new abstract class `TextResultCallBack` which includes a abstract method `text_results_callback_func`. This method can be implemented in a subclass as a callback function to process text results which is triggered when the library finishes decoding a frame. +- Added a new abstract class `IntermediateResultCallBack` which includes a abstract method `intermediate_results_callback_func`. This method can be implemented in a subclass as a callback function to process intermediate results which is triggered when the library finishes decoding a frame. +- Added a new abstract class `ErrorCallBack` which includes a abstract method `error_callback_func`. This method can be implemented in a subclass as a callback function to process errors which is triggered when the library finishes decoding a frame. +- Redesigned the `start_video_mode` interface so that you can use callback functions for `TextResult`, `IntermediateResult` and handling errors. Previously, it only worked with `TextResult` callback function. + + +### 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.0.1 (01/06/2021) + +### FIXED + +- Fixed a typo in `init_license_from_lts`. + +## 8.0.0 (11/26/2020) + +### NEW + +- Implemented the mechanism of loading libraries dynamically at runtime when Parameter Mode Enumerations are used (except *_AUTO and *_SKIP). Use LibraryFileName and LibraryParameters to configure. +- (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. + +### FIXED + +- Fixed a crash issue that could happen when conflicts occur on Linux. + +### 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. \ No newline at end of file diff --git a/programming/python/release-notes/python-9.md b/programming/python/release-notes/python-9.md new file mode 100644 index 00000000..b6aa157d --- /dev/null +++ b/programming/python/release-notes/python-9.md @@ -0,0 +1,237 @@ +--- +layout: default-layout +title: Release Notes v9.x - Dynamsoft Barcode Reader SDK Python Edition +description: This is the release notes page of Dynamsoft Barcode Reader SDK Python Edition v9.x. +keywords: release notes, python +needGenerateH3Content: false +--- + +# Release Notes for Python Edition - 9.x + +## 9.6.60 (12/23/2025) + +### Security Updates + +- Updated third-party libraries to incorporate the latest security fixes. + +## 9.6.40 (03/14/2024) + +### New + +- Added support for Python 3.12. + +### 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. + +### Fixed + +- Fixed crash bugs in the barcode decoding algorithm. +- Fixed a bug where the location of the barcode result(s) might be incorrect. + +### Changed + +- Changed the error message of error `DBRERR_PDF_DLL_MISSING` from "The PDF DLL is missing" to "The PDF library could not be loaded". +- Added a new error code `DMERR_LICENSE_CACHE_USED`, which is returned when failing to connect to the license server but a valid license cache is available. Error codes `DMERR_FAILED_TO_REACH_DLS` and `DMERR_LICENSE_SYNC_FAILED` are no longer returned on this scenario. + +## 9.6.30 (08/29/2023) + +### New + +- Added a new method `get_instance_pool_status` and class `InstancePoolStatus` to provide a real-time view of how the concurrent instance licenses are being utilized. This applies only if you are using a concurrent instance license. + +### Improved + +- Optimized the concurrent instance management and license usage statistics when using a concurrent instance license. +- Extended the availability of methods `GetInstance` and `Recycle`, making them accessible to all licensing modes. +- Implemented additional checkpoints to ensure timely timeout and termination. + +### Fixed + +- Fixed a bug where barcode results varied depending on the operating system being used. +- Fixed a crash bug when initializing a license with a segmented license string. +- Fixed some bugs related to the barcode format settings when they are defined in the `RegionDefinition` object of the template. +- Fixed a memory leak issue. + + +## 9.6.20 (03/16/2023) + +### Fixed + +- Fixed a bug where the methods init_license and get_instance may not work as expected when using concurrent instance license. +- Fixed a bug where license authorization may fail when the main license server is not available. +- Other small fixes and tweaks. + +## 9.6.10 (01/10/2023) + +### New + +- Added support for Python 3.11. +- Added a new method `set_license_cache_path` in the `BarcodeReader` class to support customizing the license cache saving path. +- Add a new method `get_device_uuid` in the `BarcodeReader` class to support getting device UUID for license activating. +- Added error code `DMERR_LICENSE_BUFFER_FAILED` to the potential error list of the license activation methods and decode methods. The error code is returned when the directory of the license cache is inaccessible. + +### Improved + +- Improved the performance of Direct Part Marking (DPM) barcode decoding. +- Improved the performance of GS1 Databar barcode decoding. + +### Fixed + +- Fixed a crash bug when using a online license key on ARM64 environment. +- Fixed a crash bug when using a online license key on the AWS lambda environment. +- Fixed a bug that some OneD barcodes without start & stop characters are not decoded when parameter `RequireStartStopChars` is set to 0. +- Other small fixes and tweaks. + +## 9.6.0 (11/29/2022) + +### Version Highlights + +- **Image orientation** handling is supported by a new feature. With the new feature, you can: + - Get a **TranformationMatrix** along with the barcode location result. + - Implement coordinates transformation on the barcode location result with the **TransformationMatrix**. +- **DotCode** decoding is improved by optimizing the localization of DotCodes that are close to one another. +- **EAN8 barcode** decoding is improved by honing the accuracy of localization algorithms. +- **QR code** localizing is improved by reducing the mis-assemble rate of the finder patterns when using the localization mode LM_CONNECTED_BLOCK or LM_SCAN_DIRECTLY, which are designed for speed. The mis-assembling only occurs when there exist dense QR codes on the same image. +- **Mirrored rectangular DataMatrix barcode** is supported by implementing `MirrorMode` when localizing the barcodes. +- Deformed barcode decoding is improved by extending the supported modes and mode arguments of `DeformationResistingModes`. + +### Edition Highlights + +- Added duplicate barcode filter feature in video mode. You can implement duplicate filter to ignore duplicate barcodes for a period. + +### Changelog + +#### New + +- Added a property `orientation` to class `FrameDecodingParameters` to set the orientation information of the video frame. +- Added `orientation` to class ImageData to set the orientation information. +- Enabled decoding methods `decode_file()`, `decode_file_stream()` and `decode_base64_string()` to read EXIF data of the given image so that the library can obtain the orientation information of the image file. +- Added an optional parameter `orientation` to method `decode_buffer()` and `decode_buffer_manually()` to set the orientation information of the image data. +- Added a property `transformation_matrix` to class `LocalizationResult` so that the library can output a transformation matrix for transforming the localization coordinates to image's natural orientation. +- Added a method `transform_coordinates()` to support transforming the coordinates of a point based on a given transformation matrix. +- Added a property `duplicate_forget_time` to class `FrameDecodingParameters` to set the time period used to filter out duplicate results found in frames. +- Added a optional parameter `unique_barcode_callback_func` to method `start_video_mode` to set callback function to process unique barcode results which is triggered when the library finishes decoding a frame and finds unique barcodes. +- Added properties `has_left_row_indicator` and `has_right_row_indicator` to class `PDFDetailedResult` to return whether the left and right row indicator of the PDF417 barcode is detected. +- Added a member `BF2_ALL` to enumeration `BarcodeFormatIds_2` to support setting all barcode formats in BarcodeFormat group 2 with one enumeration. +- Extended the features of parameter `DeformationResistingModes`: + - Extended the valid mode arguments of `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` with two new arguments: `GrayscaleEnhancementMode` and `BinarizationMode`. + - Supported 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 accuracy of EAN8 localization result(s). +- Improved the localization of mirrored DataMatrix barcode by implementing `MirrorMode`. + +#### Fixed + +- Fixed a bug that DotCodes might not be decoded when they are densely arranged. +- Fixed a crash bug when trying to output a template which included `BarcodeTextRegExPattern`. +- Other small fixes and tweaks. + +## 9.4.0 (08/30/2022) + +### Highlights + +- **DotCode** decoding has been improved by optimizing the localization and decoding algorithm. +- **Stacked**, **skewed** or **perspective distorted OneD barcode** decoding has been improved. + +### Changelog + +#### New + +- Added an argument `IsOneDStacked` to `LM_SCAN_DIRECTLY` to process stacked OneD barcodes. +- Added a parameter `PatchCodeSearchingMargins` to specify the searching area of PatchCode. +- Added the supported data format of `FormatSpecification.PartitionModes` to enhance the readability of the parameters. Users can use a list of enumeration names to specify the `PartitionModes`. +- Added method `decode_base64_string` to support decoding images encoded with base64 string. +- Added the supported parameter types of method `decode_file_stream`. The parameter `file_stream` now supports both bytes and bytearray. + +#### Improved + +- Improved the localization mode `LM_LINES` to better support skewed and perspective OneD barcodes. +- Enhanced tamper resistance of the license keys so that any change to the license string makes it invalid. + +#### Deprecated + +- Deprecated the attribute `barcode_format_string_2` of `TextResult`, `ExtendedResult` and `LocalizationResult`. All the barcode format strings will be returned by the attribute `barcode_format_string`. + +## 9.2.0 (06/21/2022) + +### Version Highlights + +- Barcode boundary-seeking algorithm is refactored to improve stability. +- Pharmacode decoding is optimized to improve accuracy. +- The function of device-alias is added to allow users to give each device a readable name. For end-users and administrators, this makes it more friendly to distinguish between devices about license usage statistics. + +### Edition Highlights + +- Added macOS ARM64 support to the Python edition of the SDK. + +### Changelog + +#### New + +- Added a new method `set_device_friendly_name` to set a human-readable name that identifies the device. + +## 9.0.0 (03/31/2022) + +### Version Highlights + +- Simplified the license activation steps. Different license activation APIs are integrated into `initLicense` method. +- Added support for **Pharmacode**. +- Added support for **Code 11**, a 1D format. +- Deformation resisting modes `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` are optimized and detached from `DRM_GENERAL`. Users can specify a more effective deformation resisting mode when processing **QRCode** and **DataMatrix codes**. +- Optimized the confidence scoring system for **PDF417 codes**. + +### Edition Highlights + +- Added support for Python 3.10. + +### Changelog + +#### New + +- Added `BF_CODE_11` under Enumeration `EnumBarcodeFormat` to specify newly supported barcode format, Code 11. +- Added `BF2_PHARMACODE_ONE_TRACK`, `BF2_PHARMACODE_TWO_TRACK` and `BF2_PHARMACODE` under Enumeration `EnumBarcodeFormat_2` to specify newly supported barcode format, Pharmacode. +- Added error code `DBRERR_PHARMACODE_LICENSE_INVALID` which will be returned when the license of Pharmacode is invalid. +- Added `DRM_BROAD_WARP`, `DRM_LOCAL_REFERENCE` and `DRM_DEWRINKLE` under Enumeration `EnumDeformationResistingMode` to apply new deformation resisting modes. +- Added a parameter `FormatSpecification.PartitionModes` +- Added a parameter `FormatSpecification.VerifyCheckDigit` +- Added an Argument `ConfidenceThreshold` to the `LocalizationModes` mode arguments. + +#### Changed + +- Changed method `init_license` to a static method. +- Changed value of BF_ONED under Enumeration `EnumBarcodeFormat` to 0x003007FF to have BF_CODE_11 combined. +- Changed value of BF_ALL under Enumeration `EnumBarcodeFormat` to 0xFE3FFFFF to have BF_CODE_11 combined. +- Changed the behaviour of `DeformationResistingMode` DRM_GENERAL which now only applies basic process to resist deformation. +- Changed the return value of the method `get_idle_instances_count` from 0 to -1 when the available count needs to be updated from server by calling init_license. + + +#### Fixed +- Fixed a bug that might cause a crash when using multiple threads for barcode decoding. +- Fixed a bug that throws exceptions when using method `get_idle_instances_count`. +- Fixed a bug that Function Code 1 (FNC1) character would not return if it was in the first position of GS1-128 codes. +- Other small fixes and tweaks. + + +#### Deprecated + +The following items are now deprecated. They still work in this version but could be removed in the near future. +- `init_license_from_server` +- `init_license_from_license_content` +- `output_license_to_string` +- `init_dls_connection_parameters` +- `init_license_from_dls` +- `Enumeration EnumDMChargeWay` +- `Enumeration EnumDMDeploymentType` +- `Enumeration EnumDMLicenseModule` +- `Enumeration EnumDMUUIDGenerationMethod` +- `Enumeration EnumProduct` \ No newline at end of file