From 5ac9b65b4b40c151c5e656f6670372ae3a9c5c02 Mon Sep 17 00:00:00 2001 From: DMGithubPublisher Date: Thu, 30 Oct 2025 07:47:50 +0800 Subject: [PATCH 1/3] update to internal commit 7cbc777d --- .../programming-flutter.html | 77 ++++- index.md | 12 +- .../barcode-scanner/barcode-scan-result.md | 6 +- .../api-reference/barcode-scanner/index.md | 2 +- .../capture-vision-router.md | 113 ------- .../capture-vision-router/aztec-details.md | 52 +++ .../barcode-result-item.md | 42 ++- .../camera-enhancer.md | 128 +++++-- .../camera-toggle-button.md | 52 +++ .../camera-view.md | 44 ++- .../capture-vision-router.md | 318 ++++++++++++++++++ .../captured-result-receiver.md | 2 +- .../captured-result.md | 0 .../datamatrix-details.md | 76 +++++ .../decoded-barcodes-result.md | 10 +- .../capture-vision-router/dsrect.md | 70 ++++ .../feedback.md | 2 +- .../capture-vision-router/image-data.md | 75 +++++ .../capture-vision-router/image-drawer.md | 40 +++ .../capture-vision-router/image-io.md | 43 +++ .../capture-vision-router/image-processor.md | 142 ++++++++ .../intermediate-result-manager.md | 53 +++ .../license-manager.md | 0 .../multi-frame-cross-filter.md | 165 +++++++++ .../capture-vision-router/oned-details.md | 96 ++++++ .../parsed-field.md | 21 +- .../parsed-result-item.md | 0 .../parsed-result.md | 10 +- .../capture-vision-router/pdf417-details.md | 87 +++++ .../capture-vision-router/qr-code-details.md | 137 ++++++++ .../simplified-barcode-reader-settings.md | 2 +- .../simplified-capture-vision-settings.md | 13 - .../torch-button.md | 0 .../api-reference/enum/colour-channel.md | 35 ++ .../flutter/api-reference/enum/filter-type.md | 29 ++ .../flutter/api-reference/enum/focus-mode.md | 30 ++ .../api-reference/enum/image-pixel-format.md | 70 ++++ .../api-reference/enum/preset-template.md | 2 +- .../api-reference/enum/qr-code-correction.md | 31 ++ .../api-reference/enum/result-status.md | 2 +- programming/flutter/api-reference/index.md | 2 +- .../flutter/driver-license-user-guide.md | 12 +- .../explore-features/advanced-features.md | 65 ++++ .../explore-features/ui-customization.md | 10 +- .../flutter/foundational-user-guide.md | 25 +- programming/flutter/index.md | 3 +- programming/flutter/release-notes/index.md | 71 ++++ programming/flutter/samples/index.md | 2 +- 48 files changed, 2044 insertions(+), 235 deletions(-) delete mode 100644 programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md create mode 100644 programming/flutter/api-reference/capture-vision-router/aztec-details.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/barcode-result-item.md (72%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/camera-enhancer.md (61%) create mode 100644 programming/flutter/api-reference/capture-vision-router/camera-toggle-button.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/camera-view.md (64%) create mode 100644 programming/flutter/api-reference/capture-vision-router/capture-vision-router.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/captured-result-receiver.md (94%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/captured-result.md (100%) create mode 100644 programming/flutter/api-reference/capture-vision-router/datamatrix-details.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/decoded-barcodes-result.md (66%) create mode 100644 programming/flutter/api-reference/capture-vision-router/dsrect.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/feedback.md (98%) create mode 100644 programming/flutter/api-reference/capture-vision-router/image-data.md create mode 100644 programming/flutter/api-reference/capture-vision-router/image-drawer.md create mode 100644 programming/flutter/api-reference/capture-vision-router/image-io.md create mode 100644 programming/flutter/api-reference/capture-vision-router/image-processor.md create mode 100644 programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/license-manager.md (100%) create mode 100644 programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md create mode 100644 programming/flutter/api-reference/capture-vision-router/oned-details.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/parsed-field.md (75%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/parsed-result-item.md (100%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/parsed-result.md (63%) create mode 100644 programming/flutter/api-reference/capture-vision-router/pdf417-details.md create mode 100644 programming/flutter/api-reference/capture-vision-router/qr-code-details.md rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/simplified-barcode-reader-settings.md (94%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/simplified-capture-vision-settings.md (85%) rename programming/flutter/api-reference/{capture-vision-router-lite => capture-vision-router}/torch-button.md (100%) create mode 100644 programming/flutter/api-reference/enum/colour-channel.md create mode 100644 programming/flutter/api-reference/enum/filter-type.md create mode 100644 programming/flutter/api-reference/enum/focus-mode.md create mode 100644 programming/flutter/api-reference/enum/image-pixel-format.md create mode 100644 programming/flutter/api-reference/enum/qr-code-correction.md create mode 100644 programming/flutter/explore-features/advanced-features.md diff --git a/_includes/sidelist-programming/programming-flutter.html b/_includes/sidelist-programming/programming-flutter.html index 8d6fca50..a473bcda 100644 --- a/_includes/sidelist-programming/programming-flutter.html +++ b/_includes/sidelist-programming/programming-flutter.html @@ -10,6 +10,7 @@
  • Explore Features
  • Demo & Samples
  • @@ -35,21 +36,62 @@ diff --git a/index.md b/index.md index feb69a2f..4d4192b4 100644 --- a/index.md +++ b/index.md @@ -8,15 +8,15 @@ description: Dynamsoft Barcode Reader Mobile SDK Documentation Homepage # Dynamsoft Barcode Reader Mobile SDK Documentation +## Native
    - ![iOS Icon]({{site.assets}}img-icon/homepage/iOS.svg){:class="ios"} [iOS]({{ site.oc }}){:target="_blank"} - ![Android Icon]({{site.assets}}img-icon/homepage/Android.svg){:class="android"} [Android]({{ site.android }}){:target="_blank"} -- ![MAUI Icon]({{site.assets}}img-icon/homepage/MAUI.svg){:class="maui"} [MAUI]({{ site.dbr_maui }}){:target="_blank"} -- ![Flutter Icon]({{site.assets}}img-icon/homepage/Flutter.svg){:class="flutter"} [Flutter]({{ site.dbr_flutter }}){:target="_blank"} - + +## Frameworks
    -- ![React Native Icon]({{site.assets}}img-icon/homepage/React Native.svg){:class="react"} [React Native](https://www.dynamsoft.com/capture-vision/docs/programming/react-native/){:target="_blank"} -- ![Xamarin.Forms Icon]({{site.assets}}img-icon/homepage/Xamarin Forms.svg){:class="xamarin"} [Xamarin.Forms](https://www.dynamsoft.com/capture-vision/docs/programming/xamarin/){:target="_blank"} -- ![Cordova Icon]({{site.assets}}img-icon/homepage/Cordova.svg){:class="cordova"} [Cordova](https://www.dynamsoft.com/capture-vision/docs/programming/cordova/){:target="_blank"} \ No newline at end of file +- ![MAUI Icon]({{site.assets}}img-icon/homepage/MAUI.svg){:class="maui"} [MAUI]({{ site.dbr_maui }}){:target="_blank"} +- ![Flutter Icon]({{site.assets}}img-icon/homepage/Flutter.svg){:class="flutter"} [Flutter]({{ site.dbr_flutter }}){:target="_blank"} +- ![React Native Icon]({{site.assets}}img-icon/homepage/React Native.svg){:class="react"} [React Native](https://github.com/Dynamsoft/barcode-reader-react-native-samples?tab=readme-ov-file#api-references){:target="_blank"} \ No newline at end of file diff --git a/programming/flutter/api-reference/barcode-scanner/barcode-scan-result.md b/programming/flutter/api-reference/barcode-scanner/barcode-scan-result.md index 3d475fed..00c94369 100644 --- a/programming/flutter/api-reference/barcode-scanner/barcode-scan-result.md +++ b/programming/flutter/api-reference/barcode-scanner/barcode-scan-result.md @@ -25,14 +25,14 @@ class BarcodeScanResult | Property | Type | Description | | -------- | ---- | ----------- | -| [`barcodes`](#barcodes) | *List\* | Represents all the decoded barcodes in a list of [`BarcodeResultItem`](../capture-vision-router-lite/barcode-result-item.md). | +| [`barcodes`](#barcodes) | *List\* | Represents all the decoded barcodes in a list of [`BarcodeResultItem`](../capture-vision-router/barcode-result-item.md). | | [`status`](#status) | [*EnumResultStatus*](../enum/result-status.md) | Represents the result status, which can be finished, canceled or exception. | | [`errorCode`](#errorcode) | *int* | Represents the error code should something go wrong during the barcode scanning process. | | [`errorString`](#errorstring) | *string* | Represents the error message associated with the error code should something go wrong during the barcode scanning process. | ### barcodes -Represents all the decoded barcodes in an array of [`BarcodeResultItem`](../capture-vision-router-lite/barcode-result-item.md). +Represents all the decoded barcodes in an array of [`BarcodeResultItem`](../capture-vision-router/barcode-result-item.md). ```dart List? barcodes; @@ -40,7 +40,7 @@ List? barcodes; **Remarks** -Each individual decoded barcode comes out as a [`BarcodeResultItem`](../capture-vision-router-lite/barcode-result-item.md), which is part of the Foundational Capture Vision API. +Each individual decoded barcode comes out as a [`BarcodeResultItem`](../capture-vision-router/barcode-result-item.md), which is part of the Foundational Capture Vision API. ### status diff --git a/programming/flutter/api-reference/barcode-scanner/index.md b/programming/flutter/api-reference/barcode-scanner/index.md index 90e1ee01..46594035 100644 --- a/programming/flutter/api-reference/barcode-scanner/index.md +++ b/programming/flutter/api-reference/barcode-scanner/index.md @@ -37,5 +37,5 @@ The BarcodeScanner class is built on top of the Capture Vision Foundational API ### BarcodeScanResult -[`BarcodeScanResult`](barcode-scan-result.md) is a result class that contains all the decoded barcodes and their associated info. This class is dependent on the [`BarcodeResultItem`](../capture-vision-router-lite/barcode-result-item.md) class which is part of the Capture Vision Foundational API. +[`BarcodeScanResult`](barcode-scan-result.md) is a result class that contains all the decoded barcodes and their associated info. This class is dependent on the [`BarcodeResultItem`](../capture-vision-router/barcode-result-item.md) class which is part of the Capture Vision Foundational API. diff --git a/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md b/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md deleted file mode 100644 index 932ba21e..00000000 --- a/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -layout: default-layout -title: CaptureVisionRouter - Dynamsoft Capture Vision Flutter -description: CaptureVisionRouter class of Dynamsoft Capture Vision Router contains all of the core methods to use Dynamsoft Capture Vision. -keywords: CaptureVisionRouter, Barcode Reader, capture, flutter, foundational -needGenerateH3Content: true -needAutoGenerateSidebar: true -noTitleIndex: true -breadcrumbText: CaptureVisionRouter ---- - -# CaptureVisionRouter Class - -The `CaptureVisionRouter` class defines how a user interacts with image-processing and semantic-processing Dynamsoft products in their applications. - -A `CaptureVisionRouter` instance accepts and processes images from an image source and returns processing results which may contain final results or intermediate results. The instance can also process video frames coming from a camera or a different image source as well, therefore providing the ability to capture results via an interactive video scenario or from static images. - - - -## Definition - -*Assembly:* dynamsoft_capture_vision_flutter - -```dart -class CaptureVisionRouter -``` - -## Methods - -### capture - -Captures an image using the specified template and processes it - outputting a [`CapturedResult`](captured-result.md) containing the result(s) if there was no exception or error thrown. This method is to be used specifically when working with *static images*. - -```dart -Future capture( ImageData imageData, String templateName ) -``` - -**Remarks** - -The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. - -### startCapturing - -Starts the capturing process using the specified template. Any result(s) (of type [`CapturedResult`](captured-result.md)) that are received while the capture process is underway will be relayed by a result receiver, which is a callback function that is triggered once a captured result is found. - -```dart -Future startCapturing( String templateName ) -``` - -**Remarks** - -The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. - -### stopCapturing - -Stops the capturing process and closes the camera. - -```dart -Future stopCapturing() -``` - -### initSettings - -Initializes the settings of the `CaptureVisionRouter` instance using a JSON template (as a JSON string). To learn how to use a customized JSON template, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-a-json-template). - -```dart -Future initSettings( String content ) -``` - -### updateSettings - -Updates the specified template settings of the `CaptureVisionRouter` instance using a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. To learn how to update the settings using the SimplifiedCaptureVisionSettings class - please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). - -```dart -Future updateSettings( String templateName, SimplifiedCaptureVisionSettings settings ) -``` - -**Remarks** - -For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). - -### getSimplifiedSettings - -Returns a subset of the full applied settings as a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. This object contains the simplified settings of the Capture Vision Router instance, which in turn contains the simplified settings of the functional product used. - -```dart -Future getSimplifiedSettings(String templateName) async -``` - -**Remarks** - -The templateName parameter represents the Capture Vision template that has been applied, whether it is a [preset template](../enum/preset-template.md) or a custom template defined in a JSON template file or string. To learn how to use the `getSimplifiedSettings`, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). - -### resetSettings - -Resets all of the settings to their default values. - -```dart -Future resetSettings() async -``` - -### setInput - -Sets up an image source to provide images for continuous processing. This method is mainly used when configuring a camera (via the [`CameraEnhancer`](camera-enhancer.md)) as an input source. - -```dart -Future setInput(ImageSourceAdapter input) async -``` - -**Remarks** - -In most cases, the `ImageSourceAdapter` that will be used is a Camera Enhancer instance to allow the user to use their phone's built-in camera. - diff --git a/programming/flutter/api-reference/capture-vision-router/aztec-details.md b/programming/flutter/api-reference/capture-vision-router/aztec-details.md new file mode 100644 index 00000000..42754a5b --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/aztec-details.md @@ -0,0 +1,52 @@ +--- +layout: default-layout +title: AztecDetails Class - Dynamsoft Capture Vision Flutter +description: AztecDetails class of DCV Flutter represents the extended info of a QR Code. +keywords: aztec code, details, result, barcode, extended +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# AztecDetails + +The `AztecDetails` class encapsulates all of the extended details of an Aztec Code that is not available in the regular barcode result, if the barcode is an Aztec Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class AztecDetails +``` + +## Properties + +### rows + +Represents the number of rows that make up the Aztec Code. + +```dart +int rows; +``` + +### columns + +Represents the number of columns that make up the Aztec Code. + +```dart +int columns; +``` + +### layerNumber + +Represents the layer number of an Aztec code. A negative number (-1, -2, -3, -4) specifies a compact Aztec code, while a positive number (1, 2,...32) specifies a normal (full-range) Aztec code. + +```dart +int layerNumber; +``` + +**Remarks** + +When it comes to Aztec codes, there are two main sizes that the Barcode Reader library supports. The first is the compact Aztec code, which has 1 to 4 layers, and it is used for smaller pieces of data or messages. The second is a full-range Aztec code, which has 1 to 32 layers, and it is used for larger pieces of data or messages. + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md b/programming/flutter/api-reference/capture-vision-router/barcode-result-item.md similarity index 72% rename from programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md rename to programming/flutter/api-reference/capture-vision-router/barcode-result-item.md index 91b8cf5e..84f7f039 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md +++ b/programming/flutter/api-reference/capture-vision-router/barcode-result-item.md @@ -10,7 +10,7 @@ breadcrumbText: BarcodeResultItem # BarcodeResultItem Class -The `BarcodeResultItem` class represents a single barcode result decoded by the barcode reader. It is part of the [`DecodedBarcodesResult`](../api-reference/capture-vision-router-lite/decoded-barcodes-result.md), which is what the library outputs at the end of the barcode recognition process. +The `BarcodeResultItem` class represents a single barcode result decoded by the barcode reader. It is part of the [`DecodedBarcodesResult`](../api-reference/capture-vision-router/decoded-barcodes-result.md), which is what the library outputs at the end of the barcode recognition process. ## Definition @@ -114,3 +114,43 @@ Indicates whether the barcode image is mirrored. ```dart bool isMirrored; ``` + +### qrCodeDetails + +Represents extended info (as [`QRCodeDetails`](qr-code-details.md)) that is specific to QR Codes, if the decoded barcode is a QR Code. + +```dart +QRCodeDetails? qrCodeDetails; +``` + +### aztecDetails + +Represents extended info (as [`AztecDetails`](aztec-details.md)) that is specific to Aztec codes, if the decoded barcode is an Aztec code. + +```dart +AztecDetails? aztecDetails; +``` + +### dataMatrixDetails + +Represents extended info (as [`DataMatrixDetails`](datamatrix-details.md)) that is specific to DataMatrix codes, if the decoded barcode is a DataMatrix code. + +```dart +DataMatrixDetails? dataMatrixDetails; +``` + +### oneDCodeDetails + +Represents extended info (as [`OneDCodeDetails`](oned-details.md)) that is specific to 1D codes, if the decoded barcode is a 1D code. + +```dart +OneDCodeDetails? oneDCodeDetails; +``` + +### pdf417Details + +Represents extended info (as [`PDF417Details`](pdf417-details.md)) that is specific to PDF417 codes, if the decoded barcode is a PDF417 code. + +```dart +PDF417Details? pdf417Details; +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md b/programming/flutter/api-reference/capture-vision-router/camera-enhancer.md similarity index 61% rename from programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md rename to programming/flutter/api-reference/capture-vision-router/camera-enhancer.md index 4ecf6ee3..115d79a9 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md +++ b/programming/flutter/api-reference/capture-vision-router/camera-enhancer.md @@ -22,100 +22,156 @@ class CameraEnhancer ## Methods -### open +### close -Opens the selected camera to begin the capture process. +Closes the camera and releases the related resources. When the `CaptureVisionRouter` instance calls `stopCapturing`, please make sure to call this method as well to ensure that the resources are released properly. ```dart -Future open() +Future close() ``` -### setScanRegion +### destroy + +Destroys the camera enhancer instance and releases the related resources on the host side. -Sets the scan region of the camera and displays a bordered area on the UI to represent the scan region. To learn how to specify the scan region, please visit this [section of the foundational user guide](../../foundational-user-guide.md#specify-the-scan-region). +```dart +Future destroy() +``` + +### disableEnhancedFeatures + +Disables the selected and activated enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) of the Camera Enhancer. + +```dart +Future disableEnhancedFeatures(int features) +``` + +### enableEnhancedFeatures + +Activates the selected enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) provided by the Camera Enhancer library, including the auto-zoom and smart torch features. ```dart -Future setScanRegion( DSRect region ) +Future enableEnhancedFeatures(int features) ``` **Remarks** -This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. +This method must be used **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. If you would like to activate multiple enhanced features, then they must be combined using the OR (`|`) operator. -### selectCamera +```dart +await _cvr.setInput(_camera); +_camera.enableEnhancedFeatures(EnumEnhancedFeatures.autoZoom | EnumEnhancedFeatures.smartTorch); +_camera.open(); +``` -Selects the camera based on the specified [`EnumCameraPosition`](../enum/camera-position.md). +### getCameraPosition + +Returns the current camera being used, represented as a [`EnumCameraPosition`](../enum/camera-position.md). ```dart -Future selectCamera(EnumCameraPosition position) +Future getCameraPosition() async +``` + +### getColourChannelUsageType + +Retrieves the current colour channel (as a [`EnumColourChannelUsageType`](../enum/colour-channel.md)) that is being used by the camera enhancer. + +```dart +Future getColourChannelUsageType() ``` **Remarks** -If you attempt to select the **backDualWideAuto** or the **backUltraWide** cameras on an Android phone, an exception will be thrown as those cameras are only available on iPhones. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. +This method should be used to verify which colour channel the camera is using, and in turn verify what pixel type any images retrieved during the capture process will come out in. -### setZoomFactor +### getFocusMode -Sets the zoom factor of the camera. +Returns the current focus mode of the camera, represented as a [`EnumFocusMode`](../enum/focus-mode.md). ```dart -Future setZoomFactor( double zoom ) +Future getFocusMode() async ``` -### turnOnTorch +### getScanRegion -Turns on the camera's flashlight (if available). +Returns the current scan region as a [`DSRect`](dsrect.md) object. ```dart -Future turnOnTorch() +Future getScanRegion() async ``` -### turnOffTorch +### open -Turns off the camera's flashlight (if available). +Opens the selected camera to begin the capture process. ```dart -Future turnOffTorch() +Future open() ``` -### enableEnhancedFeatures +### selectCamera -Activates the selected enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) provided by the Camera Enhancer library, including the auto-zoom and smart torch features. +Selects the camera based on the specified [`EnumCameraPosition`](../enum/camera-position.md). ```dart -Future enableEnhancedFeatures( int features ) +Future selectCamera(EnumCameraPosition position) ``` **Remarks** -This method must be used **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. If you would like to activate multiple enhanced features, then they must be combined using the OR (`|`) operator. +If you attempt to select the **backDualWideAuto** or the **backUltraWide** cameras on an Android phone, an exception will be thrown as those cameras are only available on iPhones. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. + +### setColourChannelUsageType + +Defines the colour channel (as a [`EnumColourChannelUsageType`](../enum/colour-channel.md)) used by the camera enhancer - therefore determining whether the captured images or frames will come out in grayscale or colour (or one of the individual colours). ```dart -await _cvr.setInput(_camera); -_camera.enableEnhancedFeatures(EnumEnhancedFeatures.autoZoom | EnumEnhancedFeatures.smartTorch); -_camera.open(); +Future setColourChannelUsageType(EnumColourChannelUsageType type) ``` -### disableEnhancedFeatures +**Remarks** -Disables the selected and activated enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) of the Camera Enhancer. +This method should be used to change the pixel type of the original image or captured frame should you choose to retrieve it after the capture process. In order to retrieve the original image after the barcode is decoded or the captured result is received, please refer to [this article]. + +### setFocus + +Sets the focus point as well as the mode (as a [`EnumFocusMode`](../enum/focus-mode.md)) for the camera. ```dart -Future disableEnhancedFeatures(int features) +Future setFocus(Point point, EnumFocusMode focusMode) ``` -### close +### setScanRegion -Closes the camera and releases the related resources. When the `CaptureVisionRouter` instance calls `stopCapturing`, please make sure to call this method as well to ensure that the resources are released properly. +Sets the scan region of the camera and displays a bordered area on the UI to represent the scan region. To learn how to specify the scan region, please visit this [section of the foundational user guide](../../explore-features/ui-customization.md#specifying-a-scan-region). ```dart -Future close() +Future setScanRegion(DSRect region) async ``` -### destroy +**Remarks** -Destroys the camera enhancer instance and releases the related resources on the host side. +This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. + +### setZoomFactor + +Sets the zoom factor of the camera. ```dart -Future destroy() +Future setZoomFactor( double zoom ) +``` + +### turnOffTorch + +Turns off the camera's flashlight (if available). + +```dart +Future turnOffTorch() +``` + +### turnOnTorch + +Turns on the camera's flashlight (if available). + +```dart +Future turnOnTorch() ``` diff --git a/programming/flutter/api-reference/capture-vision-router/camera-toggle-button.md b/programming/flutter/api-reference/capture-vision-router/camera-toggle-button.md new file mode 100644 index 00000000..61f97b31 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/camera-toggle-button.md @@ -0,0 +1,52 @@ +--- +layout: default-layout +title: CameraToggleButton Class - Dynamsoft Capture Vision Flutter +description: CameraToggleButton class of DCV Flutter edition displays a camera preview with customizable UI elements. +keywords: camera, enhancer, barcode reader, flutter, capture vision, view +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# CameraToggleButton + +`CameraToggleButton` is a widget that represents a camera toggle button with customizable appearance and location. The camera toggle button allows the user to switch between the front and back cameras. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class CameraToggleButton +``` + +## Properties + +### location + +Defines the location of the camera toggle button (as a [Rect](https://api.flutter.dev/flutter/dart-ui/Rect-class.html)). This rectangle specifies the button's position and size on the screen. Coordinates are in pixels. + +```dart +Rect location; +``` + +### imageBase64 + +Sets the image (as a base64 string) to be used for the camera toggle button. + +```dart +String? imageBase64; +``` + +**Remarks** + +When setting the imageBase64 string, please note that the string should not include the `data:image/png;base64,` portion of the base64 string. + +## Code Snippet + +```dart +final CameraToggleButton _cameraToggleBtn = CameraToggle( + location: Rect.fromLTWH(300, 30, 50, 50), + imageBase64: "" +) +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/camera-view.md b/programming/flutter/api-reference/capture-vision-router/camera-view.md similarity index 64% rename from programming/flutter/api-reference/capture-vision-router-lite/camera-view.md rename to programming/flutter/api-reference/capture-vision-router/camera-view.md index 44e4114b..029effb7 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/camera-view.md +++ b/programming/flutter/api-reference/capture-vision-router/camera-view.md @@ -30,6 +30,30 @@ Sets the [`CameraEnhancer`](camera-enhancer.md) instance that the `CameraView` i final CameraEnhancer cameraEnhancer; ``` +### cameraToggleButton + +Defines a custom widget (as a `CameraToggleButton` object) to replace the default camera toggle button (to switch between the front and back cameras). + +```dart +final CameraToggleButton? cameraToggleButton; +``` + +**Remarks** + +If provided, this widget will be used instead of the default camera toggle button. You must ensure that the custom widget handles the camera switch operation appropriately. + +### cameraToggleButtonVisible + +Determines whether the camera toggle button (to switch between the front and back cameras) is visible. + +```dart +final bool? cameraToggleButtonVisible; +``` + +**Remarks** + +Default value is `false`. + ### scanLaserVisible Determines whether the scan laser will be visible in the scan region or not. @@ -38,6 +62,10 @@ Determines whether the scan laser will be visible in the scan region or not. final bool? scanLaserVisible; ``` +**Remarks** + +Defaults to `true` if not specified. + ### scanRegionMaskVisible Establishes whether the scan region (if defined via the `CameraEnhancer`) will be represented visually using a mask. The mask highlights the area where the barcode scanning occurs, and it defaults to `true` if not specified. @@ -48,7 +76,7 @@ final bool? scanRegionMaskVisible; **Remarks** -To learn how to limit the scan region, please visit this [section of the foundational user guide](../../foundational-user-guide.md#specify-the-scan-region). +To learn how to limit the scan region, please visit this [section of the foundational user guide](../../foundational-user-guide.md#specify-the-scan-region). Defaults to `true` if not specified. ### torchButtonVisible @@ -60,7 +88,7 @@ final bool? torchButtonVisible; **Remarks** -If no custom torch button is defined, the default torch icon will show up on the UI. +If no custom torch button is defined, the default torch icon will show up on the UI. Defaults to `true` if not specified. ### torchButton @@ -70,6 +98,18 @@ Defines a custom [`TorchButton`](torch-button.md) instead of the default torch i final TorchButton? torchButton; ``` +### visibleLayerIds + +Defines which drawing layer(s) to display on the camera view. The drawing layer is responsible for highlighting the captured result, so in the case of the Barcode Reader, the drawing layer would highlight any recognized barcodes. + +```dart +final List? visibleLayerIds; +``` + +**Remarks** + +The Capture Vision library can work with multiple functional products, including the Barcode Reader, Label Recognizer, and the Document Normalizer. If you would like to disable the feature to highlight any found barcodes, then the visibleLayerIds must not include `EnumDrawingLayerId.dbr`. + ## Code Snippet ```dart diff --git a/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md b/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md new file mode 100644 index 00000000..1a4abe00 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md @@ -0,0 +1,318 @@ +--- +layout: default-layout +title: CaptureVisionRouter - Dynamsoft Capture Vision Flutter +description: CaptureVisionRouter class of Dynamsoft Capture Vision Router contains all of the core methods to use Dynamsoft Capture Vision. +keywords: CaptureVisionRouter, Barcode Reader, capture, flutter, foundational +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +breadcrumbText: CaptureVisionRouter +--- + +# CaptureVisionRouter Class + +The `CaptureVisionRouter` class defines how a user interacts with image-processing and semantic-processing Dynamsoft products in their applications. + +A `CaptureVisionRouter` instance accepts and processes images from an image source and returns processing results which may contain final results or intermediate results. The instance can also process video frames coming from a camera or a different image source as well, therefore providing the ability to capture results via an interactive video scenario or from static images. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class CaptureVisionRouter +``` + +## Capture Methods + +| Method | Description | +| --- | --- | +| [`capture`](#capture) | Processes an image using the specified template and outputs a CapturedResult. | +| [`captureFile`](#capturefile) | Processes an image from a file path using the specified template. | +| [`captureFileBytes`](#capturefilebytes) | Processes an image from a byte array using the specified template. | +| [`startCapturing`](#startcapturing) | Starts the capturing process using the specified template. | +| [`stopCapturing`](#stopcapturing) | Stops the capturing process and closes the camera. | + +## Settings Management Methods + +| Method | Description | +| --- | --- | +| [`getSimplifiedSettings`](#getsimplifiedsettings) | Returns a subset of the full applied settings as a SimplifiedCaptureVisionSettings object. | +| [`getTemplateNames`](#gettemplatenames) | Returns a list of all available Capture Vision template names. | +| [`initSettings`](#initsettings) | Initializes the settings using a JSON template string. | +| [`initSettingsFromFile`](#initsettingsfromfile) | Initializes the settings using a JSON template file. | +| [`outputSettings`](#outputsettings) | Outputs the specified template's settings as a JSON string. | +| [`outputSettingsToFile`](#outputsettingstofile) | Outputs the specified template's settings to a JSON file. | +| [`resetSettings`](#resetsettings) | Resets all settings to their default values. | +| [`switchCapturingTemplate`](#switchcapturingtemplate) | Switches the template used by the Capture Vision Router instance to the specified template name. | +| [`updateSettings`](#updatesettings) | Updates the specified template settings using a SimplifiedCaptureVisionSettings object. | + +## Resource Management Methods + +| Method | Description | +| --- | --- | +| [`clearDLModelBuffers`](#cleardlmodelbuffers) | Clears the buffer used by deep learning models to free up memory and resources. | +| [`getIntermediateResultManager`](#getintermediateresultmanager) | Retrieves the IntermediateResultManager instance which allows the user to snap the original image. | +| [`setGlobalIntraOpNumThreads`](#setglobalintraopnumthreads) | Sets the global number of threads used internally by the library for model execution. | + +## Result Management Methods + +| Method | Description | +| --- | --- | +| [`addResultFilter`](#addresultfilter) | Adds a result filter to process the captured results. | +| [`addResultReceiver`](#addresultreceiver) | Adds a result receiver that listens for any captured results. | +| [`removeAllResultFilters`](#removeallresultfilters) | Removes all the result filters from the Capture Vision Router instance. | +| [`removeAllResultReceivers`](#removeallresultreceivers) | Removes all result receivers from the Capture Vision Router instance. | +| [`removeResultFilter`](#removeresultfilter) | Removes a previously added result filter. | +| [`removeResultReceiver`](#removeresultreceiver) | Removes a previously added result receiver. | + +## Input Source Methods + +| Method | Description | +| --- | --- | +| [`setInput`](#setinput) | Sets up an image source to provide images for continuous processing. | + +### addResultFilter + +Adds a result filter to process the captured results. This filter is of type MultiFrameResultCrossFilter. + +```dart +Future addResultFilter(MultiFrameResultCrossFilter filter) +``` + +**Remarks** + +Adding a result filter is not needed for the operation of the Capture Vision Router, but it can help improve the accuracy of the results by verifying them across multiple image frames. + +### addResultReceiver + +Adds a result receiver that listens for any captured results. This receiver is a callback function that is triggered once a captured result is produced - whether it is successful, cancelled, or failed. + +```dart +Future addResultReceiver(CapturedResultReceiver receiver) +``` + +**Remarks** + +To learn about the different result receivers that you can add, please refer to [`CapturedResultReceiver`](captured-result-receiver.md). Please note that adding a result receiver is necessary to getting the results that are produced by the Capture Vision Router instance. + +### capture + +Processes an image using the specified template and processes it - outputting a [`CapturedResult`](captured-result.md) containing the result(s) if there was no exception or error thrown. + +```dart +Future capture(ImageData imageData, String templateName) async +``` + +**Remarks** + +The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. This method is to be used specifically when working with *static images*. + +### captureFile + +Processes an image from a file (specified by a file path) using the specified template, returning the [`CapturedResult`](captured-result.md) once the process is done. + +```dart +Future captureFile(String filePath, String templateName) async +``` + +**Remarks** + +The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. This method is to be used specifically when working with *static images*. + +### captureFileBytes + +Processes an image from a byte array using the specified template, returning the [`CapturedResult`](captured-result.md) once the process is done. + +```dart +Future captureFileBytes(Uint8List bytes, String templateName) async +``` + +**Remarks** + +The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. This method is to be used specifically when working with *static images*. + +### clearDLModelBuffers + +Clears the buffer used by deep learning models to free up memory and resources used by the Capture Vision Router instance for its operation. + +```dart +static Future clearDLModelBuffers() +``` + +### getIntermediateResultManager + +Retrieves the [`IntermediateResultManager`](intermediate-result-manager.md) instance which allows the user to snap the original image that contains the captured result. + +```dart +IntermediateResultManager getIntermediateResultManager() +``` + +**Remarks** + +In order to get the original image that the captured result was taken from (especially in an interactive video scenario where the input is a camera feed), you will need to use the [`getOriginalImage`](intermediate-result-manager.md#getoriginalimage) method of the `IntermediateResultManager` instance. + +### getSimplifiedSettings + +Returns a subset of the full applied settings as a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. This object contains the simplified settings of the Capture Vision Router instance, which in turn contains the simplified settings of the functional product used. + +```dart +Future getSimplifiedSettings(String templateName) async +``` + +**Remarks** + +The templateName parameter represents the Capture Vision template that has been applied, whether it is a [preset template](../enum/preset-template.md) or a custom template defined in a JSON template file or string. To learn how to use the `getSimplifiedSettings`, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). + +### getTemplateNames + +Returns a list of all available Capture Vision template names when a custom template is used via `initSettings`. + +```dart +Future> getTemplateNames() async +``` + +**Remarks** + +A single template file/string can contain multiple Capture Vision templates, so this method will list each of the template(s) contained within the single template file/string. Each template can then be used with any of the capture methods, but only one at a time. + +### initSettings + +Initializes the settings of the `CaptureVisionRouter` instance using a JSON template (as a JSON string). To learn how to use a customized JSON template, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-a-json-template). + +```dart +Future initSettings(String content) +``` + +### initSettingsFromFile + +Initializes the settings of the `CaptureVisionRouter` instance using a JSON template (as a JSON file). To learn how to use a customized JSON template, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-a-json-template). + +```dart +Future initSettingsFromFile(String filePath) async +``` + +### outputSettings + +Outputs the specified Capture Vision template's settings as a JSON string. If `includeDefaultValues` is set to true, the output will include the default settings values. + +```dart +Future outputSettings(String templateName, bool includeDefaultValues) async +``` + +### outputSettingsToFile + +Outputs the specified Capture Vision template's settings to a JSON file. If `includeDefaultValues` is set to true, the output will include the default settings values. + +```dart +Future outputSettingsToFile(String templateName, String filePath, bool includeDefaultValues) async +``` + +### removeAllResultFilters + +Removes all the result filters from the Capture Vision Router instance. + +```dart +Future removeAllResultFilters() +``` + +### removeAllResultReceivers + +Removes all result receivers from the Capture Vision Router instance. + +```dart +Future removeAllResultReceivers() +``` + +### removeResultFilter + +Removes a previously added result filter. + +```dart +Future removeResultFilter(MultiFrameResultCrossFilter filter) +``` + +### removeResultReceiver + +Removes a previously added result receiver. + +```dart +Future removeResultReceiver(CapturedResultReceiver receiver) +``` + +### resetSettings + +Resets all of the settings to their default values. + +```dart +Future resetSettings() async +``` + +### setGlobalIntraOpNumThreads + +Sets the global number of threads used internally by the library for model execution. This parameter could help regulate the resources needed to operate the Capture Vision Router instance. + +```dart +static Future setGlobalIntraOpNumThreads(int intraOpNumThreads) +``` + +**Remarks** + +Setting the `intraOpNumThreads` input parameter to 0 lets the system decide the optimal number of threads. The default value is 0. + +### setInput + +Sets up an image source to provide images for continuous processing. This method is mainly used when configuring a camera (via the [`CameraEnhancer`](camera-enhancer.md)) as an input source. + +```dart +Future setInput(ImageSourceAdapter input) async +``` + +**Remarks** + +In most cases, the `ImageSourceAdapter` that will be used is a Camera Enhancer instance to allow the user to use their phone's built-in camera. + +### startCapturing + +Starts the capturing process using the specified template. Any result(s) (of type [`CapturedResult`](captured-result.md)) that are received while the capture process is underway will be relayed by a result receiver, which is a callback function that is triggered once a captured result is found. + +```dart +Future startCapturing(String templateName) +``` + +**Remarks** + +The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. + +### stopCapturing + +Stops the capturing process and closes the camera. + +```dart +Future stopCapturing() +``` + +### switchCapturingTemplate + +Switched the template used by the Capture Vision Router instance to the specified template name. + +```dart +Future switchCapturingTemplate(String templateName) async +``` + +**Remarks** + +For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). + +### updateSettings + +Updates the specified template settings of the `CaptureVisionRouter` instance using a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. To learn how to update the settings using the SimplifiedCaptureVisionSettings class - please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). + +```dart +Future updateSettings(String templateName, SimplifiedCaptureVisionSettings settings) +``` + +**Remarks** + +For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md b/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md similarity index 94% rename from programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md rename to programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md index 52eb5545..b9c091db 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md +++ b/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md @@ -26,7 +26,7 @@ class CapturedResultReceiver | ------ | ----------- | | [`onCapturedResultReceived`](#oncapturedresultreceived) | This callback is triggered when any kind of captured result is available at the end of the recognition process. | | [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. | -| [`onParsedResultsReceived`](#) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. | +| [`onParsedResultsReceived`](#onparsedreultsreceived) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. | ### onCapturedResultReceived diff --git a/programming/flutter/api-reference/capture-vision-router-lite/captured-result.md b/programming/flutter/api-reference/capture-vision-router/captured-result.md similarity index 100% rename from programming/flutter/api-reference/capture-vision-router-lite/captured-result.md rename to programming/flutter/api-reference/capture-vision-router/captured-result.md diff --git a/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md b/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md new file mode 100644 index 00000000..e18f02f5 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md @@ -0,0 +1,76 @@ +--- +layout: default-layout +title: DataMatrixDetails Class - Dynamsoft Capture Vision Flutter +description: DataMatrixDetails class of DCV Flutter represents the extended info of a DataMatrix Code. +keywords: datamatrix code, details, result, barcode, extended +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# DataMatrixDetails + +The `DataMatrixDetails` class encapsulates all of the extended details of a DataMatrix Code that is not available in the regular barcode result, if the barcode is a DataMatrix Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class DataMatrixDetails +``` + +## Properties + +### rows + +Represents the number of rows that make up the DataMatrix Code. + +```dart +int rows; +``` + +### columns + +Represents the number of columns that make up the DataMatrix Code. + +```dart +int columns; +``` + +### dataRegionRows + +Represents the number of rows in the data region of the DataMatrix code. + +```dart +int dataRegionRows; +``` + +**Remarks** + +The data region of a DataMatrix code defines the grid of square/rectangular modules that make up the L-shaped finder pattern as well as the timing pattern which dictates the alternation between the light and dark modules. + +### dataRegionColumns + +Represents the number of columns in the data region of the DataMatrix code. + +```dart +int dataRegionColumns; +``` + +**Remarks** + +The data region of a DataMatrix code defines the grid of square/rectangular modules that make up the L-shaped finder pattern as well as the timing pattern which dictates the alternation between the light and dark modules. + +### dataRegionNumber + +Represents the number of data regions in the DataMatrix code. + +```dart +int dataRegionNumber; +``` + +**Remarks** + +This property is mainly useful when it comes to large DataMatrix codes. Large DataMatrix codes have a grid that is subdivided into multiple data regions, each with its own finder pattern. For smaller DataMatrix codes, there is typically just a single data region. + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/decoded-barcodes-result.md b/programming/flutter/api-reference/capture-vision-router/decoded-barcodes-result.md similarity index 66% rename from programming/flutter/api-reference/capture-vision-router-lite/decoded-barcodes-result.md rename to programming/flutter/api-reference/capture-vision-router/decoded-barcodes-result.md index 9f1913d5..253f3878 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/decoded-barcodes-result.md +++ b/programming/flutter/api-reference/capture-vision-router/decoded-barcodes-result.md @@ -26,14 +26,14 @@ class DecodedBarcodesResult | -------- | ---- | ----------- | | [`items`](#items) | *List\?* | A list of [`BarcodeResultItem`](barcode-result-item.md), the basic unit representing a single barcode result. | -The following properties are inherited from [`CapturedResult`](./capture-vision-router-lite/captured-result.md): +The following properties are inherited from [`CapturedResult`](./capture-vision-router/captured-result.md): | Property | Type | Description | | -------- | ---- | ----------- | -| [`originalImageHashId`](../capture-vision-router-lite/captured-result.md#originalimagehashid) | *String* | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. | -| [`rotationTransformMatrix`](../capture-vision-router-lite/captured-result.md#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. | -| [`errorCode`](../capture-vision-router-lite/captured-result.md#errorcode) | *int* | The error code associated with the capture result. | -| [`errorMessage`](../capture-vision-router-lite/captured-result.md#errormessage) | *String* | The error message associated with the capture result. | +| [`originalImageHashId`](../capture-vision-router/captured-result.md#originalimagehashid) | *String* | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. | +| [`rotationTransformMatrix`](../capture-vision-router/captured-result.md#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. | +| [`errorCode`](../capture-vision-router/captured-result.md#errorcode) | *int* | The error code associated with the capture result. | +| [`errorMessage`](../capture-vision-router/captured-result.md#errormessage) | *String* | The error message associated with the capture result. | ### items diff --git a/programming/flutter/api-reference/capture-vision-router/dsrect.md b/programming/flutter/api-reference/capture-vision-router/dsrect.md new file mode 100644 index 00000000..ee15987c --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/dsrect.md @@ -0,0 +1,70 @@ +--- +layout: default-layout +title: DSRect Class - Dynamsoft Capture Vision Flutter +description: DSRect class of DCV Flutter is used to define a rectangular region. +keywords: region, DSRect, barcode reader, flutter, capture vision +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# DSRect + +The `DSRect` class is used to define a rectangular region. This is typically used by the `CameraEnhancer` class to set a scan region. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class DSRect +``` + +## Properties + +### left + +The left edge of the rectangle, set in pixels or as a percentage of the width of the frame. + +```dart +double left; +``` + +### top + +The top edge of the rectangle, set in pixels or as a percentage of the length of the frame. + +```dart +double top; +``` + +### right + +The right edge of the rectangle, set in pixels or as a percentage of the width of the frame. + +```dart +double right; +``` + +### bottom + +The bottom edge of the rectangle, set in pixels or as a percentage of the length of the frame. + +```dart +double bottom; +``` + +### measuredInPercentage + +Determines whether the rectangle's dimensions are measured as a percentage of the total image/frame dimensions or not. + +```dart +bool measuredInPercentage; +``` + +## Code Snippet + +```dart +final scanRegion = DSRect(left: 0.15, top: 0.3, right: 0.85, bottom: 0.7, measuredInPercentage: true); +await _camera.setScanRegion(scanRegion); +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/feedback.md b/programming/flutter/api-reference/capture-vision-router/feedback.md similarity index 98% rename from programming/flutter/api-reference/capture-vision-router-lite/feedback.md rename to programming/flutter/api-reference/capture-vision-router/feedback.md index 00117969..6afbbe23 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/feedback.md +++ b/programming/flutter/api-reference/capture-vision-router/feedback.md @@ -38,7 +38,7 @@ Triggers a vibration when a captured result is found. Future vibrate() ``` -**Code Snippet** +## Code Snippet ```dart late final CapturedResultReceiver _receiver = CapturedResultReceiver() diff --git a/programming/flutter/api-reference/capture-vision-router/image-data.md b/programming/flutter/api-reference/capture-vision-router/image-data.md new file mode 100644 index 00000000..b4336493 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/image-data.md @@ -0,0 +1,75 @@ +--- +layout: default-layout +title: ImageData Class - Dynamsoft Capture Vision Flutter +description: ImageData class of DCV Flutter represents an image with its raw attributes. +keywords: image data, intermediate, capture vision, original image, result +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# ImageData + +The `ImageData` class encapsulates all of an image's data, as well as metadata. It is used to represent an image, and the image's data can then be used for further operations such as analysis, viewing, or saving. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class ImageData +``` + +## Properties + +### bytes + +Represents the raw bytes of the image. + +```dart +Uint8List bytes; +``` + +### width + +Represents the width of the image in *pixels*. + +```dart +int width; +``` + +### height + +Represents the height of the image in *pixels*. + +```dart +int height; +``` + +### orientation + +Represents the orientation of the image as an angle. + +```dart +int orientation; +``` + +### format + +Represents the pixel format of the image as a [`EnumImagePixelFormat`](../enum/image-pixel-format.md). + +```dart +EnumImagePixelFormat format; +``` + +**Remarks** + +If you would like to change the pixel format of the image, please refer to the method [`setColourChannelUsageType`](camera-enhancer.md#setcolourchannelusagetype) of the `CameraEnhancer` class. + +### stride + +Represents the number of bytes in a single row of the image. + +```dart +int stride; +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router/image-drawer.md b/programming/flutter/api-reference/capture-vision-router/image-drawer.md new file mode 100644 index 00000000..c7815f65 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/image-drawer.md @@ -0,0 +1,40 @@ +--- +layout: default-layout +title: ImageDrawer Class - Dynamsoft Capture Vision Flutter +description: ImageDrawer class of DCV Flutter provides API to render shapes on images. +keywords: image drawer, intermediate, capture vision, original image, result, draw +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# ImageDrawer + +The `ImageDrawer` class provides API to render geometric shapes such as quadrilaterals on images. This class comes in handy when you want to add annotations to an image obtained from a `CapturedResult` or from the `IntermediateResultManager`. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class ImageDrawer +``` + +## Methods + +### drawOnImage + +Draws quadrilaterals on the image with the specified style parameters. + +```dart +Future drawOnImage(ImageData image, List quadrilaterals, int color, int thickness) async +``` + +**Remarks** + +- `image`: The source image to draw on. +- `quadrilaterals`: List of Quadrilateral objects to render onto the image. +- `color`: ARGB colour value (0xAARRGGBB format) +- `thickness`: The line thickness in pixels. + +The method returns an [`ImageData`](image-data.md) object that represents the new image with the rendered shapes. diff --git a/programming/flutter/api-reference/capture-vision-router/image-io.md b/programming/flutter/api-reference/capture-vision-router/image-io.md new file mode 100644 index 00000000..45bb0e6b --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/image-io.md @@ -0,0 +1,43 @@ +--- +layout: default-layout +title: ImageIO Class - Dynamsoft Capture Vision Flutter +description: ImageIO class of DCV Flutter provides API to read and write image data to the file system. +keywords: image io, intermediate, capture vision, original image, result, file system, save +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# ImageIO + +The `ImageIO` class provides API to handle image input/output operations such as saving images to the file system. This class allows the library to read and write image data to the file system. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class ImageIO +``` + +## Methods + +### saveToFile + +Saves the provided [`ImageData`](image-data.md) object (which represents an image) to a file at the specified file path. + +```dart +Future saveToFile(ImageData image, String path, bool overwrite) async +``` + +**Remarks** + +The `overwrite` input parameter should be set to true if the file already exists at the specified file path. + +### readFromFile + +Reads an image from a file at the specified file path and returns an [`ImageData`](image-data.md) object that represents the image. + +```dart +Future readFromFile(String path) async +``` diff --git a/programming/flutter/api-reference/capture-vision-router/image-processor.md b/programming/flutter/api-reference/capture-vision-router/image-processor.md new file mode 100644 index 00000000..f7e7df7e --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/image-processor.md @@ -0,0 +1,142 @@ +--- +layout: default-layout +title: ImageProcessor Class - Dynamsoft Capture Vision Flutter +description: ImageProcessor class of DCV Flutter provides API to crop images based on specified regions. +keywords: image processor, intermediate, capture vision, original image, crop +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# ImageProcessor + +The `ImageProcessor` class provides API to crop images based on specified regions. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class ImageProcessor +``` + +## Methods + +### cropImage + +Crops the image (as an [`ImageData`](image-data.md) object) to the region defined by the rectangle. + +```dart +Future cropImage(ImageData image, DSRect rect) async +``` + +**Remarks** + +The method returns an [`ImageData`](image-data.md) object that represents the newly cropped image. The method returns `null` if the cropping fails (invalid rectangle, out of bounds, a null `ImageData` object, etc.). + +### cropAndDeskewImage + +Crops the image (as an [`ImageData`](image-data.md) object) to the region defined by the Quadrilateral. + +```dart +Future cropAndDeskewImage(ImageData image, Quadrilateral quadrilateral, { + int dstWidth = 0, + int dstHeight = 0, + int padding = 0, + }) async +``` + +**Remarks** + +The `quadrilateral` input parameter defines the region to extract as four corner points. The method returns an [`ImageData`](image-data.md) object that represents the newly cropped image. The method returns `null` if the cropping fails (invalid Quadrilateral, out of bounds, a null `ImageData` object, etc.). + +### adjustBrightness + +Adjusts the brightness of the image (as an [`ImageData`](image-data.md) object) based on the specified brightness value. + +```dart +Future adjustBrightness(ImageData image, int brightness) async +``` + +**Remarks** + +The `brightness` input parameter ranges from -100 to 100. Positive values increase brightness while negative values decrease it. The method returns `null` if the adjustment fails. + +### adjustContrast + +Adjusts the contrast of the image (as an [`ImageData`](image-data.md) object) based on the specified contrast value. + +```dart +Future adjustContrast(ImageData image, int contrast) async +``` + +**Remarks** + +The `contrast` input parameter ranges from -100 to 100. Positive values increase brightness while negative values decrease it. The method returns `null` if the adjustment fails. + +### filterImage + +Applies a filter (represented with [`EnumFilterType`](../enum/filter-type.md)) to the image (as an [`ImageData`](image-data.md) object). + +```dart +Future filterImage(ImageData image, EnumFilterType type) async +``` + +**Remarks** + +The method returns `null` if the filtering fails. + +### convertToGray + +Converts the image (as an [`ImageData`](image-data.md) object) to grayscale using specified channel weights. + +```dart +Future convertToGray(ImageData image, { + double r = 0.3, + double g = 0.59, + double b = 0.11, +}) async +``` + +**Remarks** + +- `r`: Weight of the red channel (default value is 0.3). +- `g`: Weight of the green channel (default value is 0.59). +- `b`: Weight of the blue channel (default value is 0.11). + +The method returns `null` if the conversion fails. + +### convertToBinaryGlobal + +Converts the image (as an [`ImageData`](image-data.md) object) to a binary (black and white) format using global thresholding. + +```dart +Future convertToBinaryGlobal(ImageData image, { + int threshold = -1, + bool inverse = false, +}) async +``` + +Remarks + +- `threshold`: A value that ranges between 0 and 255. If -1, Otsu's method is used to determine the optimal threshold. +- `inverse`: If `true`, inverts the binary colours, resulting in a negative filter on the image. + +### convertToBinaryLocal + +Converts the image (as an [`ImageData`](image-data.md) object) to a binary (black and white) format using local adaptive thresholding. + +```dart +Future convertToBinaryLocal( + ImageData image, { + int blockSize = 0, + int compensation = 0, + bool inverse = false, +}) async +``` + +**Remarks** + +- `blockSize`: Size of the local region (must be odd and >= 3). +- `compensation`: Value to adjust the threshold (typically 0-10). +- `inverse`: If `true`, inverts the binary colours, resulting in a negative filter on the image. diff --git a/programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md b/programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md new file mode 100644 index 00000000..8910857a --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md @@ -0,0 +1,53 @@ +--- +layout: default-layout +title: IntermediateResultManager Class - Dynamsoft Capture Vision Flutter +description: IntermediateResultManager class of DCV Flutter provides API to retrieve the intermediate results taken during the capture process. +keywords: intermediate, result, capture vision, original image, manager +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# IntermediateResultManager + +The `IntermediateResultManager` class provides the API needed to manage the intermediate results that are produced during the capture process. Currently, the `IntermediateResultManager` is mainly used for when the user wants to retrieve the original image or frame that the captured result is taken from, especially in an interactive video scenario where the input is a camera feed. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class IntermediateResultManager +``` + +## Methods + +### getOriginalImage + +Retrieves the original image (as an ImageData object) associated with the captured result, based on the `originalImageHashId` of the [`CapturedResult`](captured-result.md). + +```dart +Future getOriginalImage(String hashId) async +``` + +**Remarks** + +In order to get the hashID input parameter, please access the `originalImageHashId` of the [`CapturedResult`](captured-result.md). The `CapturedResult` can be a [`DecodedBarcodesResult`](decoded-barcodes-result.md) (if the Barcode Reader is used) and so the `originalImageHashId` can be obtained from the `DecodedBarcodesResult` object directly since it extends the `CapturedResult` class. + +The method returns a [`ImageData`](image-data.md) object which contains all the info of the original image, including a byte array to represent the raw image. + +## Code Snippet + +```dart +..onDecodedBarcodesReceived = (DecodedBarcodesResult result) async { + if (result.items?.isNotEmpty ?? false) { + final intManager = CaptureVisionRouter.getIntermediateResultManager(); + final originalImage = await intManager.getOriginalImage(result.originalImageHashId); + if (originalImage != null){ + print(originalImage.format); // verify that it is output in colour + final filePath = "${directory.path}/dynamsoft_output.jpg"; // you can change this path to whatever works and that is accessible + await ImageIO().saveToFile(originalImage, filePath, true); // saving the captured frame to the directory above + } + } +}; +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/license-manager.md b/programming/flutter/api-reference/capture-vision-router/license-manager.md similarity index 100% rename from programming/flutter/api-reference/capture-vision-router-lite/license-manager.md rename to programming/flutter/api-reference/capture-vision-router/license-manager.md diff --git a/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md new file mode 100644 index 00000000..d39752ea --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md @@ -0,0 +1,165 @@ +--- +layout: default-layout +title: MultiFrameResultCrossFilter Class - Dynamsoft Capture Vision Flutter +description: MultiFrameResultCrossFilter class of DCV Flutter provides a filter for managing and filtering results. +keywords: filter, capture vision, barcode reader, flutter, multiframeresultcrossfilter, result +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# MultiFrameResultCrossFilter + +The `MultiFrameResultCrossFilter` class provides a filter that allows the library to manage and filter results by crosschecking the results across multiple images frames. This filter will compare consecutive frames of the video stream to perform operations like cross-verification, deduplication, and overlapping result management. + +> [!NOTE] +> This filter is especially handy in increasing the accuracy when trying to capture barcodes, documents, or MRZ zones via a camera in an interactive video scenario. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class MultiFrameResultCrossFilter +``` + +## Methods + +### destroy + +Destroys the `MultiFrameResultCrossFilter` instance and releases the related resources on the native side. + +```dart +Future destroy() +``` + +### enableLatestOverlapping + +Enables or disables the latest overlap result filtering. Latest overlap filtering helps in managing results that overlap in the most recent frames. + +```dart +Future enableLatestOverlapping(int resultItemTypes, bool enable) +``` + +**Remarks** + +`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). `enable` determines whether to enable or disable the filter process. + +### enableResultCrossVerification + +Enables or disables result cross verification for the specified result item types (represented as a combination of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md)). Cross verification helps in validating results across multiple frames, improving accuracy as a result. + +```dart +Future enableResultCrossVerification(int resultItemTypes, bool enable) +``` + +**Remarks** + +`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). `enable` determines whether to enable or disable the filter process. + +### enableResultDeduplication + +Enables or disables result deduplication for the specified result item types (represented as a combination of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md)). If this filter is activated, the library will not scan a barcode for an amount of time again after it is scanned successfully for the first time. In order to set the amount of time that the barcode is remembered, please refer to `setDuplicateForgetTime`. + +```dart +Future enableResultDeduplication(int resultItemTypes, bool enable) +``` + +**Remarks** + +`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). `enable` determines whether to enable or disable the filter process. + +### getDuplicateForgetTime + +Returns the amount of time, in *milliseconds*, that the deduplication filter takes effect for the specified result item type(s). + +```dart +Future getDuplicateForgetTime(int type) +``` + +**Remarks** + +`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). + +### getMaxOverlappingFrames + +Returns the maximum number of overlapping frames to check for the specified result item type(s) when the latest overlap filter is on. + +```dart +Future getMaxOverlappingFrames(int type) +``` + +**Remarks** + +`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). + +### isLatestOverlappingEnabled + +Checks if the latest overlapping filter is on for the specified result item type(s). + +```dart +Future isLatestOverlappingEnabled(int type) +``` + +**Remarks** + +`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). + +### isResultCrossVerificationEnabled + +Checks if the cross verification filter is on for the specified result item type(s). + +```dart +Future isResultCrossVerificationEnabled(int type) +``` + +**Remarks** + +`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). + +### isResultDeduplicationEnabled + +Checks if the deduplication filter is on for the specified result item type(s). + +```dart +Future isResultDeduplicationEnabled(int type) +``` + +**Remarks** + +`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). + +### setDuplicateForgetTime + +Defines the amount of time, in *milliseconds*, that the deduplication filter takes effect for the specified result item type(s). During this time, the library will not scan a certain barcode for the specified time after it has been scanned successfully for the first time. + +```dart +Future setDuplicateForgetTime(int resultItemTypes, int time) +``` + +**Remarks** + +`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). `time` specifies the target time in *milliseconds*. + + +Sets the maximum number of overlapping frames to check when the latest overlap filter is on for the specified result item type(s). + +```dart +Future setMaxOverlappingFrames(int resultItemTypes, int maxFramesToCheck) +``` + +**Remarks** + +`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). `maxFramesToCheck` specifies the target number of frames that the filter should not exceed. + +## Code Snippet + +```dart +final MultiFrameResultCrossFilter _multiFilter = MultiFrameResultCrossFilter(); +_multiFilter.enableResultCrossVerification(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.enableResultDeduplication(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.enableLatestOverlapping(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.setMaxOverlappingFrames(EnumCapturedResultItemType.barcode.value, 5); +_multiFilter.setDuplicateForgetTime(EnumCapturedResultItemType.barcode.value, 5000); +_cvr.addResultFilter(_multiFilter); +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router/oned-details.md b/programming/flutter/api-reference/capture-vision-router/oned-details.md new file mode 100644 index 00000000..35f3c692 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/oned-details.md @@ -0,0 +1,96 @@ +--- +layout: default-layout +title: OneDCodeDetails Class - Dynamsoft Capture Vision Flutter +description: OneDCodeDetails class of DCV Flutter represents the extended info of a OneD Code. +keywords: oned code, details, result, barcode, extended +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# OneDCodeDetails + +The `OneDCodeDetails` class encapsulates all of the extended details of a 1D Code that is not available in the regular barcode result, if the barcode is a 1D Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class OneDCodeDetails +``` + +## Properties + +### startCharsBytes + +A byte list representing the characters of the start pattern of a 1D barcode. + +```dart +Uint8List? startCharsBytes; +``` + +**Remarks** + +Each 1D barcode type has a unique start and stop pattern. These patterns are used to indicate the boundaries of the barcode which help the reader determine the direction to follow when reading the barcode. + +### stopCharsBytes + +A byte list representing the characters of the stop pattern of a 1D barcode. + +```dart +Uint8List? stopCharsBytes; +``` + +**Remarks** + +Each 1D barcode type has a unique start and stop pattern. These patterns are used to indicate the boundaries of the barcode which help the reader determine the direction to follow when reading the barcode. + +### checkDigitBytes + +A byte list representing the check digit of the barcode, if applicable. + +```dart +Uint8List? checkDigitBytes; +``` + +**Remarks** + +The check digit is a single digit that is concatenated at the end of a barcode's data in order to verify the accuracy of a scan. Different 1D barcodes have different ways to calculate the check digit. + +### startPatternRange + +Represents the position of the start pattern relative to the barcode location. The start pattern helps the reader determine the type of 1D barcode it's reading as well as determine the overall direction that the barcode should be read in. + +```dart +RangeValues startPatternRange; +``` + +**Remarks** + +The start of this range represents the x-coordinate of the start position as a percentage. The end of this range represents the x-coordinate of the end position as a percentage. + +### middlePatternRange + +Represents the position of the middle pattern relative to the barcode location. The middle, or center guard, pattern separates the two halves of the encoded data, and helps the Barcode Reader determine the reading direction while providing a fixed reference point for the reader. + +```dart +RangeValues startPatternRange; +``` + +**Remarks** + +The start of this range represents the x-coordinate of the start position as a percentage. The end of this range represents the x-coordinate of the end position as a percentage. + +### endPatternRange + +Represents the position of the end pattern relative to the barcode location. The end pattern points to the end of the encoded data, with each barcode type having its own rules on where the end pattern appears. + +```dart +RangeValues endPatternRange; +``` + +**Remarks** + +The start of this range represents the x-coordinate of the start position as a percentage. The end of this range represents the x-coordinate of the end position as a percentage. + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/parsed-field.md b/programming/flutter/api-reference/capture-vision-router/parsed-field.md similarity index 75% rename from programming/flutter/api-reference/capture-vision-router-lite/parsed-field.md rename to programming/flutter/api-reference/capture-vision-router/parsed-field.md index 2e564a8e..f78823a1 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/parsed-field.md +++ b/programming/flutter/api-reference/capture-vision-router/parsed-field.md @@ -24,18 +24,35 @@ class ParsedField | Property | Type | Description | | -------- | ---- | ----------- | -| [`value`](#value) | *String* | The raw string value of the parsed field. | +| [`value`](#value) | *String* | The processed value of the parsed field. | +| [`rawValue`](#value) | *String* | The raw string value of the field as obtained from the source data. | | [`mappingStatus`](#mappingstatus) | [*EnumMappingStatus*](../enum/mapping-status.md) | A status representing whether the field was mapped from the source data or not. | | [`validationStatus`](#validationstatus) | [*EnumValidationStatus*](../enum/validation-status.md) | The status of a field's value after the internal validation checks. | ### value -The raw string value of the parsed field. +The processed value of the parsed field. ```dart String value; ``` +**Remarks** + +The processed value usually comes in handy when dealing with country codes. For example, if the passport is from Canada, the processed string value would be "Canada" while the raw string value is "CAN". + +### rawValue + +The raw string value of the field as obtained from the source data. + +```dart +String rawValue; +``` + +**Remarks** + +The processed value usually comes in handy when dealing with country codes. For example, if the passport is from Canada, the processed string value would be "Canada" while the raw string value is "CAN". + ### mappingStatus A status representing whether the field was mapped from the source data or not, represented as a [`EnumMappingStatus`](../enum/mapping-status.md). If the field was unsuccessful during the mapping process, the mappingStatus would be `EnumMappingStatus.failed`. diff --git a/programming/flutter/api-reference/capture-vision-router-lite/parsed-result-item.md b/programming/flutter/api-reference/capture-vision-router/parsed-result-item.md similarity index 100% rename from programming/flutter/api-reference/capture-vision-router-lite/parsed-result-item.md rename to programming/flutter/api-reference/capture-vision-router/parsed-result-item.md diff --git a/programming/flutter/api-reference/capture-vision-router-lite/parsed-result.md b/programming/flutter/api-reference/capture-vision-router/parsed-result.md similarity index 63% rename from programming/flutter/api-reference/capture-vision-router-lite/parsed-result.md rename to programming/flutter/api-reference/capture-vision-router/parsed-result.md index ebe2b288..fb652434 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/parsed-result.md +++ b/programming/flutter/api-reference/capture-vision-router/parsed-result.md @@ -26,14 +26,14 @@ class ParsedResult | -------- | ---- | ----------- | | [`items`](#items) | *List\?* | A list of [`ParsedResultItem`](parsed-result-item.md), the basic unit representing a single parsed result from an encrypted text. | -The following properties are inherited from [`CapturedResult`](./capture-vision-router-lite/captured-result.md): +The following properties are inherited from [`CapturedResult`](./capture-vision-router/captured-result.md): | Property | Type | Description | | -------- | ---- | ----------- | -| [`originalImageHashId`](../capture-vision-router-lite/captured-result.md#originalimagehashid) | *String* | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. | -| [`rotationTransformMatrix`](../capture-vision-router-lite/captured-result.md#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. | -| [`errorCode`](../capture-vision-router-lite/captured-result.md#errorcode) | *int* | The error code associated with the capture result. | -| [`errorMessage`](../capture-vision-router-lite/captured-result.md#errormessage) | *String* | The error message associated with the capture result. | +| [`originalImageHashId`](../capture-vision-router/captured-result.md#originalimagehashid) | *String* | The hash id of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. | +| [`rotationTransformMatrix`](../capture-vision-router/captured-result.md#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. | +| [`errorCode`](../capture-vision-router/captured-result.md#errorcode) | *int* | The error code associated with the capture result. | +| [`errorMessage`](../capture-vision-router/captured-result.md#errormessage) | *String* | The error message associated with the capture result. | ### items diff --git a/programming/flutter/api-reference/capture-vision-router/pdf417-details.md b/programming/flutter/api-reference/capture-vision-router/pdf417-details.md new file mode 100644 index 00000000..239eef18 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/pdf417-details.md @@ -0,0 +1,87 @@ +--- +layout: default-layout +title: PDF417Details Class - Dynamsoft Capture Vision Flutter +description: PDF417Details class of DCV Flutter represents the extended info of a PDF417 Code. +keywords: PDF417 code, details, result, barcode, extended +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# PDF417Details + +The `PDF417Details` class encapsulates all of the extended details of a PDF417 Code that is not available in the regular barcode result, if the barcode is a PDF417 Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class PDF417Details +``` + +## Properties + +### rows + +Represents the number of rows that make up the PDF417 Code. + +```dart +int rows; +``` + +### columns + +Represents the number of columns that make up the PDF417 Code. + +```dart +int columns; +``` + +### errorCorrectionLevel + +Specifies the error correction level of the PDF417 Code. + +```dart +int errorCorrectionLevel; +``` + +**Remarks** + +There are eight levels for error correction when it comes to PDF417 codes, with each level indicating the readability of the PDF417 code even though it has been damaged or distorted. If you would like to learn more about the error correction levels and the differences between them, please refer to this [PDF417 info page](https://www.dynamsoft.com/barcode-reader/barcode-types/pdf417/). + +### hasLeftRowIndicator + +Indicates whether the PDF417 code has the left row indicator or not. + +```dart +bool version; +``` + +**Remarks** + +The left and right indicators do not contain any text data, but rather contains more of the metadata of the PDF417 code, like the number of rows, the error correction level, and more. + +### hasRightRowIndicator + +Indicates whether the PDF417 code has the right row indicator or not. + +```dart +bool hasRightRowIndicator; +``` + +**Remarks** + +The left and right indicators do not contain any text data, but rather contains more of the metadata of the PDF417 code, like the number of rows, the error correction level, and more. + +### codewords + +Represents the codewords of the PDF417 code. + +```dart +List? codewords; +``` + +**Remarks** + +The data codewords section is where numbers, letters, or other symbols are decoded in a cluster pattern of bars and spaces, each separated by a solid white column. There can be as few as one or as many as 30 data codeword clusters. The size of the PDF417 barcode depends on how much data is encoded. diff --git a/programming/flutter/api-reference/capture-vision-router/qr-code-details.md b/programming/flutter/api-reference/capture-vision-router/qr-code-details.md new file mode 100644 index 00000000..6a8352ee --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/qr-code-details.md @@ -0,0 +1,137 @@ +--- +layout: default-layout +title: QRCodeDetails Class - Dynamsoft Capture Vision Flutter +description: QRCodeDetails class of DCV Flutter represents the extended info of a QR Code. +keywords: qr code, details, result, barcode, extended +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# QRCodeDetails + +The `QRCodeDetails` class encapsulates all of the extended details of a QR Code that is not available in the regular barcode result, if the barcode is a QR Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class QRCodeDetails +``` + +## Properties + +### rows + +Represents the number of rows that make up the QR Code. + +```dart +int rows; +``` + +### columns + +Represents the number of columns that make up the QR Code. + +```dart +int columns; +``` + +### errorCorrectionLevel + +Represents the error correction level of the QR Code as a [`EnumQRCodeErrorCorrectionLevel`](../enum/qr-code-correction.md). + +```dart +EnumQRCodeErrorCorrectionLevel errorCorrectionLevel; +``` + +**Remarks** + +There are four levels of error correction that determine how much damage a QR Code can sustain and still be readable. The error correction level is determined when the QR Code is generated, and then later gets encoded into the final QR code image. + +### version + +Represents the version of the QR Code. + +```dart +int version; +``` + +### model + +Represents the number of models of the QR Code. + +```dart +int model; +``` + +### mode + +Identifies the first data encoding mode of the QR Code. + +```dart +int mode; +``` + +### page + +Identifies the position of the particular symbol (as in this specific QR Code) in the Structured Append format of the overall QR Code. + +```dart +int page; +``` + +**Remarks** + +Structured Append is a QR Code feature that is used to split a (typically) large message across several QR Codes. This comes in handy for data that would typically be too large to fit into a single QR Code. In these cases, each QR Code contains extra metadata indicating its position in the sequence as well as the total number of codes in the sequence. + +### totalPage + +Identifies the total number of symbols to be concatenated in the Structured Append format of the QR Code. + +```dart +int totalPage; +``` + +**Remarks** + +Structured Append is a QR Code feature that is used to split a (typically) large message across several QR Codes. This comes in handy for data that would typically be too large to fit into a single QR Code. In these cases, each QR Code contains extra metadata indicating its position in the sequence as well as the total number of codes in the sequence. + +### parityData + +Identifies the unique parity identifier of the QR Code in the Structured Append format. The parity identifier allows the library to confirm that the QR Codes of the Structured Append format belong to the same group. + +```dart +int parityData; +``` + +**Remarks** + +Structured Append is a QR Code feature that is used to split a (typically) large message across several QR Codes. This comes in handy for data that would typically be too large to fit into a single QR Code. The Parity Data shall be an 8-bit byte following the Symbol Sequence indicator. The parity data is a value obtained by XORing the ASCII/JIS values of all the original input data byte by byte before division into symbol blocks. + +### dataMaskPattern + +Represents the data mask pattern reference for the QR Code symbols. + +```dart +int dataMaskPattern; +``` + +**Remarks** + +A data mask pattern prevents large blocks of black or white modules that could confuse a scanner. There are eight mask patterns, with each having its own unique formula to determine whether to invert the colour of each module. The process of choosing one of the eight mask patterns is determined by the generator, assessing which pattern will lead to the lowest penalty score. This score is calculated based on a variety of factors that are defined in the QR Code specification. + +### codewords + +Represents the fundamental data units (or codewords) that are used to store the encoded data of a QR Code as well as the error correction info. + +```dart +Uint8List? codewords; +``` + +**Remarks** + +Typically in a QR Code, there are data codewords and error correction codewords. Data codewords contain the actual info encoded onto the QR Code, while the error correction codewords are extra codewords that contain unnecessary or superfluous data. These error correction codewords help the reader identify the QR Code even if it's damaged or distorted in some way. + + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/simplified-barcode-reader-settings.md b/programming/flutter/api-reference/capture-vision-router/simplified-barcode-reader-settings.md similarity index 94% rename from programming/flutter/api-reference/capture-vision-router-lite/simplified-barcode-reader-settings.md rename to programming/flutter/api-reference/capture-vision-router/simplified-barcode-reader-settings.md index 8521e89d..6d76eda6 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/simplified-barcode-reader-settings.md +++ b/programming/flutter/api-reference/capture-vision-router/simplified-barcode-reader-settings.md @@ -10,7 +10,7 @@ breadcrumbText: SimplifiedBarcodeReaderSettings # SimplifiedBarcodeReaderSettings -The `SimplifiedBarcodeReaderSettings` class comes from the [`SimplifiedCaptureVisionSettings`](./capture-vision-router-lite/simplified-capture-vision-settings.md) class and contains a limited subset of the parameters that influence the Barcode Reader's performance. If you would like to get familiar with the full parameters available to the Barcode Reader, please visit the [main parameters page]({{ site.dcvb_parameters }}file/index.html?product=dbr&lang=objectivec-swift). +The `SimplifiedBarcodeReaderSettings` class comes from the [`SimplifiedCaptureVisionSettings`](./capture-vision-router/simplified-capture-vision-settings.md) class and contains a limited subset of the parameters that influence the Barcode Reader's performance. If you would like to get familiar with the full parameters available to the Barcode Reader, please visit the [main parameters page]({{ site.dcvb_parameters }}file/index.html?product=dbr&lang=objectivec-swift). > [!TIP] > If you visit the main parameters page, the majority of the settings related to the Barcode Reader will be in `BarcodeReaderTaskSetting`, `ImageParameter`, and `BarcodeFormatSpecification`. diff --git a/programming/flutter/api-reference/capture-vision-router-lite/simplified-capture-vision-settings.md b/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md similarity index 85% rename from programming/flutter/api-reference/capture-vision-router-lite/simplified-capture-vision-settings.md rename to programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md index ec0a0a6f..523e01e4 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/simplified-capture-vision-settings.md +++ b/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md @@ -24,7 +24,6 @@ class SimplifiedCaptureVisionSettings | Property | Type | Description | | ---------- | ---- | ----------- | -| [`capturedResultItemTypes`](#capturedresultitemtypes) | [*EnumCapturedResultItemType*](../enum/captured-result-item-type.md) | Specifies the type(s) of [`CapturedResult`](captured-result.md) that the library will output. | | [`roi`](#roi) | *Quadrilateral* | Sets the region of interest (ROI) when reading from a camera or a static image. | | [`roiMeasuredInPercentage`](#roimeasuredinpercentage) | *bool* | Establishes whether the ROI is measured in pixels or as a percentage of the image/frame size. | | [`maxParallelTasks`](#maxparalleltasks) | *int* | Determines the maximum number of parallel tasks allowed for image capture and recognition. | @@ -32,18 +31,6 @@ class SimplifiedCaptureVisionSettings | [`timeout`](#timeout) | *int* | Specifies the maximum time (in milliseconds) allowed for image capture and recognition. | | [`barcodeSettings`](#barcodesettings) | *[SimplifiedBarcodeReaderSettings](simplified-barcode-reader-settings.md)* | The settings for the `DynamsoftBarcodeReader` tasks. | -### capturedResultItemTypes - -Specifies the type(s) of [`CapturedResult`](captured-result.md) that the library will output, represented as [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). - -```dart -EnumCapturedResultItemType capturedResultItemTypes; -``` - -**Remarks** - -If you are using - ### roi Sets the region of interest (ROI) when reading from a camera or a static image. If the camera is being used, any scan region that is set will be represented visually on the camera view. diff --git a/programming/flutter/api-reference/capture-vision-router-lite/torch-button.md b/programming/flutter/api-reference/capture-vision-router/torch-button.md similarity index 100% rename from programming/flutter/api-reference/capture-vision-router-lite/torch-button.md rename to programming/flutter/api-reference/capture-vision-router/torch-button.md diff --git a/programming/flutter/api-reference/enum/colour-channel.md b/programming/flutter/api-reference/enum/colour-channel.md new file mode 100644 index 00000000..48b089fd --- /dev/null +++ b/programming/flutter/api-reference/enum/colour-channel.md @@ -0,0 +1,35 @@ +--- +layout: default-layout +title: EnumColourChannelUsageType - Dynamsoft Barcode Reader Flutter +description: Enumeration EnumColourChannelUsageType of DBR Flutter Edition defines the available colour channels for the Camera Enhancer to use when capturing images or frames +keywords: colour channel, capture vision, camera, enhancer, pixel, format +needAutoGenerateSidebar: true +needGenerateH3Content: true +breadcrumbText: EnumColourChannelUsageType +--- + +# EnumColourChannelUsageType + +`EnumColourChannelUsageType` is an enumeration that specifies the different colour channels that are available to the Camera Enhancer. The colour channel affects the pixel type that the captured images or frames will come out in, so it can output grayscale or colour images. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +enum EnumColourChannelUsageType +{ + /** Automatic colour channel usage determination based on image pixel format and scene. **/ + auto, + /** Uses all colour channels to output a full colour image. **/ + fullChannel, + /** Uses only the luminance channel to output a grayscale image. **/ + yChannelOnly, + /** Uses only the red channel of the RGB space. **/ + rgbRChannelOnly, + /** Uses only the green channel of th RGB space. **/ + rgbGChannelOnly, + /** Uses only the blue channel of the RGB space. **/ + rgbBChannelOnly +} +``` diff --git a/programming/flutter/api-reference/enum/filter-type.md b/programming/flutter/api-reference/enum/filter-type.md new file mode 100644 index 00000000..f5b1b5b0 --- /dev/null +++ b/programming/flutter/api-reference/enum/filter-type.md @@ -0,0 +1,29 @@ +--- +layout: default-layout +title: EnumFilterType - Dynamsoft Barcode Reader Flutter +description: Enumeration EnumFilterType of DBR Flutter Edition defines the types of filters that can be applied to an image. +keywords: filter type, capture vision, image, processor +needAutoGenerateSidebar: true +needGenerateH3Content: true +breadcrumbText: EnumFilterType +--- + +# EnumFilterType + +`EnumFilterType` is an enumeration that specifies the different types of filters that can be applied to an image for further processing. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +enum EnumFilterType +{ + /** No filter applied. **/ + highPass, + /** Enhances the edges of the image. **/ + sharpen, + /** Smoothens the image. **/ + smooth +} +``` diff --git a/programming/flutter/api-reference/enum/focus-mode.md b/programming/flutter/api-reference/enum/focus-mode.md new file mode 100644 index 00000000..67d447af --- /dev/null +++ b/programming/flutter/api-reference/enum/focus-mode.md @@ -0,0 +1,30 @@ +--- +layout: default-layout +title: EnumFocusMode - Dynamsoft Barcode Reader Flutter +description: Enumeration EnumFocusMode of DBR Flutter Edition defines the available focus modes of the Camera Enhancer. +keywords: focus mode, capture vision, camera, enhancer +needAutoGenerateSidebar: true +needGenerateH3Content: true +breadcrumbText: EnumFocusMode +--- + +# EnumFocusMode + +`EnumFocusMode` is an enumeration that specifies the different modes of focus that the Camera Enhancer can apply to the camera feed. + +> [!TIP] +> If you choose to use the locked focus mode, the focal length used is determined by the input value of [`setFocus`](../capture-vision-router/camera-enhancer.md#setfocus). + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +enum EnumFocusMode +{ + /** Lock the focal length with an input value. **/ + locked, + /** Implements a continuous autoFocus. **/ + continuousAuto +} +``` diff --git a/programming/flutter/api-reference/enum/image-pixel-format.md b/programming/flutter/api-reference/enum/image-pixel-format.md new file mode 100644 index 00000000..62458815 --- /dev/null +++ b/programming/flutter/api-reference/enum/image-pixel-format.md @@ -0,0 +1,70 @@ +--- +layout: default-layout +title: EnumImagePixelFormat - Dynamsoft Barcode Reader Flutter +description: Enumeration EnumImagePixelFormat of DBR Flutter Edition defines the available colour channels for the Camera Enhancer to use when capturing images or frames +keywords: colour channel, capture vision, camera, enhancer, pixel, format +needAutoGenerateSidebar: true +needGenerateH3Content: true +breadcrumbText: EnumImagePixelFormat +--- + +# EnumImagePixelFormat + +`EnumImagePixelFormat` is an enumeration that specifies the different pixel formats of an image. From this enumeration, you can determine if an image is binary, grayscale, or colour. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +enum EnumImagePixelFormat +{ + /** Each pixel is represented by a single bit. **/ + binary, + + /** Each pixel is represented by a single bit and the bits are inverted. **/ + binaryInverted, + + /** Each pixel is represented by a single byte indicating the intensity of gray. **/ + grayScaled, + + /** A YUV format with a specific arrangement of chroma and luma components. **/ + nv21, + + /** Each pixel is represented by 16 bits: 5 bits for red, 6 bits for green, and 5 bits for blue. **/ + rgb565, + + /** Each pixel is represented by 15 bits: 5 bits each for red, green, and blue. **/ + rgb555, + + /** Each pixel is represented by 24 bits: 8 bits each for red, green, and blue. **/ + rgb888, + + /** Each pixel is represented by 32 bits: 8 bits each for alpha, red, green, and blue. **/ + argb8888, + + /** Each pixel is represented by 48 bits: 16 bits each for red, green, and blue. **/ + rgb161616, + + /** Each pixel is represented by 64 bits: 16 bits each for alpha, red, green, and blue. **/ + argb16161616, + + /** ABGR8888 pixel format, where each pixel is represented by 32 bits: 8 bits each for alpha, blue, green, and red. **/ + abgr8888, + + /** ABGR16161616 pixel format, where each pixel is represented by 64 bits: 16 bits each for alpha, blue, green, and red. **/ + abgr16161616, + + /** Each pixel is represented by 24 bits: 8 bits each for blue, green, and red. **/ + bgr888, + + /** Each pixel is represented by 8 bits in a binary format. **/ + binary8, + + /** NV12 pixel format, a YUV format with a specific arrangement of chroma and luma components. **/ + nv12, + + /** Inverted Binary8 pixel format, where each pixel is represented by 8 bits in a binary format and the bits are inverted. **/ + binary8Inverted, +} +``` diff --git a/programming/flutter/api-reference/enum/preset-template.md b/programming/flutter/api-reference/enum/preset-template.md index 853521aa..527007b9 100644 --- a/programming/flutter/api-reference/enum/preset-template.md +++ b/programming/flutter/api-reference/enum/preset-template.md @@ -11,7 +11,7 @@ breadcrumbText: EnumPresetTemplate # EnumPresetTemplate -`EnumPresetTemplate` is an enumeration of preset templates that are configured for different recognition tasks, depending on the functional product as well as the desired performance from that functional product. These strings can be used when specifying template name with the [`startCapturing`](../capture-vision-router-lite/capture-vision-router.md#startcapturing) or [`capture`](../capture-vision-router-lite/capture-vision-router.md#capture) methods of the [`CaptureVisionRouter`](../capture-vision-router-lite/capture-vision-router.md). +`EnumPresetTemplate` is an enumeration of preset templates that are configured for different recognition tasks, depending on the functional product as well as the desired performance from that functional product. These strings can be used when specifying template name with the [`startCapturing`](../capture-vision-router/capture-vision-router.md#startcapturing) or [`capture`](../capture-vision-router/capture-vision-router.md#capture) methods of the [`CaptureVisionRouter`](../capture-vision-router/capture-vision-router.md). ## Definition diff --git a/programming/flutter/api-reference/enum/qr-code-correction.md b/programming/flutter/api-reference/enum/qr-code-correction.md new file mode 100644 index 00000000..87db94d8 --- /dev/null +++ b/programming/flutter/api-reference/enum/qr-code-correction.md @@ -0,0 +1,31 @@ +--- +layout: default-layout +title: EnumQRCodeErrorCorrectionLevel - Dynamsoft Barcode Reader Flutter Edition +description: EnumQRCodeErrorCorrectionLevel of DynamsoftBarcodeReader Flutter is an enumeration class that defines the error correction levels of QR Codes. +keywords: QR Code, EnumQRCodeErrorCorrectionLevel, details, barcode, error, level +needAutoGenerateSidebar: true +needGenerateH3Content: true +breadcrumbText: EnumQRCodeErrorCorrectionLevel +--- + +# EnumQRCodeErrorCorrectionLevel + +`EnumQRCodeErrorCorrectionLevel` is an enumeration that defines the error correction levels of a QR Code. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +enum EnumQRCodeErrorCorrectionLevel +{ + /** High level **/ + h, + /** Low level **/ + l, + /** Medium level **/ + m, + /** Quartile level **/ + q +} +``` diff --git a/programming/flutter/api-reference/enum/result-status.md b/programming/flutter/api-reference/enum/result-status.md index 0869b482..976f0fd6 100644 --- a/programming/flutter/api-reference/enum/result-status.md +++ b/programming/flutter/api-reference/enum/result-status.md @@ -10,7 +10,7 @@ breadcrumbText: EnumResultStatus # EnumResultStatus -`EnumResultStatus` is a enumeration that defines the result status of the associated [`BarcodeScanResult`](../capture-vision-router-lite/barcode-result-item.md). +`EnumResultStatus` is a enumeration that defines the result status of the associated [`BarcodeScanResult`](../capture-vision-router/barcode-result-item.md). ## Definition diff --git a/programming/flutter/api-reference/index.md b/programming/flutter/api-reference/index.md index 81d15850..a9dbc0bd 100644 --- a/programming/flutter/api-reference/index.md +++ b/programming/flutter/api-reference/index.md @@ -14,7 +14,7 @@ This page provides an overview of the various modules and highlights the most es ## Modules Summary -**dynamsoft_capture_vision_flutter** represents the Dynamsoft Capture Vision library - the xparent library that contains the foundational classes and methods for not only the Barcode Reader, but the other functional Dynamsoft products such as the Dynamsoft Label Recognizer and the Dynamsoft Document Normalizer. +**dynamsoft_capture_vision_flutter** represents the Dynamsoft Capture Vision library - the parent library that contains the foundational classes and methods for not only the Barcode Reader, but the other functional Dynamsoft products such as the Dynamsoft Label Recognizer and the Dynamsoft Document Normalizer. **dynamsoft_barcode_reader_bundle_flutter** is built on the Dynamsoft Capture Vision (DCV) framework, which includes multiple modules working together to achieve the full barcode reading functionality. This library gives the developer access to the `BarcodeScanner` class, a **ready-to-use barcode reader** that requires minimal effort and configuration and comes with a sophisticated and user-friendly UI. diff --git a/programming/flutter/driver-license-user-guide.md b/programming/flutter/driver-license-user-guide.md index dc616523..113c1ddc 100644 --- a/programming/flutter/driver-license-user-guide.md +++ b/programming/flutter/driver-license-user-guide.md @@ -10,7 +10,7 @@ noTitleIndex: true # Driver License Scanner Integration Guide -This guide will focus on the specific use case of scanning driver licenses to quickly retrieve one's ID info. Similar to the [Foundational Integration Guide](guide-scan-barcodes-foundational-api.md), this guide will utilize the [`Capture Vision Foundational API`](./api-reference/capture-vision-router-lite/capture-vision-router.md) to get the driver license scanner up and running. +This guide will focus on the specific use case of scanning driver licenses to quickly retrieve one's ID info. Similar to the [Foundational Integration Guide](guide-scan-barcodes-foundational-api.md), this guide will utilize the [`Capture Vision Foundational API`](./api-reference/capture-vision-router/capture-vision-router.md) to get the driver license scanner up and running. > [!NOTE] > The Driver License Scanner is composed of two foundational Dynamsoft products - the [Dynamsoft Barcode Reader](https://www.dynamsoft.com/barcode-reader/sdk-mobile/) and the Dynamsoft Code Parser. The Barcode Reader is responsible for capturing and decoding the PDF417 barcodes of the driver licenses. Afterwards, the barcode result needs to be parsed into human-readable fields, which is where the Code Parser comes into play. @@ -76,13 +76,13 @@ import 'package:dynamsoft_capture_vision_flutter/dynamsoft_capture_vision_flutte Let's tackle the first and main component, the `ScannerPage` class which will be implemented in `scan_page.dart`. In order to implement the full driver license scanner workflow, the following needs to be done in order: -- Define a valid license via the [`LicenseManager`](./api-reference/capture-vision-router-lite/license-manager.md) -- Initialize the [`CameraEnhancer`](./api-reference/capture-vision-router-lite/camera-enhancer.md) object -- Initialize the [`CaptureVisionRouter`](./api-reference/capture-vision-router-lite/capture-vision-router.md) object +- Define a valid license via the [`LicenseManager`](./api-reference/capture-vision-router/license-manager.md) +- Initialize the [`CameraEnhancer`](./api-reference/capture-vision-router/camera-enhancer.md) object +- Initialize the [`CaptureVisionRouter`](./api-reference/capture-vision-router/capture-vision-router.md) object - Bind the `CameraEnhancer` object to the `CaptureVisionRouter` object -- Register a [`CapturedResultReceiver`](./api-reference/capture-vision-router-lite/captured-result-receiver.md) object to listen for parsed driver license barcode results via the callback function [`onParsedResultsReceived`](./api-reference/capture-vision-router-lite/captured-result-receiver.md#ondecodedbarcodesreceived) +- Register a [`CapturedResultReceiver`](./api-reference/capture-vision-router/captured-result-receiver.md) object to listen for parsed driver license barcode results via the callback function [`onParsedResultsReceived`](./api-reference/capture-vision-router/captured-result-receiver.md#ondecodedbarcodesreceived) - Open the camera -- Start scanning via the [`startCapturing`](./api-reference/capture-vision-router-lite/capture-vision-router.md#startcapturing) method while being configured to the `ReadDriversLicense` template. +- Start scanning via the [`startCapturing`](./api-reference/capture-vision-router/capture-vision-router.md#startcapturing) method while being configured to the `ReadDriversLicense` template. The code snippet below shows the simplest implementation of `ScannerPage` that will set up and launch the Driver License Scanner. Please note that in order to use the Driver License Scanner, a **valid license must be defined in the code**. diff --git a/programming/flutter/explore-features/advanced-features.md b/programming/flutter/explore-features/advanced-features.md new file mode 100644 index 00000000..279efa20 --- /dev/null +++ b/programming/flutter/explore-features/advanced-features.md @@ -0,0 +1,65 @@ +--- +layout: default-layout +title: Advanced Features (Foundational Edition) - Dynamsoft Barcode Reader Flutter Edition +description: The advanced features guide for the foundational edition of Dynamsoft Barcode Reader Flutter gives the user insight on how to utilize some of the more complicated features of the Capture Vision library. +keywords: advanced, customization, foundational, Flutter, barcode reader +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# Advanced Features Guide (Foundational Edition) + +The Capture Vision (and in turn, its functional products like the Barcode Reader) comes with a number of advanced features that can prove to be useful in certain scenarios or provides the user with more info related to the core results. In this guide, we will explore some of these advanced features and how to implement them using the Capture Vision Foundational API. + +## Retrieving the Original Image + +One of the main advanced features that the library offers is the ability to retrieve the original image or frame that contains the captured result when it is recognized from a video stream via a camera. For example, if you are scanning barcodes, the library will always give you back the barcode result of course, but you can also configure it so that it sends back an image of the barcode as well - whether it is stored in a database or used for further analysis. + +The main class that helps you achieve this is the [`IntermediateResultManager`](../api-reference/capture-vision-router/intermediate-result-manager.md), and through that class you can retrieve the original image using the `getOriginalImage` method. + +Here is an implementation of the `onDecodedBarcodesReceived` callback that will get the original image as well as the actual barcode result. + +```dart +..onDecodedBarcodesReceived = (DecodedBarcodesResult result) async { + if (result.items?.isNotEmpty ?? false) { + final intManager = CaptureVisionRouter.getIntermediateResultManager(); + final originalImage = await intManager.getOriginalImage(result.originalImageHashId); + if (originalImage != null){ + print(originalImage.format); // verify that it is output in colour + final filePath = "${directory.path}/dynamsoft_output.jpg"; // you can change this path to whatever works and that is accessible + ImageManager().saveToFile(originalImage, filePath, true); // saving the captured frame to the directory above + } + await _cvr.stopCapturing(); + var displayString = result.items?.map((item) => "Format: ${item.formatString}\nText: ${item.text}").join('\n\n'); + + showTextDialog("Barcodes Count: ${result.items?.length ?? 0}", displayString ?? "", () { + _cvr.startCapturing(_templateName); + }); + } + }; +``` + +## Enabling Haptic Feedback + +Another feature that the Capture Vision library offers is the ability to trigger a couple of haptic feedback reactions once a barcode is found. This is done via the [`FeedBack`](api-reference/capture-vision-router/feedback.md) class - and it should be called in the result callback function so that the haptic feedback occurs once a barcode is successfully decoded. + +> [!NOTE] +> To see how the FeedBack class should be implemented to trigger these haptic feedback reactions once a barcode is found, please visit the [`FeedBack` API](../api-reference/capture-vision-router/feedback.md) page. + +## Increasing Result Consistency using the MultiFrameResultCrossFilter + +The [`MultiFrameResultCrossFilter`](../api-reference/capture-vision-router/multi-frame-cross-filter.md) class allows the user to increase the accuracy of the results that the library outputs. By comparing the same result over multiple frames, the `MultiFrameResultCrossFilter` is able to verify that the result is accurate. The number of frames that get compared is configurable, but by default it would be five frames if the result cross verification is enabled. + +`MultiFrameResultCrossFilter` also helps eliminate the issue of duplicated barcodes, eliminating any dupliated barcode scans to count against the scan quota of your license (kf you are on a per-scan license). + +Please see the code snippet below on how to activate the different filters of the `MultiFrameResultCrossFilter`. + +```dart +final MultiFrameResultCrossFilter _multiFilter = MultiFrameResultCrossFilter(); +_multiFilter.enableResultCrossVerification(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.enableResultDeduplication(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.enableLatestOverlapping(EnumCapturedResultItemType.barcode.value, true); +_multiFilter.setMaxOverlappingFrames(EnumCapturedResultItemType.barcode.value, 5); +_multiFilter.setDuplicateForgetTime(EnumCapturedResultItemType.barcode.value, 5000); +_cvr.addResultFilter(_multiFilter); +``` \ No newline at end of file diff --git a/programming/flutter/explore-features/ui-customization.md b/programming/flutter/explore-features/ui-customization.md index 2cd8aba7..094ceec1 100644 --- a/programming/flutter/explore-features/ui-customization.md +++ b/programming/flutter/explore-features/ui-customization.md @@ -13,7 +13,7 @@ One of the advantages of using the foundational edition of the Barcode Reader is ## Specifying a Scan Region -You can limit the scan region of the SDK so that **it doesn't exhaust resources trying to read from the entire image or frame**. In order to do this, we must use the [`setScanRegion`](../api-reference/capture-vision-router-lite/camera-enhancer.md#setscanregion) method of the `CameraEnhancer` class. +You can limit the scan region of the SDK so that **it doesn't exhaust resources trying to read from the entire image or frame**. In order to do this, we must use the [`setScanRegion`](../api-reference/capture-vision-router/camera-enhancer.md#setscanregion) method of the `CameraEnhancer` class. ```dart import 'package:dynamsoft_capture_vision_flutter/dynamsoft_capture_vision_flutter.dart'; @@ -32,22 +32,22 @@ void initSdk() async { > [!TIP] > It is recommended to have `measuredInPercentage` set to true to make the calculation process as easy as possible. -Once a scan region is set, the region will by default be represented visually using a scan region mask. To control the visibility of this mask, please set the [`scanRegionMaskVisible`](../api-reference/capture-vision-router-lite/camera-view.md#scanregionmaskvisible) property of the `CameraView` to `false`. +Once a scan region is set, the region will by default be represented visually using a scan region mask. To control the visibility of this mask, please set the [`scanRegionMaskVisible`](../api-reference/capture-vision-router/camera-view.md#scanregionmaskvisible) property of the `CameraView` to `false`. ## Customizing the Camera View One of the main advantages of using the Camera Enhancer component to control camera operations is that it comes with a camera view UI that is fully customizable. -The [`CameraView`](../api-reference/capture-vision-router-lite/camera-view.md) class comes with a few elements - namely a torch (flash) button, a scan region mask (if a scan region is set), a scan laser, and a drawing layer to highlight any detected barcodes. +The [`CameraView`](../api-reference/capture-vision-router/camera-view.md) class comes with a few elements - namely a torch (flash) button, a scan region mask (if a scan region is set), a scan laser, and a drawing layer to highlight any detected barcodes. ### Customizing the Flash Button -The CameraView comes with its own default torch button that allows the user to toggle the camera's flash on or off. Through the [`CameraView`](../api-reference/capture-vision-router-lite/camera-view.md) and [`TorchButton`](../api-reference/capture-vision-router-lite/torch-button.md) classes, you can customize the appearance, size, and position of the torch button - as well as the visibility of the button. +The CameraView comes with its own default torch button that allows the user to toggle the camera's flash on or off. Through the [`CameraView`](../api-reference/capture-vision-router/camera-view.md) and [`TorchButton`](../api-reference/capture-vision-router/torch-button.md) classes, you can customize the appearance, size, and position of the torch button - as well as the visibility of the button. In this next code snippet, we will demonstrate how you can create and assign a custom TorchButton - as well as show the full CameraView configuration. > [!NOTE] -> The only required property that needs to be set in `CameraView` is the cameraEnhancer property. Any camera view component must be "attached" to a [`CameraEnhancer`](../api-reference/capture-vision-router-lite/camera-enhancer.md) instance. +> The only required property that needs to be set in `CameraView` is the cameraEnhancer property. Any camera view component must be "attached" to a [`CameraEnhancer`](../api-reference/capture-vision-router/camera-enhancer.md) instance. ```dart ... diff --git a/programming/flutter/foundational-user-guide.md b/programming/flutter/foundational-user-guide.md index 8bf3aa94..b46d70e1 100644 --- a/programming/flutter/foundational-user-guide.md +++ b/programming/flutter/foundational-user-guide.md @@ -10,9 +10,9 @@ noTitleIndex: true # Barcode Reader Integration Guide (Foundational Edition) -This guide will help you develop a barcode scanning app using the [Dynamsoft Capture Vision Foundational API](./api-reference/capture-vision-router-lite/capture-vision-router.md). +This guide will help you develop a barcode scanning app using the [Dynamsoft Capture Vision Foundational API](./api-reference/capture-vision-router/capture-vision-router.md). -Dynamsoft Capture Vision (DCV) is an aggregating library for several of Dynamsoft's functional products, including the Dynamsoft Barcode Reader SDK. The [`Capture Vision API`](./api-reference/capture-vision-router-lite/capture-vision-router.md) does not come with a pre-built UI like the BarcodeScanner component (see this [guide](user-guide.md)) - it does provide the user with more parameters to control the barcode reading performance and settings. +Dynamsoft Capture Vision (DCV) is an aggregating library for several of Dynamsoft's functional products, including the Dynamsoft Barcode Reader SDK. The [`Capture Vision API`](./api-reference/capture-vision-router/capture-vision-router.md) does not come with a pre-built UI like the BarcodeScanner component (see this [guide](user-guide.md)) - it does provide the user with more parameters to control the barcode reading performance and settings. ## System Requirements @@ -59,13 +59,13 @@ import 'package:dynamsoft_capture_vision_flutter/dynamsoft_capture_vision_flutte In order to implement the full barcode reader workflow, the following needs to be done in order: -- Define a valid license via the [`LicenseManager`](./api-reference/capture-vision-router-lite/license-manager.md) -- Initialize the [`CameraEnhancer`](./api-reference/capture-vision-router-lite/camera-enhancer.md) object -- Initialize the [`CaptureVisionRouter`](./api-reference/capture-vision-router-lite/capture-vision-router.md) object +- Define a valid license via the [`LicenseManager`](./api-reference/capture-vision-router/license-manager.md) +- Initialize the [`CameraEnhancer`](./api-reference/capture-vision-router/camera-enhancer.md) object +- Initialize the [`CaptureVisionRouter`](./api-reference/capture-vision-router/capture-vision-router.md) object - Bind the `CameraEnhancer` object to the `CaptureVisionRouter` object -- Register a [`CapturedResultReceiver`](./api-reference/capture-vision-router-lite/captured-result-receiver.md) object to listen for decoded barcodes via the callback function [`onDecodedBarcodesReceived`](./api-reference/capture-vision-router-lite/captured-result-receiver.md#ondecodedbarcodesreceived) +- Register a [`CapturedResultReceiver`](./api-reference/capture-vision-router/captured-result-receiver.md) object to listen for decoded barcodes via the callback function [`onDecodedBarcodesReceived`](./api-reference/capture-vision-router/captured-result-receiver.md#ondecodedbarcodesreceived) - Open the camera -- Start barcode scanning via the [`startCapturing`](./api-reference/capture-vision-router-lite/capture-vision-router.md#startcapturing) method +- Start barcode scanning via the [`startCapturing`](./api-reference/capture-vision-router/capture-vision-router.md#startcapturing) method The code snippet below shows the simplest implementation that will set up and launch the Barcode Reader. Please note that in order to use the Barcode Reader, a **valid license must be defined in the code**. @@ -159,8 +159,8 @@ The Barcode Reader library comes with many customization parameters that can aff > [!TIP] > The Barcode Reader settings can be changed in two ways: -> 1. Using the [`SimplifiedBarcodeReaderSettings`](./api-reference/capture-vision-router-lite/simplified-barcode-reader-settings.md) class (via the [`SimplifiedCaptureVisionSettings`](./api-reference/capture-vision-router-lite/simplified-capture-vision-settings.md) class) and the [`updateSettings`](./api-reference/capture-vision-router-lite/capture-vision-router.md#updatesettings) method. -> 2. Using a JSON template file that contains the algorithm parameters, which is then applied using the [`initSettings`](./api-reference/capture-vision-router-lite/capture-vision-router.md#initsettings) method. +> 1. Using the [`SimplifiedBarcodeReaderSettings`](./api-reference/capture-vision-router/simplified-barcode-reader-settings.md) class (via the [`SimplifiedCaptureVisionSettings`](./api-reference/capture-vision-router/simplified-capture-vision-settings.md) class) and the [`updateSettings`](./api-reference/capture-vision-router/capture-vision-router.md#updatesettings) method. +> 2. Using a JSON template file that contains the algorithm parameters, which is then applied using the [`initSettings`](./api-reference/capture-vision-router/capture-vision-router.md#initsettings) method. > > If you are looking to create a custom JSON settings template, please refer to this [page](https://www.dynamsoft.com/barcode-reader/docs/core/programming/features/use-runtimesettings-or-templates.html?lang=objc,swift#json-template). @@ -214,12 +214,9 @@ void initSettings() async { If you would like to learn more on how to customize the UI, please refer to the [UI Customization](explore-features/ui-customization.md) guide. -### Enabling Haptic Feedback +### Advanced Features -Another feature that the Barcode Reader library offers is the ability to trigger a couple of haptic feedback reactions once a barcode is found. This is done via the [`FeedBack`](api-reference/capture-vision-router-lite/feedback.md) class - and it should be called in the result callback function so that the haptic feedback occurs once a barcode is successfully decoded. - -> [!NOTE] -> To see how the FeedBack class should be implemented to trigger these haptic feedback reactions once a barcode is found, please visit the [`FeedBack` API](api-reference/capture-vision-router-lite/feedback.md) page. +If you would like to learn about some of the advanced features of the library and how to implement them, please refer to the [Advanced Features](explore-features/advanced-features.md) guide. ## Run the Project diff --git a/programming/flutter/index.md b/programming/flutter/index.md index cc93748c..fe588cf4 100644 --- a/programming/flutter/index.md +++ b/programming/flutter/index.md @@ -51,7 +51,8 @@ Furthermore, DBR provides a powerful parameter system in order to cope with vari ### API Reference -While the guide covers common APIs, more detailed explanations of these and other APIs can be found in the [API Reference](./api-reference/index.md). +* [BarcodeScanner (Ready-To-Use) API Reference](api-reference/barcode-scanner/index.md) +* [Capture Vision (Foundational) API Reference](api-reference/index.md) +> *Exception* - "Failed to set input" + ### startCapturing Starts the capturing process using the specified template. Any result(s) (of type [`CapturedResult`](captured-result.md)) that are received while the capture process is underway will be relayed by a result receiver, which is a callback function that is triggered once a captured result is found. @@ -284,6 +296,8 @@ Future startCapturing(String templateName) The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. +> *Exception* - "Failed to start capturing" + ### stopCapturing Stops the capturing process and closes the camera. @@ -304,6 +318,8 @@ Future switchCapturingTemplate(String templateName) async For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). +> *Exception* - "Failed to switch template" + ### updateSettings Updates the specified template settings of the `CaptureVisionRouter` instance using a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. To learn how to update the settings using the SimplifiedCaptureVisionSettings class - please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). @@ -316,3 +332,5 @@ Future updateSettings(String templateName, SimplifiedCaptureVisionSettings For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). +> *Exception* - "Failed to update settings" + diff --git a/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md b/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md index e18f02f5..1cabbaca 100644 --- a/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md +++ b/programming/flutter/api-reference/capture-vision-router/datamatrix-details.md @@ -10,7 +10,10 @@ noTitleIndex: true # DataMatrixDetails -The `DataMatrixDetails` class encapsulates all of the extended details of a DataMatrix Code that is not available in the regular barcode result, if the barcode is a DataMatrix Code. +The `DataMatrixDetails` class encapsulates all of the extended details of a DataMatrix Code that is not available in the regular barcode result, if the barcode is a DataMatrix Code. + +> [!TIP] +> If you would like to learn more about the DataMatrix format, please refer to this [page](https://www.dynamsoft.com/barcode-reader/barcode-types/dataMatrix/). ## Definition diff --git a/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md index d39752ea..8c7bc0ac 100644 --- a/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md +++ b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md @@ -25,6 +25,20 @@ class MultiFrameResultCrossFilter ## Methods +| Method | Description | +| ------ | ----------- | +| [`destroy`](#destroy) | Destroys the `MultiFrameResultCrossFilter` instance and releases the related resources on the native side. | +| [`enableLatestOverlapping`](#enablelatestoverlapping) | Enables or disables the latest overlap result filtering. | +| [`enableResultCrossVerification`](#enableresultcrossverification) | Enables or disables result cross verification for the specified result item types. | +| [`enableResultDeduplication`](#enableresultdeduplication) | Enables or disables result deduplication for the specified result item types. | +| [`getDuplicateForgetTime`](#getduplicateforgettime) | Returns the amount of time that the deduplication filter takes effect for the specified result item type(s). | +| [`getMaxOverlappingFrames`](#getmaxoverlappingframes) | Returns the maximum number of overlapping frames to check for the specified result item type(s). | +| [`isLatestOverlappingEnabled`](#islatestoverlappingenabled) | Checks if the latest overlapping filter is on for the specified result item type(s). | +| [`isResultCrossVerificationEnabled`](#isresultcrossverificationenabled) | Checks if the cross verification filter is on for the specified result item type(s). | +| [`isResultDeduplicationEnabled`](#isresultdeduplicationenabled) | Checks if the deduplication filter is on for the specified result item type(s). | +| [`setDuplicateForgetTime`](#setduplicateforgettime) | Defines the amount of time that the deduplication filter takes effect for the specified result item type(s). | +| [`setMaxOverlappingFrames`](#setmaxoverlappingframes) | Sets the maximum number of overlapping frames to check when the latest overlap filter is on. | + ### destroy Destroys the `MultiFrameResultCrossFilter` instance and releases the related resources on the native side. diff --git a/programming/flutter/api-reference/capture-vision-router/oned-details.md b/programming/flutter/api-reference/capture-vision-router/oned-details.md index 35f3c692..21bba3d9 100644 --- a/programming/flutter/api-reference/capture-vision-router/oned-details.md +++ b/programming/flutter/api-reference/capture-vision-router/oned-details.md @@ -12,6 +12,9 @@ noTitleIndex: true The `OneDCodeDetails` class encapsulates all of the extended details of a 1D Code that is not available in the regular barcode result, if the barcode is a 1D Code. +> [!TIP] +> If you would like to learn more about the 1D format, please refer to the [barcode types](https://www.dynamsoft.com/barcode-reader/barcode-types/) page and go through the list of linear barcode symbologies. + ## Definition *Assembly:* dynamsoft_capture_vision_flutter diff --git a/programming/flutter/api-reference/capture-vision-router/pdf417-details.md b/programming/flutter/api-reference/capture-vision-router/pdf417-details.md index 239eef18..6eb5f946 100644 --- a/programming/flutter/api-reference/capture-vision-router/pdf417-details.md +++ b/programming/flutter/api-reference/capture-vision-router/pdf417-details.md @@ -10,7 +10,10 @@ noTitleIndex: true # PDF417Details -The `PDF417Details` class encapsulates all of the extended details of a PDF417 Code that is not available in the regular barcode result, if the barcode is a PDF417 Code. +The `PDF417Details` class encapsulates all of the extended details of a PDF417 Code that is not available in the regular barcode result, if the barcode is a PDF417 Code. + +> [!TIP] +> If you would like to learn more about the PDF417 format, please refer to this [page](https://www.dynamsoft.com/barcode-reader/barcode-types/pdf417/). ## Definition diff --git a/programming/flutter/api-reference/capture-vision-router/qr-code-details.md b/programming/flutter/api-reference/capture-vision-router/qr-code-details.md index 6a8352ee..ba221730 100644 --- a/programming/flutter/api-reference/capture-vision-router/qr-code-details.md +++ b/programming/flutter/api-reference/capture-vision-router/qr-code-details.md @@ -12,6 +12,9 @@ noTitleIndex: true The `QRCodeDetails` class encapsulates all of the extended details of a QR Code that is not available in the regular barcode result, if the barcode is a QR Code. +> [!TIP] +> If you would like to learn more about the QR Code format, please refer to this [page](https://www.dynamsoft.com/barcode-reader/barcode-types/qr-code/). + ## Definition *Assembly:* dynamsoft_capture_vision_flutter diff --git a/programming/flutter/api-reference/capture-vision-router/quadrilateral.md b/programming/flutter/api-reference/capture-vision-router/quadrilateral.md new file mode 100644 index 00000000..bd783f22 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router/quadrilateral.md @@ -0,0 +1,35 @@ +--- +layout: default-layout +title: Quadrilateral Class - Dynamsoft Capture Vision Flutter +description: Quadrilateral class of DCV Flutter is used to define a quadrilateral shape. +keywords: region, Quadrilateral, barcode reader, flutter, capture vision +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# Quadrilateral + +The `Quadrilateral` class is used to define a quadrilateral shape. This class is mainly used by the `roi` parameter of [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md). + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class Quadrilateral +``` + +## Properties + +### points + +A list of four points that make up the quadrilateral. The points list start from the top-left point of the quadrilateral and go clockwise. Each point has a x and y coordinate that must be set - please see the [Point (Flutter)](https://api.flutter.dev/flutter/dart-math/Point-class.html) class for further reference. + +```dart +List> points; +``` + +**Remarks** + +The coordinates are typically set in pixels. However, if you are setting a region via the [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md), you can set the coordinates of the Quadrilateral as percentages (of the frame dimensions) instead of pixels if `roiMeasuredInPercentage` is set to true. diff --git a/programming/flutter/api-reference/enum/barcode-format.md b/programming/flutter/api-reference/enum/barcode-format.md index 6526f7fa..1619aeb1 100644 --- a/programming/flutter/api-reference/enum/barcode-format.md +++ b/programming/flutter/api-reference/enum/barcode-format.md @@ -17,39 +17,22 @@ breadcrumbText: EnumBarcodeFormat *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumBarcodeFormat -{ - /** No barcode format specified.**/ +enum EnumBarcodeFormat { none, - /** Represents all supported barcode formats. Useful for scanning operations where any type of barcode is acceptable. **/ all, - /** Default barcode formats that are commonly used. This is a subset of `all` tailored for general use. **/ defaultFormat, - /** One-dimensional barcode formats, including BF_CODE_39, BF_CODE_128, BF_CODE_93, BF_CODABAR, BF_ITF, BF_EAN_13, BF_EAN_8, BF_UPC_A, BF_UPC_E, INDUSTRIAL_25, BF_CODE_39_Extended and BF_MSI_CODE. **/ oned, - /** Code 39 format, widely used in various industries for inventory and manufacturing. **/ code39, - /** Code 128 format, a high-density barcode for alphanumeric or numeric-only data. **/ code128, - /** Code 93 format, similar to Code 39 but more compact and secure with support for the full ASCII character set. **/ code93, - /** Codabar format, used for various numeric barcodes in libraries, blood banks, and parcels. **/ codabar, - /** Interleaved 2 of 5 format, a numeric-only barcode used in warehousing, distribution, and logistics. **/ itf, - /** EAN-13 format, a superset of the UPC-A barcode used worldwide for marking retail goods. **/ ean13, - /** EAN-8 format, a compressed version of EAN-13 for smaller packages. **/ ean8, - /** UPC-A format, widely used in the United States and Canada for tracking trade items in stores. **/ upcA, - /** UPC-E format, a smaller version of the UPC-A barcode used for smaller packages. **/ upcE, - /** Industrial 2 of 5 format, an older, numeric-only barcode used in the industrial sector. **/ industrial25, - /** Extended Code 39 format, capable of encoding the full ASCII character set by combining standard Code 39 characters. **/ code39Extended, - /** GS1 DataBar barcode formats, including BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. These barcodes are designed for use in retail and healthcare for fresh foods and small items. **/ gs1Databar, gs1DatabarStackedOmnidirectional, gs1DatabarTruncated, @@ -58,63 +41,91 @@ enum EnumBarcodeFormat gs1DatabarExpanded, gs1DatabarExpandedStacked, gs1DatabarLimited, - /** Patch code, a special barcode used for document scanning applications to separate batches of documents. **/ patchcode, - /** Micro PDF417, a compact version of PDF417 used for applications where space is limited. **/ microPdf417, - /** MSI Code, a barcode used in inventory and warehouse to encode information in the distribution of goods. **/ msiCode, - /** Code 11, used primarily for labeling telecommunications equipment. **/ code11, - /** Two-Digit Add-On, an extension to UPC and EAN codes for magazines and books. **/ twoDigitAddOn, - /** Five-Digit Add-On, used with UPC and EAN codes for additional data, such as suggested retail price. **/ fiveDigitAddOn, - /** Code 32, also known as Italian PharmaCode, used specifically in the Italian pharmaceutical industry. **/ code32, - /** PDF417, a two-dimensional barcode used in a variety of applications, capable of encoding large amounts of data. **/ pdf417, - /** QR Code, a widely used two-dimensional barcode with high data capacity and error correction capability. **/ qrCode, - /** DataMatrix, a two-dimensional barcode used for marking small items, providing high data density and reliability. **/ datamatrix, - /** Aztec, a two-dimensional barcode known for its compact size and suitability for encoding small amounts of data efficiently. **/ aztec, - /** MaxiCode, a two-dimensional barcode used primarily for parcel and package tracking in logistics and postal services. **/ maxicode, - /** Micro QR, a smaller version of the QR Code designed for applications where space is limited. **/ microQr, - /** GS1 Composite, a group of barcodes used in conjunction with GS1 DataBar or linear barcodes to provide additional information. **/ gs1Composite, - /** Nonstandard barcode, a placeholder for barcodes that do not conform to established industry standards. **/ nonStandardBarcode, - /** DotCode, a two-dimensional barcode designed for high-speed printing applications. **/ dotcode, - /** PharmaCode, a general category that includes both BF_PHARMACODE_ONE_TRACK and BF_PHARMACODE_TWO_TRACK. **/ pharmacode, - /** PharmaCode One Track, used in the pharmaceutical industry for packaging control. **/ pharmacodeOneTrack, - /** PharmaCode Two Track, an extension of PharmaCode for encoding additional data. **/ pharmacodeTwoTrack, - /** Matrix 2 of 5, an older form of barcode used in warehouse sorting and conveyor systems. **/ matrix25, - /**Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC, BF_KIX.**/ postalCode, - /** USPS Intelligent Mail, a barcode used by the United States Postal Service to provide greater information and tracking capabilities. **/ uspsIntelligentMail, - /** Postnet, used by the USPS for automating the sorting of mail. **/ postnet, - /** Planet, another USPS barcode, similar to Postnet, but with additional data capacity. **/ planet, - /** Australian Post, barcodes used by the Australian postal service for mail sorting. **/ australianPost, - /** RM4SCC (Royal Mail 4 State Customer Code), used by the UK's Royal Mail for automated mail sorting. **/ rm4scc, - /** KIX (Klant index - Customer index), used by the Dutch postal service for sorting mail. **/ kix, - /**Telepen**/ telepen, - /**Telepen Numeric. A variation of the Telepen format optimized for encoding numeric data only.**/ telepenNumeric } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `none` | No barcode format specified. | +| `all` | Represents all supported barcode formats. Useful for scanning operations where any type of barcode is acceptable. | +| `defaultFormat` | Default barcode formats that are commonly used. This is a subset of `all` tailored for general use. | +| `oned` | One-dimensional barcode formats, including BF_CODE_39, BF_CODE_128, BF_CODE_93, BF_CODABAR, BF_ITF, BF_EAN_13, BF_EAN_8, BF_UPC_A, BF_UPC_E, INDUSTRIAL_25, BF_CODE_39_Extended and BF_MSI_CODE. | +| `code39` | Code 39 format, widely used in various industries for inventory and manufacturing. | +| `code128` | Code 128 format, a high-density barcode for alphanumeric or numeric-only data. | +| `code93` | Code 93 format, similar to Code 39 but more compact and secure with support for the full ASCII character set. | +| `codabar` | Codabar format, used for various numeric barcodes in libraries, blood banks, and parcels. | +| `itf` | Interleaved 2 of 5 format, a numeric-only barcode used in warehousing, distribution, and logistics. | +| `ean13` | EAN-13 format, a superset of the UPC-A barcode used worldwide for marking retail goods. | +| `ean8` | EAN-8 format, a compressed version of EAN-13 for smaller packages. | +| `upcA` | UPC-A format, widely used in the United States and Canada for tracking trade items in stores. | +| `upcE` | UPC-E format, a smaller version of the UPC-A barcode used for smaller packages. | +| `industrial25` | Industrial 2 of 5 format, an older, numeric-only barcode used in the industrial sector. | +| `code39Extended` | Extended Code 39 format, capable of encoding the full ASCII character set by combining standard Code 39 characters. | +| `gs1Databar` | GS1 DataBar barcode formats, including BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. These barcodes are designed for use in retail and healthcare for fresh foods and small items. | +| `gs1DatabarStackedOmnidirectional` | GS1 DataBar Stacked Omnidirectional format. | +| `gs1DatabarTruncated` | GS1 DataBar Truncated format. | +| `gs1DatabarStacked` | GS1 DataBar Stacked format. | +| `gs1DatabarOmnidirectional` | GS1 DataBar Omnidirectional format. | +| `gs1DatabarExpanded` | GS1 DataBar Expanded format. | +| `gs1DatabarExpandedStacked` | GS1 DataBar Expanded Stacked format. | +| `gs1DatabarLimited` | GS1 DataBar Limited format. | +| `patchcode` | Patch code, a special barcode used for document scanning applications to separate batches of documents. | +| `microPdf417` | Micro PDF417, a compact version of PDF417 used for applications where space is limited. | +| `msiCode` | MSI Code, a barcode used in inventory and warehouse to encode information in the distribution of goods. | +| `code11` | Code 11, used primarily for labeling telecommunications equipment. | +| `twoDigitAddOn` | Two-Digit Add-On, an extension to UPC and EAN codes for magazines and books. | +| `fiveDigitAddOn` | Five-Digit Add-On, used with UPC and EAN codes for additional data, such as suggested retail price. | +| `code32` | Code 32, also known as Italian PharmaCode, used specifically in the Italian pharmaceutical industry. | +| `pdf417` | PDF417, a two-dimensional barcode used in a variety of applications, capable of encoding large amounts of data. | +| `qrCode` | QR Code, a widely used two-dimensional barcode with high data capacity and error correction capability. | +| `datamatrix` | DataMatrix, a two-dimensional barcode used for marking small items, providing high data density and reliability. | +| `aztec` | Aztec, a two-dimensional barcode known for its compact size and suitability for encoding small amounts of data efficiently. | +| `maxicode` | MaxiCode, a two-dimensional barcode used primarily for parcel and package tracking in logistics and postal services. | +| `microQr` | Micro QR, a smaller version of the QR Code designed for applications where space is limited. | +| `gs1Composite` | GS1 Composite, a group of barcodes used in conjunction with GS1 DataBar or linear barcodes to provide additional information. | +| `nonStandardBarcode` | Nonstandard barcode, a placeholder for barcodes that do not conform to established industry standards. | +| `dotcode` | DotCode, a two-dimensional barcode designed for high-speed printing applications. | +| `pharmacode` | PharmaCode, a general category that includes both BF_PHARMACODE_ONE_TRACK and BF_PHARMACODE_TWO_TRACK. | +| `pharmacodeOneTrack` | PharmaCode One Track, used in the pharmaceutical industry for packaging control. | +| `pharmacodeTwoTrack` | PharmaCode Two Track, an extension of PharmaCode for encoding additional data. | +| `matrix25` | Matrix 2 of 5, an older form of barcode used in warehouse sorting and conveyor systems. | +| `postalCode` | Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC, BF_KIX. | +| `uspsIntelligentMail` | USPS Intelligent Mail, a barcode used by the United States Postal Service to provide greater information and tracking capabilities. | +| `postnet` | Postnet, used by the USPS for automating the sorting of mail. | +| `planet` | Planet, another USPS barcode, similar to Postnet, but with additional data capacity. | +| `australianPost` | Australian Post, barcodes used by the Australian postal service for mail sorting. | +| `rm4scc` | RM4SCC (Royal Mail 4 State Customer Code), used by the UK's Royal Mail for automated mail sorting. | +| `kix` | KIX (Klant index - Customer index), used by the Dutch postal service for sorting mail. | +| `telepen` | Telepen. | +| `telepenNumeric` | Telepen Numeric. A variation of the Telepen format optimized for encoding numeric data only. | diff --git a/programming/flutter/api-reference/enum/camera-position.md b/programming/flutter/api-reference/enum/camera-position.md index d485e9d1..f85248ad 100644 --- a/programming/flutter/api-reference/enum/camera-position.md +++ b/programming/flutter/api-reference/enum/camera-position.md @@ -17,15 +17,19 @@ breadcrumbText: EnumCameraPosition *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumCameraPosition -{ - /** The default, back-facing camera. It is a wide-angle camera for general usage. **/ +enum EnumCameraPosition { back, - /** The front-facing camera. **/ front, - /** The back-facing ultra-wide-angle camera - which should be used for macro-distance scenarios. (iOS ONLY) **/ backUltraWide, - /** The back-facing virtual camera that can automatically switch between the default wide-angle and the ultra-wide-angle cameras. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. **/ backDualWideAuto } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `back` | The default, back-facing camera. It is a wide-angle camera for general usage. | +| `front` | The front-facing camera. | +| `backUltraWide` | The back-facing ultra-wide-angle camera - which should be used for macro-distance scenarios. (iOS ONLY) | +| `backDualWideAuto` | The back-facing virtual camera that can automatically switch between the default wide-angle and the ultra-wide-angle cameras. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. (iOS ONLY) | diff --git a/programming/flutter/api-reference/enum/captured-result-item-type.md b/programming/flutter/api-reference/enum/captured-result-item-type.md index 064d102a..74be88de 100644 --- a/programming/flutter/api-reference/enum/captured-result-item-type.md +++ b/programming/flutter/api-reference/enum/captured-result-item-type.md @@ -20,13 +20,17 @@ breadcrumbText: EnumCapturedResultItemType *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumCapturedResultItemType -{ - /** The original image on which the capture process was performed. This result type can be output by any of the Capture Vision functional products (Barcode Reader, Label Recognizer, and Document Normalizer) **/ +enum EnumCapturedResultItemType { originalImage, - /** The decoded barcode, which is the result at the end of a Barcode Reader task. **/ barcode, - /** The parsed result, which is the result at the end of a Code Parser task. **/ parsedResult } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `originalImage` | The original image on which the capture process was performed. This result type can be output by any of the Capture Vision functional products (Barcode Reader, Label Recognizer, and Document Normalizer). | +| `barcode` | The decoded barcode, which is the result at the end of a Barcode Reader task. | +| `parsedResult` | The parsed result, which is the result at the end of a Code Parser task. | diff --git a/programming/flutter/api-reference/enum/colour-channel.md b/programming/flutter/api-reference/enum/colour-channel.md index 48b089fd..745dd7cf 100644 --- a/programming/flutter/api-reference/enum/colour-channel.md +++ b/programming/flutter/api-reference/enum/colour-channel.md @@ -17,19 +17,23 @@ breadcrumbText: EnumColourChannelUsageType *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumColourChannelUsageType -{ - /** Automatic colour channel usage determination based on image pixel format and scene. **/ +enum EnumColourChannelUsageType { auto, - /** Uses all colour channels to output a full colour image. **/ fullChannel, - /** Uses only the luminance channel to output a grayscale image. **/ yChannelOnly, - /** Uses only the red channel of the RGB space. **/ rgbRChannelOnly, - /** Uses only the green channel of th RGB space. **/ rgbGChannelOnly, - /** Uses only the blue channel of the RGB space. **/ rgbBChannelOnly } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `auto` | Automatic colour channel usage determination based on image pixel format and scene. | +| `fullChannel` | Uses all colour channels to output a full colour image. | +| `yChannelOnly` | Uses only the luminance channel to output a grayscale image. | +| `rgbRChannelOnly` | Uses only the red channel of the RGB space. | +| `rgbGChannelOnly` | Uses only the green channel of the RGB space. | +| `rgbBChannelOnly` | Uses only the blue channel of the RGB space. | diff --git a/programming/flutter/api-reference/enum/deblur-mode.md b/programming/flutter/api-reference/enum/deblur-mode.md index 0cfbc6e6..29965d79 100644 --- a/programming/flutter/api-reference/enum/deblur-mode.md +++ b/programming/flutter/api-reference/enum/deblur-mode.md @@ -17,31 +17,35 @@ breadcrumbText: EnumDeblurMode *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumDeblurMode -{ - /** Skips the process, no deblurring is applied. **/ +enum EnumDeblurMode { skip, - /** Applies a direct binarization algorithm for generating the binary image. **/ directBinarization, - /** Utilizes a threshold binarization algorithm for generating the binary image, dynamically determining the threshold based on the image content. **/ thresholdBinarization, - /** Employs a gray equalization algorithm to adjust the contrast and brightness, improving the clarity of the gray-scale image before binarization. **/ grayEqualization, - /** Implements a smoothing algorithm to reduce noise and artifacts, smoothing out the gray-scale image before binarization. **/ smoothing, - /** Uses a morphing algorithm to enhance the gray-scale image before binarization. **/ morphing, - /** Engages in a deep analysis of the grayscale image based on the barcode format to intelligently generate the optimized binary image, tailored to complex or severely blurred images. **/ deepAnalysis, - /** Applies a sharpening algorithm to enhance the edges and details of the barcode, making it more distinguishable on the gray-scale image before binarization. **/ sharpening, - /** Decodes the barcodes based on the binary image obtained during the localization process. **/ basedOnLocBin, - /** Combines sharpening and smoothing algorithms for a comprehensive deblurring effect, targeting both clarity and smoothness of the gray-scale image before binarization. **/ sharpeningSmoothing, - /** Use the deep learning algorithm to recognize the barcodes. **/ neuralNetwork, - /**Placeholder value with no functional meaning. **/ end } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `skip` | Skips the process, no deblurring is applied. | +| `directBinarization` | Applies a direct binarization algorithm for generating the binary image. | +| `thresholdBinarization` | Utilizes a threshold binarization algorithm for generating the binary image, dynamically determining the threshold based on the image content. | +| `grayEqualization` | Employs a gray equalization algorithm to adjust the contrast and brightness, improving the clarity of the gray-scale image before binarization. | +| `smoothing` | Implements a smoothing algorithm to reduce noise and artifacts, smoothing out the gray-scale image before binarization. | +| `morphing` | Uses a morphing algorithm to enhance the gray-scale image before binarization. | +| `deepAnalysis` | Engages in a deep analysis of the grayscale image based on the barcode format to intelligently generate the optimized binary image, tailored to complex or severely blurred images. | +| `sharpening` | Applies a sharpening algorithm to enhance the edges and details of the barcode, making it more distinguishable on the gray-scale image before binarization. | +| `basedOnLocBin` | Decodes the barcodes based on the binary image obtained during the localization process. | +| `sharpeningSmoothing` | Combines sharpening and smoothing algorithms for a comprehensive deblurring effect, targeting both clarity and smoothness of the gray-scale image before binarization. | +| `neuralNetwork` | Use the deep learning algorithm to recognize the barcodes. | +| `end` | Placeholder value with no functional meaning. | diff --git a/programming/flutter/api-reference/enum/drawing-layer-id.md b/programming/flutter/api-reference/enum/drawing-layer-id.md index 4fc9ff09..3d4779bc 100644 --- a/programming/flutter/api-reference/enum/drawing-layer-id.md +++ b/programming/flutter/api-reference/enum/drawing-layer-id.md @@ -17,15 +17,19 @@ breadcrumbText: EnumDrawingLayerId *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumDrawingLayerId -{ - /** The preset DrawingLayer for the Dynamsoft Document Normalizer **/ +enum EnumDrawingLayerId { ddn, - /** The preset DrawingLayer for the Dynamsoft Barcode Reader **/ dbr, - /** The preset DrawingLayer for the Dynamsoft Label Recognizer **/ dlr, - /** A custom DrawingLayer for tips **/ tip } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `ddn` | The preset DrawingLayer for the Dynamsoft Document Normalizer. | +| `dbr` | The preset DrawingLayer for the Dynamsoft Barcode Reader. | +| `dlr` | The preset DrawingLayer for the Dynamsoft Label Recognizer. | +| `tip` | A custom DrawingLayer for tips. | diff --git a/programming/flutter/api-reference/enum/enhanced-features-camera.md b/programming/flutter/api-reference/enum/enhanced-features-camera.md index e8fdf795..aedd024b 100644 --- a/programming/flutter/api-reference/enum/enhanced-features-camera.md +++ b/programming/flutter/api-reference/enum/enhanced-features-camera.md @@ -17,19 +17,23 @@ breadcrumbText: EnumEnhancedFeatures *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumEnhancedFeatures -{ - /** Enables frame filtering to improve image quality, potentially leading to better read rate results. **/ +enum EnumEnhancedFeatures { frameFilter, - /** Allows sensor control to automatically filter out any frames while the device is shaking. **/ sensorControl, - /** Enhances the camera's focus capabilities, facilitating the camera to trigger auto-focus. This is especially useful for low-end mobile devices that do not have the ability to auto-focus. **/ enhancedFocus, - /** Causes the camera to zoom in automatically when the barcode that it is trying to capture is far away, making the localization and decoding process easier for the Barcode Reader. **/ autoZoom, - /** Activates the smart torch feature, which displays a torch button in the camera view when the environment brightness is low and hides the button if the brightness is high. **/ smartTorch, - /** Enables all of the above enhanced features. **/ all } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `frameFilter` | Enables frame filtering to improve image quality, potentially leading to better read rate results. | +| `sensorControl` | Allows sensor control to automatically filter out any frames while the device is shaking. | +| `enhancedFocus` | Enhances the camera's focus capabilities, facilitating the camera to trigger auto-focus. This is especially useful for low-end mobile devices that do not have the ability to auto-focus. | +| `autoZoom` | Causes the camera to zoom in automatically when the barcode that it is trying to capture is far away, making the localization and decoding process easier for the Barcode Reader. | +| `smartTorch` | Activates the smart torch feature, which displays a torch button in the camera view when the environment brightness is low and hides the button if the brightness is high. | +| `all` | Enables all of the above enhanced features. | diff --git a/programming/flutter/api-reference/enum/filter-type.md b/programming/flutter/api-reference/enum/filter-type.md index f5b1b5b0..b5941a8e 100644 --- a/programming/flutter/api-reference/enum/filter-type.md +++ b/programming/flutter/api-reference/enum/filter-type.md @@ -17,13 +17,17 @@ breadcrumbText: EnumFilterType *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumFilterType -{ - /** No filter applied. **/ +enum EnumFilterType { highPass, - /** Enhances the edges of the image. **/ sharpen, - /** Smoothens the image. **/ smooth } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `highPass` | Enhances the edges and fine details by attenuating low-frequency components. | +| `sharpen` | Increases contrast along edges to make the image appear more defined. | +| `smooth` | Reduces noise and detail by averaging pixel values, creating a softening effect. | diff --git a/programming/flutter/api-reference/enum/focus-mode.md b/programming/flutter/api-reference/enum/focus-mode.md index 67d447af..7e083b62 100644 --- a/programming/flutter/api-reference/enum/focus-mode.md +++ b/programming/flutter/api-reference/enum/focus-mode.md @@ -20,11 +20,15 @@ breadcrumbText: EnumFocusMode *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumFocusMode -{ - /** Lock the focal length with an input value. **/ +enum EnumFocusMode { locked, - /** Implements a continuous autoFocus. **/ continuousAuto } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `locked` | Lock the focal length with an input value. | +| `continuousAuto` | Implements a continuous autoFocus. | diff --git a/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md b/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md index 27de2edd..cfb7baa0 100644 --- a/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md +++ b/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md @@ -17,21 +17,25 @@ breadcrumbText: EnumGrayscaleEnhancementMode *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumGrayscaleEnhancementMode -{ - /** Disables any grayscale image preprocessing. Selecting this mode skips the preprocessing step, passing the image through to subsequent operations without modification. **/ +enum EnumGrayscaleEnhancementMode { skip, - /** Automatic selection of grayscale enhancement mode which is currently not supported. Future implementations may automatically choose the most suitable enhancement based on image analysis. **/ auto, - /** Uses the original, unprocessed image for subsequent operations. This mode is selected when no specific grayscale enhancement is required, maintaining the image in its natural state. **/ general, - /** Applies a grayscale equalization algorithm to the image, enhancing contrast and detail in gray level. Suitable for images with poor contrast. **/ grayEqualize, - /** Implements a grayscale smoothing algorithm to reduce noise and smooth the image. This can be beneficial for images with high levels of grain or noise. **/ graySmooth, - /** Enhances the image by applying both sharpening and smoothing algorithms. This mode aims to increase clarity and detail while reducing noise, offering a balanced approach to image preprocessing. **/ sharpenSmooth, - /** Placeholder value with no functional meaning. **/ end } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `skip` | Disables any grayscale image preprocessing. Selecting this mode skips the preprocessing step, passing the image through to subsequent operations without modification. | +| `auto` | Automatic selection of grayscale enhancement mode which is currently not supported. Future implementations may automatically choose the most suitable enhancement based on image analysis. | +| `general` | Uses the original, unprocessed image for subsequent operations. This mode is selected when no specific grayscale enhancement is required, maintaining the image in its natural state. | +| `grayEqualize` | Applies a grayscale equalization algorithm to the image, enhancing contrast and detail in gray level. Suitable for images with poor contrast. | +| `graySmooth` | Implements a grayscale smoothing algorithm to reduce noise and smooth the image. This can be beneficial for images with high levels of grain or noise. | +| `sharpenSmooth` | Enhances the image by applying both sharpening and smoothing algorithms. This mode aims to increase clarity and detail while reducing noise, offering a balanced approach to image preprocessing. | +| `end` | Placeholder value with no functional meaning. | diff --git a/programming/flutter/api-reference/enum/grayscale-transformation-mode.md b/programming/flutter/api-reference/enum/grayscale-transformation-mode.md index 4cdf8953..2c511166 100644 --- a/programming/flutter/api-reference/enum/grayscale-transformation-mode.md +++ b/programming/flutter/api-reference/enum/grayscale-transformation-mode.md @@ -17,17 +17,21 @@ breadcrumbText: EnumGrayscaleTransformationMode *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumGrayscaleEnhancementMode -{ - /** Bypasses grayscale transformation, leaving the image in its current state without any modification to its grayscale values. This mode is selected when no alteration of the grayscale data is desired, passing the image through to subsequent operations without modification. **/ +enum EnumGrayscaleTransformationMode { skip, - /** Applies an inversion to the grayscale values of the image, effectively transforming light elements to dark and vice versa. This mode is particularly useful for images with light text on dark backgrounds, enhancing visibility for further processing. **/ inverted, - /** Maintains the original grayscale values of the image without any transformation. This mode is suited for images with dark elements on light backgrounds, ensuring the natural contrast and detail are preserved for subsequent analysis. **/ original, - /** Delegates the choice of grayscale transformation to the library's algorithm, which automatically determines the most suitable transformation based on the image's characteristics. This mode is beneficial when the optimal transformation is not known in advance or varies across different images. **/ auto, - /** Placeholder value with no functional meaning. **/ end } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `skip` | Bypasses grayscale transformation, leaving the image in its current state without any modification to its grayscale values. This mode is selected when no alteration of the grayscale data is desired, passing the image through to subsequent operations without modification. | +| `inverted` | Applies an inversion to the grayscale values of the image, effectively transforming light elements to dark and vice versa. This mode is particularly useful for images with light text on dark backgrounds, enhancing visibility for further processing. | +| `original` | Maintains the original grayscale values of the image without any transformation. This mode is suited for images with dark elements on light backgrounds, ensuring the natural contrast and detail are preserved for subsequent analysis. | +| `auto` | Delegates the choice of grayscale transformation to the library's algorithm, which automatically determines the most suitable transformation based on the image's characteristics. This mode is beneficial when the optimal transformation is not known in advance or varies across different images. | +| `end` | Placeholder value with no functional meaning. | diff --git a/programming/flutter/api-reference/enum/image-pixel-format.md b/programming/flutter/api-reference/enum/image-pixel-format.md index 62458815..6d711559 100644 --- a/programming/flutter/api-reference/enum/image-pixel-format.md +++ b/programming/flutter/api-reference/enum/image-pixel-format.md @@ -17,54 +17,43 @@ breadcrumbText: EnumImagePixelFormat *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumImagePixelFormat -{ - /** Each pixel is represented by a single bit. **/ +enum EnumImagePixelFormat { binary, - - /** Each pixel is represented by a single bit and the bits are inverted. **/ binaryInverted, - - /** Each pixel is represented by a single byte indicating the intensity of gray. **/ grayScaled, - - /** A YUV format with a specific arrangement of chroma and luma components. **/ nv21, - - /** Each pixel is represented by 16 bits: 5 bits for red, 6 bits for green, and 5 bits for blue. **/ rgb565, - - /** Each pixel is represented by 15 bits: 5 bits each for red, green, and blue. **/ rgb555, - - /** Each pixel is represented by 24 bits: 8 bits each for red, green, and blue. **/ rgb888, - - /** Each pixel is represented by 32 bits: 8 bits each for alpha, red, green, and blue. **/ argb8888, - - /** Each pixel is represented by 48 bits: 16 bits each for red, green, and blue. **/ rgb161616, - - /** Each pixel is represented by 64 bits: 16 bits each for alpha, red, green, and blue. **/ argb16161616, - - /** ABGR8888 pixel format, where each pixel is represented by 32 bits: 8 bits each for alpha, blue, green, and red. **/ abgr8888, - - /** ABGR16161616 pixel format, where each pixel is represented by 64 bits: 16 bits each for alpha, blue, green, and red. **/ abgr16161616, - - /** Each pixel is represented by 24 bits: 8 bits each for blue, green, and red. **/ bgr888, - - /** Each pixel is represented by 8 bits in a binary format. **/ binary8, - - /** NV12 pixel format, a YUV format with a specific arrangement of chroma and luma components. **/ nv12, - - /** Inverted Binary8 pixel format, where each pixel is represented by 8 bits in a binary format and the bits are inverted. **/ - binary8Inverted, + binary8Inverted } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `binary` | Each pixel is represented by a single bit. | +| `binaryInverted` | Each pixel is represented by a single bit and the bits are inverted. | +| `grayScaled` | Each pixel is represented by a single byte indicating the intensity of gray. | +| `nv21` | A YUV format with a specific arrangement of chroma and luma components. | +| `rgb565` | Each pixel is represented by 16 bits: 5 bits for red, 6 bits for green, and 5 bits for blue. | +| `rgb555` | Each pixel is represented by 15 bits: 5 bits each for red, green, and blue. | +| `rgb888` | Each pixel is represented by 24 bits: 8 bits each for red, green, and blue. | +| `argb8888` | Each pixel is represented by 32 bits: 8 bits each for alpha, red, green, and blue. | +| `rgb161616` | Each pixel is represented by 48 bits: 16 bits each for red, green, and blue. | +| `argb16161616` | Each pixel is represented by 64 bits: 16 bits each for alpha, red, green, and blue. | +| `abgr8888` | ABGR8888 pixel format, where each pixel is represented by 32 bits: 8 bits each for alpha, blue, green, and red. | +| `abgr16161616` | ABGR16161616 pixel format, where each pixel is represented by 64 bits: 16 bits each for alpha, blue, green, and red. | +| `bgr888` | Each pixel is represented by 24 bits: 8 bits each for blue, green, and red. | +| `binary8` | Each pixel is represented by 8 bits in a binary format. | +| `nv12` | NV12 pixel format, a YUV format with a specific arrangement of chroma and luma components. | +| `binary8Inverted` | Inverted Binary8 pixel format, where each pixel is represented by 8 bits in a binary format and the bits are inverted. | diff --git a/programming/flutter/api-reference/enum/localization-mode.md b/programming/flutter/api-reference/enum/localization-mode.md index 312d0943..821a3942 100644 --- a/programming/flutter/api-reference/enum/localization-mode.md +++ b/programming/flutter/api-reference/enum/localization-mode.md @@ -20,31 +20,35 @@ breadcrumbText: EnumLocalizationMode *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumLocalizationMode -{ - /** Omits the localization process entirely. **/ +enum EnumLocalizationMode { skip, - /** Automatic localization mode selection; not yet implemented so this is a placeholder until then. **/ auto, - /** Identifies barcodes by finding connected blocks, offering optimal results, especially recommended for highest priority in most scenarios. **/ connectedBlocks, - /** Detects barcodes through analysis of patterns of contiguous black and white regions, tailored for QR Codes and DataMatrix codes. **/ statistics, - /** Locates barcodes by identifying linear patterns, designed primarily for 1D barcodes and PDF417 codes. **/ lines, - /** Provides rapid barcode localization, suited for interactive applications where speed is crucial. **/ scanDirectly, - /** Targets barcode localization through detection of specific mark groups, optimized for Direct Part Marking (DPM) codes. **/ statisticsMarks, - /** Combines methods of locating connected blocks and linear patterns to efficiently localize postal codes. **/ statisticsPostalCode, - /** Initiates barcode localization from the image center, facilitating faster detection in certain layouts. **/ centre, - /** Specialized for quick localization of 1D barcodes, enhancing performance in fast-scan scenarios. **/ oneDFastScan, - /** Localizes barcodes by utilizing a neural network model. **/ neuralNetwork, - /** Placeholder value with no functional meaning. **/ end } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `skip` | Omits the localization process entirely. | +| `auto` | Automatic localization mode selection; not yet implemented so this is a placeholder until then. | +| `connectedBlocks` | Identifies barcodes by finding connected blocks, offering optimal results, especially recommended for highest priority in most scenarios. | +| `statistics` | Detects barcodes through analysis of patterns of contiguous black and white regions, tailored for QR Codes and DataMatrix codes. | +| `lines` | Locates barcodes by identifying linear patterns, designed primarily for 1D barcodes and PDF417 codes. | +| `scanDirectly` | Provides rapid barcode localization, suited for interactive applications where speed is crucial. | +| `statisticsMarks` | Targets barcode localization through detection of specific mark groups, optimized for Direct Part Marking (DPM) codes. | +| `statisticsPostalCode` | Combines methods of locating connected blocks and linear patterns to efficiently localize postal codes. | +| `centre` | Initiates barcode localization from the image center, facilitating faster detection in certain layouts. | +| `oneDFastScan` | Specialized for quick localization of 1D barcodes, enhancing performance in fast-scan scenarios. | +| `neuralNetwork` | Localizes barcodes by utilizing a neural network model. | +| `end` | Placeholder value with no functional meaning. | diff --git a/programming/flutter/api-reference/enum/mapping-status.md b/programming/flutter/api-reference/enum/mapping-status.md index dc52029e..dde7a7fb 100644 --- a/programming/flutter/api-reference/enum/mapping-status.md +++ b/programming/flutter/api-reference/enum/mapping-status.md @@ -17,13 +17,17 @@ breadcrumbText: EnumMappingStatus *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumDeblurMode -{ - /** No mapping has been performed. **/ +enum EnumMappingStatus { none, - /** Mapping of this field was successful. **/ succeeded, - /** Mapping of this field was unsuccessful. **/ failed } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `none` | No mapping has been performed. | +| `succeeded` | Mapping of this field was successful. | +| `failed` | Mapping of this field was unsuccessful. | diff --git a/programming/flutter/api-reference/enum/preset-template.md b/programming/flutter/api-reference/enum/preset-template.md index 527007b9..71f71bce 100644 --- a/programming/flutter/api-reference/enum/preset-template.md +++ b/programming/flutter/api-reference/enum/preset-template.md @@ -18,15 +18,19 @@ breadcrumbText: EnumPresetTemplate *Assembly:* dynamsoft_capture_vision_flutter ```dart -static class EnumPresetTemplate -{ - /** The default template for the Barcode Reader that offers a balance between speed and read rate **/ +static class EnumPresetTemplate { static const readBarcodes = "ReadBarcodes_Default"; - /** The speed first template prioritizes speed over read rate when reading barcodes **/ static const readBarcodesSpeedFirst = "ReadBarcodes_SpeedFirst"; - /** The read rate first template prioritizes read rate over speed when reading barcodes **/ static const readBarcodesReadRateFirst = "ReadBarcodes_ReadRateFirst"; - /** The single barcode template focuses on the single-scan barcode reading mode and should not be used when reading multiple barcodes at a time as it is more speed focused. **/ static const readSingleBarcode = "ReadSingleBarcode"; } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `readBarcodes` | The default template for the Barcode Reader that offers a balance between speed and read rate. | +| `readBarcodesSpeedFirst` | The speed first template prioritizes speed over read rate when reading barcodes. | +| `readBarcodesReadRateFirst` | The read rate first template prioritizes read rate over speed when reading barcodes. | +| `readSingleBarcode` | The single barcode template focuses on the single-scan barcode reading mode and should not be used when reading multiple barcodes at a time as it is more speed focused. | diff --git a/programming/flutter/api-reference/enum/qr-code-correction.md b/programming/flutter/api-reference/enum/qr-code-correction.md index 87db94d8..c839a1ab 100644 --- a/programming/flutter/api-reference/enum/qr-code-correction.md +++ b/programming/flutter/api-reference/enum/qr-code-correction.md @@ -17,15 +17,19 @@ breadcrumbText: EnumQRCodeErrorCorrectionLevel *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumQRCodeErrorCorrectionLevel -{ - /** High level **/ +enum EnumQRCodeErrorCorrectionLevel { h, - /** Low level **/ l, - /** Medium level **/ m, - /** Quartile level **/ q } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `h` | High level. | +| `l` | Low level. | +| `m` | Medium level. | +| `q` | Quartile level. | diff --git a/programming/flutter/api-reference/enum/result-status.md b/programming/flutter/api-reference/enum/result-status.md index 976f0fd6..b6f2204d 100644 --- a/programming/flutter/api-reference/enum/result-status.md +++ b/programming/flutter/api-reference/enum/result-status.md @@ -17,13 +17,17 @@ breadcrumbText: EnumResultStatus *Assembly:* dynamsoft_barcode_reader_bundle_flutter ```dart -enum EnumResultStatus -{ - /** The barcode decoding process was a success and the result has been received **/ +enum EnumResultStatus { finished, - /** The barcode decoding process was cancelled by the user (usually by closing the UI using the close button) **/ canceled, - /** Something went wrong during the barcode decoding process and an exception has been thrown. **/ exception } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `finished` | The barcode decoding process was a success and the result has been received. | +| `canceled` | The barcode decoding process was cancelled by the user (usually by closing the UI using the close button). | +| `exception` | Something went wrong during the barcode decoding process and an exception has been thrown. | diff --git a/programming/flutter/api-reference/enum/scanning-mode.md b/programming/flutter/api-reference/enum/scanning-mode.md index f479d1b8..7bbd3459 100644 --- a/programming/flutter/api-reference/enum/scanning-mode.md +++ b/programming/flutter/api-reference/enum/scanning-mode.md @@ -17,11 +17,15 @@ breadcrumbText: EnumScanningMode *Assembly:* dynamsoft_barcode_reader_bundle_flutter ```dart -enum EnumScanningMode -{ - /** Used for scanning a single barcode at a time, prioritizing speed over read rate **/ +enum EnumScanningMode { single, - /** Used for scanning multiple barcodes at a time, finding a balance between speed and read rate **/ multiple } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `single` | Used for scanning a single barcode at a time, prioritizing speed over read rate. | +| `multiple` | Used for scanning multiple barcodes at a time, finding a balance between speed and read rate. | diff --git a/programming/flutter/api-reference/enum/validation-status.md b/programming/flutter/api-reference/enum/validation-status.md index 857e9b5f..d86336b7 100644 --- a/programming/flutter/api-reference/enum/validation-status.md +++ b/programming/flutter/api-reference/enum/validation-status.md @@ -21,13 +21,17 @@ breadcrumbText: EnumValidationStatus *Assembly:* dynamsoft_capture_vision_flutter ```dart -enum EnumDeblurMode -{ - /** No validation check has been performed. **/ +enum EnumValidationStatus { none, - /** The validation of this field was successful. **/ succeeded, - /** The validation of this field was unsuccessful. **/ failed } ``` + +## Members + +| Member | Description | +| ------ | ----------- | +| `none` | No validation check has been performed. | +| `succeeded` | The validation of this field was successful. | +| `failed` | The validation of this field was unsuccessful. | From 4b98174ff7562a7b7b1978151b30f154297b2a9d Mon Sep 17 00:00:00 2001 From: DMGithubPublisher Date: Wed, 5 Nov 2025 16:22:45 +0800 Subject: [PATCH 3/3] update to internal commit d7870677 --- programming/android/foundational-guide.md | 4 ++-- programming/android/release-notes/android-11.md | 8 ++++++++ programming/android/release-notes/index.md | 1 + programming/android/user-guide.md | 4 ++-- .../api-reference/auxiliary-iPDF417Details.md | 12 ++++++------ programming/objectivec-swift/foundational-guide.md | 4 ++-- .../objectivec-swift/release-notes/index.md | 1 + .../objectivec-swift/release-notes/ios-11.md | 14 ++++++++++++++ programming/objectivec-swift/user-guide.md | 4 ++-- 9 files changed, 38 insertions(+), 14 deletions(-) diff --git a/programming/android/foundational-guide.md b/programming/android/foundational-guide.md index bba30c75..07cbff29 100644 --- a/programming/android/foundational-guide.md +++ b/programming/android/foundational-guide.md @@ -70,13 +70,13 @@ There are two ways to add the libraries into your project - **Manually** and **M >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.2.1000' + implementation 'com.dynamsoft:barcodereaderbundle:11.2.3000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.2.1000") + implementation("com.dynamsoft:barcodereaderbundle:11.2.3000") } ``` diff --git a/programming/android/release-notes/android-11.md b/programming/android/release-notes/android-11.md index c9805e17..ed180b93 100644 --- a/programming/android/release-notes/android-11.md +++ b/programming/android/release-notes/android-11.md @@ -10,6 +10,14 @@ noTitleIndex: true # Release Notes for Android SDK - 11.x +## 11.2.3000 (11/05/2025) + +### Fixed + +- Resolved an issue where `CaptureVisionRouter.startCapturing` could take longer than expected to complete. +- Fixed an issue where `initLicense` could take longer than expected to complete. +- Fixed an issue where the app could crash when a `CameraView` instance was created using `new CameraView()`. + ## 11.2.1000 (10/16/2025) ### 🎉Milestone Release diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md index dbe3740f..def9f90a 100644 --- a/programming/android/release-notes/index.md +++ b/programming/android/release-notes/index.md @@ -10,6 +10,7 @@ permalink: /programming/android/release-notes/ # Dynamsoft Barcode Reader Android SDK - Release Notes +- [11.2.3000 (11/05/2025)]({{ site.android_release_notes }}android-11.html#1123000-11052025) - [11.2.1000 (10/16/2025)]({{ site.android_release_notes }}android-11.html#1121000-10162025) - [11.0.5000 (07/29/2025)]({{ site.android_release_notes }}android-11.html#1105000-07292025) - [11.0.3000 (05/15/2025)]({{ site.android_release_notes }}android-11.html#1103000-05152025) diff --git a/programming/android/user-guide.md b/programming/android/user-guide.md index 00dce466..91ea9194 100644 --- a/programming/android/user-guide.md +++ b/programming/android/user-guide.md @@ -76,13 +76,13 @@ There are two ways in which you can include the `dynamsoftbarcodereaderbundle` l >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.2.1000' + implementation 'com.dynamsoft:barcodereaderbundle:11.2.3000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.2.1000") + implementation("com.dynamsoft:barcodereaderbundle:11.2.3000") } ``` diff --git a/programming/objectivec-swift/api-reference/auxiliary-iPDF417Details.md b/programming/objectivec-swift/api-reference/auxiliary-iPDF417Details.md index 4c7d53a6..b8d57f88 100644 --- a/programming/objectivec-swift/api-reference/auxiliary-iPDF417Details.md +++ b/programming/objectivec-swift/api-reference/auxiliary-iPDF417Details.md @@ -68,11 +68,11 @@ The codewords of the PDF417 barcode. > >1. ```objc -@property (nonatomic, readonly, retain) NSData *codewords; +@property (nonatomic, readonly, copy, nullable) NSArray *codewords; ``` 2. ```swift -var codewords: Data { get } +var codewords: [NSNumber]? { get } ``` ### columns @@ -119,11 +119,11 @@ Indicates whether the left row indicator of the PDF417 code exists. If the value > >1. ```objc -@property(nonatomic, assign, readonly) NSInteger hasLeftRowIndicator; +@property(nonatomic, assign, readonly) BOOL hasLeftRowIndicator; ``` 2. ```swift -var hasLeftRowIndicator: Int { get } +var hasLeftRowIndicator: Bool { get } ``` ### hasRightRowIndicator @@ -136,9 +136,9 @@ Indicates whether the right row indicator of the PDF417 code exists. If the valu > >1. ```objc -@property(nonatomic, assign, readonly) NSInteger hasRightRowIndicator; +@property(nonatomic, assign, readonly) BOOL hasRightRowIndicator; ``` 2. ```swift -var hasRightRowIndicator: Int { get } +var hasRightRowIndicator: Bool { get } ``` diff --git a/programming/objectivec-swift/foundational-guide.md b/programming/objectivec-swift/foundational-guide.md index 64668ed8..84653add 100644 --- a/programming/objectivec-swift/foundational-guide.md +++ b/programming/objectivec-swift/foundational-guide.md @@ -28,7 +28,7 @@ There are three ways to add the SDK into your project - **Manually**, via **Coco 2. In the top-right section of the window, search "https://github.com/Dynamsoft/barcode-reader-spm" -3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.2.1000**, then click **Add Package**. +3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.2.3000**, then click **Add Package**. 4. Check all the **xcframeworks** and add. @@ -40,7 +40,7 @@ There are three ways to add the SDK into your project - **Manually**, via **Coco target 'HelloWorld' do use_frameworks! - pod 'DynamsoftBarcodeReaderBundle','11.2.1000' + pod 'DynamsoftBarcodeReaderBundle','11.2.3000' end ``` diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md index 35115e11..99b0f856 100644 --- a/programming/objectivec-swift/release-notes/index.md +++ b/programming/objectivec-swift/release-notes/index.md @@ -10,6 +10,7 @@ permalink: /programming/objectivec-swift/release-notes/ # Dynamsoft Barcode Reader iOS SDK - Release Notes +- [11.2.3000 (11/05/2025)]({{ site.oc_release_notes }}ios-11.html#1123000-11052025) - [11.2.1000 (10/16/2025)]({{ site.oc_release_notes }}ios-11.html#1121000-10162025) - [11.0.5200 (08/18/2025)]({{ site.oc_release_notes }}ios-11.html#1105200-08182025) - [11.0.5100 (08/05/2025)]({{ site.oc_release_notes }}ios-11.html#1105100-08052025) diff --git a/programming/objectivec-swift/release-notes/ios-11.md b/programming/objectivec-swift/release-notes/ios-11.md index 14c7cdb2..c4ae2fd6 100644 --- a/programming/objectivec-swift/release-notes/ios-11.md +++ b/programming/objectivec-swift/release-notes/ios-11.md @@ -10,6 +10,20 @@ noTitleIndex: true # Release Notes for iOS SDK - 11.x +## 11.2.3000 (11/05/2025) + +### Fixed + +- Resolved an issue where `CaptureVisionRouter.startCapturing` could take longer than expected to complete. +- Fixed a performance issue that caused slower continuous decoding when using an online license key. + +### Changed + +- Updated the data types of the following properties in [`DSPDF417Details`]({{ site.dbr_ios_api }}auxiliary-iPDF417Details.html): + - [`errorCorrectionLevel`]({{ site.dbr_ios_api }}auxiliary-iPDF417Details.html#errorcorrectionlevel): from `NSData` to `NSArray`. + - [`hasLeftRowIndicator`]({{ site.dbr_ios_api }}auxiliary-iPDF417Details.html#hasleftrowindicator): from `NSInteger` to `BOOL`. + - [`hasRightRowIndicator`]({{ site.dbr_ios_api }}auxiliary-iPDF417Details.html#hasrightrowindicator): from `NSInteger` to `BOOL`. + ## 11.2.1000 (10/16/2025) ### 🎉Milestone Release diff --git a/programming/objectivec-swift/user-guide.md b/programming/objectivec-swift/user-guide.md index e10d37c7..d0be0b77 100644 --- a/programming/objectivec-swift/user-guide.md +++ b/programming/objectivec-swift/user-guide.md @@ -35,7 +35,7 @@ There are three ways in which you can include the `DynamsoftBarcodeReaderBundle` 2. In the top-right section of the window, search "https://github.com/Dynamsoft/barcode-reader-spm" -3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.2.1000**, then click **Add Package**. +3. Select `barcode-reader-spm`, choose `Exact version`, enter **11.2.3000**, then click **Add Package**. 4. Check all the **xcframeworks** and add. @@ -47,7 +47,7 @@ There are three ways in which you can include the `DynamsoftBarcodeReaderBundle` target 'ScanSingleBarcode' do use_frameworks! - pod 'DynamsoftBarcodeReaderBundle','11.2.1000' + pod 'DynamsoftBarcodeReaderBundle','11.2.3000' end ```