diff --git a/_config.yml b/_config.yml
index 067a1ea..ca4f64d 100644
--- a/_config.yml
+++ b/_config.yml
@@ -41,6 +41,10 @@ dcp_flutter: /code-parser/docs/mobile/programming/flutter/
dcp_flutter_api: /code-parser/docs/mobile/programming/flutter/api-reference/
dce_flutter: /camera-enhancer/docs/mobile/programming/flutter/
dce_flutter_api: /camera-enhancer/docs/mobile/programming/flutter/api-reference/
+ddn_flutter: /document-normalizer/docs/mobile/programming/flutter/
+ddn_flutter_api: /document-normalizer/docs/mobile/programming/flutter/api-reference/
+dlr_flutter: /label-recognition/docs/mobile/programming/flutter/
+dlr_flutter_api: /label-recognition/docs/mobile/programming/flutter/api-reference/
xamarin: /capture-vision/docs/mobile/programming/xamarin/
xamarin-api: /capture-vision/docs/mobile/programming/xamarin/api-reference/
diff --git a/_data/full_tree.yml b/_data/full_tree.yml
index bc7926b..31e7448 100644
--- a/_data/full_tree.yml
+++ b/_data/full_tree.yml
@@ -3,3 +3,4 @@ tree_file_list:
- sidelist-programming/programming-android.html
- sidelist-programming/programming-ios.html
- sidelist-programming/programming-maui.html
+ - sidelist-programming/programming-flutter.html
diff --git a/_includes/sidelist-full-tree.html b/_includes/sidelist-full-tree.html
index 7776c7a..3d90792 100644
--- a/_includes/sidelist-full-tree.html
+++ b/_includes/sidelist-full-tree.html
@@ -10,3 +10,7 @@
MAUI Edition Introduction
{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-maui.html" -%}
+
+ Flutter Edition Introduction
+
+{%- include liquid_searchVersionTreeFile.html ver=include.ver curPath=include.curPath targetRelativePath="sidelist-programming/programming-flutter.html" -%}
diff --git a/_includes/sidelist-programming/programming-flutter.html b/_includes/sidelist-programming/programming-flutter.html
new file mode 100644
index 0000000..07aabec
--- /dev/null
+++ b/_includes/sidelist-programming/programming-flutter.html
@@ -0,0 +1,695 @@
+DEVELOPMENT
+
+User Guide
+
+
+Explore Features
+
+
+
+API References
+
+
+
+UNDERSTANDING DCV
+Architecture
+
+
+Parameters
+
+
+
+USEFUL RESOURCES
+
+
+Choose a Language
+
+
\ No newline at end of file
diff --git a/programming/android/api-reference/capture-vision-router/settings.md b/programming/android/api-reference/capture-vision-router/settings.md
index 9a3f591..ac9e9ea 100644
--- a/programming/android/api-reference/capture-vision-router/settings.md
+++ b/programming/android/api-reference/capture-vision-router/settings.md
@@ -161,7 +161,7 @@ void updateSettings(String templateName, SimplifiedCaptureVisionSettings setting
`[in] templateName`: Specify the name of the template that you want to update.
-`[in] settings`: An object of SimplifiedCaptureVisionSettings.
+`[in] settings`: An object of `SimplifiedCaptureVisionSettings`.
**Exception**
@@ -194,6 +194,8 @@ Returns an object that contains settings for the specified `CaptureVisionTemplat
String outputSettings(String templateName, boolean includeDefaultValues) throws CaptureVisionRouterException;
```
+**Parameters**
+
`[in] templateName`: The name of the template that you want to output.
`[in] includeDefaultValues`: A boolean value that indicates whether to include default values in the output.
diff --git a/programming/android/api-reference/capture-vision-router/single-file-processing.md b/programming/android/api-reference/capture-vision-router/single-file-processing.md
index 68065b6..8744e8b 100644
--- a/programming/android/api-reference/capture-vision-router/single-file-processing.md
+++ b/programming/android/api-reference/capture-vision-router/single-file-processing.md
@@ -102,7 +102,7 @@ CapturedResult capture(ImageData imageData, String templateName);
**Parameters**
-`[in] buffer`: A [`ImageData`]({{ site.dcv_android_api }}core/basic-structures/image-data.html) object that contains image info.
+`[in] imageData`: A [`ImageData`]({{ site.dcv_android_api }}core/basic-structures/image-data.html) object that contains image info.
`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
diff --git a/programming/android/api-reference/core/basic-structures/image-source-adapter.md b/programming/android/api-reference/core/basic-structures/image-source-adapter.md
index 07ba310..caaff70 100644
--- a/programming/android/api-reference/core/basic-structures/image-source-adapter.md
+++ b/programming/android/api-reference/core/basic-structures/image-source-adapter.md
@@ -32,7 +32,7 @@ class ImageSourceAdapter
| [`getBufferOverflowProtectionMode`](#getbufferoverflowprotectionmode) | Get the current mode for handling buffer overflow. |
| [`getColourChannelUsageType`](#getcolourchannelusagetype) | Get the current usage type for color channels in images. |
| [`getImageCount`](#getimagecount) | Get the current number of images in the buffer. |
-| [`getImage`](#getimage) | Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `DSImageData`. |
+| [`getImage`](#getimage) | Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `ImageData`. |
| [`getMaxImageCount`](#getmaximagecount) | Get the maximum number of images that can be buffered. |
| [`hasImage`](#hasimage) | Checks if an image with the specified ID is present in the buffer. |
| [`hasNextImageToFetch`](#hasnextimagetofetch) | Determines whether there are more images available to fetch. |
diff --git a/programming/android/api-reference/core/enum/region-object-element-type.md b/programming/android/api-reference/core/enum/region-object-element-type.md
index 5ad9e87..7c90d67 100644
--- a/programming/android/api-reference/core/enum/region-object-element-type.md
+++ b/programming/android/api-reference/core/enum/region-object-element-type.md
@@ -33,6 +33,6 @@ public @interface EnumRegionObjectElementType
/**The type of subclass DeskewedImageElement.*/
int ROET_DESKEWED_IMAGE = 6;
/**The type of subclass EnhancedImageElement.*/
- int ROET_ENHANCED_IMAGE = 6;
+ int ROET_ENHANCED_IMAGE = 7;
}
```
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
index c4ccd60..c768468 100644
--- a/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md
+++ b/programming/flutter/api-reference/capture-vision-router/capture-vision-router.md
@@ -23,134 +23,233 @@ A `CaptureVisionRouter` instance accepts and processes images from an image sour
class CaptureVisionRouter
```
-## Capture Methods
+## Static Properties
+
+Returns the singleton instance of `CaptureVisionRouter`.
+
+```dart
+static CaptureVisionRouter get instance;
+```
+
+## Methods
+
+Capture from an Image
| 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. |
+
+Process Multiple Images
+
+| 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. |
+| [`setInput`](#setinput) | Sets up an image source to provide images for continuous processing. |
| [`startCapturing`](#startcapturing) | Starts the capturing process using the specified template. |
| [`stopCapturing`](#stopcapturing) | Stops the capturing process and closes the camera. |
+| [`switchCapturingTemplate`](#switchcapturingtemplate) | Switches the template used by the Capture Vision Router instance to the specified template name. |
-## Settings Management Methods
+Settings
| 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. |
+| ------ | ----------- |
+| [`clearDLModelBuffers`](#cleardlmodelbuffers) | Clears the buffer used by deep learning models to free up memory. |
+| [`getSimplifiedSettings`](#getsimplifiedsettings) | Returns a simplified version of the Capture Vision settings for a specific template. |
+| [`getTemplateNames`](#gettemplatenames) | Returns a list of all currently 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. |
+| [`updateSettings`](#updatesettings) | Updates the specified template settings using a `SimplifiedCaptureVisionSettings` object. |
+| [`setGlobalIntraOpNumThreads`](#setglobalintraopnumthreads) | Sets the global number of threads used internally by the library for model execution. |
-## Resource Management Methods
+Intermediate Results
| 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. |
+| ------ | ----------- |
+| [`getIntermediateResultManager`](#getintermediateresultmanager) | Retrieves the IntermediateResultManager instance. |
-## Result Management Methods
+### capture
-| 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. |
+Processes an image using the specified template.
+
+```dart
+Future capture(ImageData imageData, String templateName) async
+```
-## Input Source Methods
+**Parameters**
-| Method | Description |
-| --- | --- |
-| [`setInput`](#setinput) | Sets up an image source to provide images for continuous processing. |
+`[in] imageData`: A [`ImageData`]({{ site.dcv_flutter_api }}core/image-data.html) object that contains image info.
-### addResultFilter
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
+
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
-Adds a result filter to process the captured results. This filter is of type [`MultiFrameResultCrossFilter`](../utility/multi-frame-cross-filter.md).
+### captureFile
+
+Processes an image from a file (specified by a file path) using the specified template.
```dart
-Future addResultFilter(MultiFrameResultCrossFilter filter)
+Future captureFile(String filePath, String templateName) async
```
-**Remarks**
+**Parameters**
+
+`[in] filePath`: The file path and name that you want to capture data from. You have to specify the file name with extension name in the `filePath`. Supported file type includes ".bmp", ".jpg", ".png", ".gif" or one-page ".tiff".
+
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
-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.
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
+
+### captureFileBytes
+
+Processes an image from a byte array using the specified template.
+
+```dart
+Future captureFileBytes(Uint8List bytes, String templateName) async
+```
+
+**Parameters**
+
+`[in] bytes`: A byte array that points to a file in memory.
+
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
+
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
+
+### addResultFilter
+
+Adds a result filter to process the captured results. This filter is of type [`MultiFrameResultCrossFilter`](multi-frame-cross-filter.md). Supported filters:
+
+- Cross-Verification: Improve the accuracy by cross-verifying the results.
+- De-duplication: Removes the duplicated results.
+- Overlapping: Improve the read-rate of multiple barcode scanning by overlaping the results.
+
+```dart
+Future addResultFilter(MultiFrameResultCrossFilter filter)
+```
### 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.
+Adds a [`CapturedResultReceiver`]({{ site.dcv_flutter_api }}capture-vision-router/captured-result-receiver.html) object as the receiver of captured results.
```dart
Future addResultReceiver(CapturedResultReceiver receiver)
```
-**Remarks**
+### removeAllResultFilters
-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.
+Removes all the result filters from the Capture Vision Router instance.
-### capture
+```dart
+Future removeAllResultFilters()
+```
+
+### removeAllResultReceivers
-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.
+Removes all result receivers from the Capture Vision Router instance.
```dart
-Future capture(ImageData imageData, String templateName) async
+Future removeAllResultReceivers()
```
-**Remarks**
+### removeResultFilter
-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*.
+Removes a previously added result filter.
-### captureFile
+```dart
+Future removeResultFilter(MultiFrameResultCrossFilter filter)
+```
-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.
+### removeResultReceiver
+
+Removes a previously added result receiver.
```dart
-Future captureFile(String filePath, String templateName) async
+Future removeResultReceiver(CapturedResultReceiver receiver)
```
-**Remarks**
+### setInput
-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*.
+Sets up an image source to provide images for continuous processing. This method is mainly used when configuring a camera (via the [`CameraEnhancer`]({{ site.dce_flutter_api }}camera-enhancer.html)) as an input source.
-### captureFileBytes
+```dart
+Future setInput(ImageSourceAdapter input) async
+```
+
+**Parameters**
+
+`[in] imageSourceAdapter`: An object of [`ImageSourceAdapter`]({{ site.dcv_flutter_api }}core/image-source-adapter.html).
+
+You can use the following officially implemented `ImageSourceAdapter` classes:
+
+- [`CameraEnhancer`]({{ site.dce_flutter_api }}camera-enhancer.html): A camera class that can capture video frames continuously.
+
+**Exception**
+
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
+
+### startCapturing
-Processes an image from a byte array using the specified template, returning the [`CapturedResult`](captured-result.md) once the process is done.
+Starts the capturing process using the specified template. Any result(s) 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 captureFileBytes(Uint8List bytes, String templateName) async
+Future startCapturing(String templateName)
```
-**Remarks**
+**Parameters**
-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*.
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
-### clearDLModelBuffers
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
-Clears the buffer used by deep learning models to free up memory and resources used by the Capture Vision Router instance for its operation.
+### stopCapturing
+
+Stops the capturing process.
```dart
-static Future clearDLModelBuffers()
+Future stopCapturing()
```
-### getIntermediateResultManager
+### switchCapturingTemplate
-Retrieves the [`IntermediateResultManager`](../utility/intermediate-result-manager.md) instance which allows the user to snap the original image that contains the captured result.
+Switch the image processing settings with the CaptureVisionTemplate name during the image processing workflow.
```dart
-IntermediateResultManager getIntermediateResultManager()
+Future switchCapturingTemplate(String templateName) async
```
-**Remarks**
+**Parameters**
-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`](../utility/intermediate-result-manager.md#getoriginalimage) method of the `IntermediateResultManager` instance.
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
+
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
+
+**Exception**
+
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
### getSimplifiedSettings
@@ -160,41 +259,82 @@ Returns a subset of the full applied settings as a [`SimplifiedCaptureVisionSett
Future getSimplifiedSettings(String templateName) async
```
-**Remarks**
+**Parameters**
+
+`[in] templateName`: Specifies a "CaptureVisionTemplate" to use. The following value are available for this parameter:
+
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
+
+**Exception**
-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]({{ site.dbr_flutter }}foundational-user-guide.md#using-simplifiedcapturevisionsettings).
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
+| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be output as a `SimplifiedCaptureVisionSettings` object. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
### getTemplateNames
-Returns a list of all available Capture Vision template names when a custom template is used via [`initSettings`](#initsettings).
+Returns all the currently available Capture Vision template names.
```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]({{ site.dbr_flutter }}foundational-user-guide.md#using-a-json-template).
+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]({{ site.dbr_flutter }}foundational-user-guide.html#using-a-json-template).
```dart
Future initSettings(String content)
```
-> *Exception* - "Failed to initialize settings"
+**Parameters**
+
+`[in] content`: A JSON string that contains Capture Vision settings.
+
+**Exception**
+
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
+| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
+| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
+| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
+| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
+| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
+| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
+| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
### 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]({{ site.dbr_flutter }}foundational-user-guide.md#using-a-json-template).
+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]({{ site.dbr_flutter }}foundational-user-guide.html#using-a-json-template).
```dart
Future initSettingsFromFile(String filePath) async
```
-> *Exception* - "Failed to initialize settings from file"
+**Parameters**
+
+`[in] filePath`: A JSON file that contains Capture Vision settings.
+
+**Exception**
+
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_FILE_NOT_FOUND | -10005 | The file is not found. |
+| EC_JSON_PARSE_FAILED | -10030 | Failed to parse the JSON data. |
+| EC_JSON_TYPE_INVALID | -10031 | One or more parameters are allocated with wrong data type. |
+| EC_JSON_KEY_INVALID | -10032 | There exists invalid key in your JSON data. |
+| EC_JSON_VALUE_INVALID | -10033 | There exists invalid parameter value in your JSON data. |
+| EC_JSON_NAME_KEY_MISSING | -10034 | One or more `name` parameters are missing in your JSON data. Each section of the JSON data requires a unique `name` parameter. |
+| EC_JSON_NAME_VALUE_DUPLICATED | -10035 | There exists duplicated `name` parameters in your JSON data. The `name` parameter should be unique. |
+| EC_JSON_NAME_REFERENCE_INVALID | -10037 | You have referenced an invalid `name` value in your JSON data. |
+| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your JSON data. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
### outputSettings
@@ -204,49 +344,49 @@ Outputs the specified Capture Vision template's settings as a JSON string. If `i
Future outputSettings(String templateName, bool includeDefaultValues) async
```
-> *Exception* - "Failed to output settings"
-
-### 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.
+**Parameters**
-```dart
-Future outputSettingsToFile(String templateName, String filePath, bool includeDefaultValues) async
-```
+`[in] templateName`: The name of the template that you want to output.
-> *Exception* - "Failed to output settings to file"
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
-### removeAllResultFilters
+`[in] includeDefaultValues`: A boolean value that indicates whether to include default values in the output.
-Removes all the result filters from the Capture Vision Router instance.
+**Exception**
-```dart
-Future removeAllResultFilters()
-```
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-### removeAllResultReceivers
+### outputSettingsToFile
-Removes all result receivers from the Capture Vision Router instance.
+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 removeAllResultReceivers()
+Future outputSettingsToFile(String templateName, String filePath, bool includeDefaultValues) async
```
-### removeResultFilter
+**Parameters**
-Removes a previously added result filter.
+`[in] templateName`: The name of the template that you want to output.
-```dart
-Future removeResultFilter(MultiFrameResultCrossFilter filter)
-```
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
-### removeResultReceiver
+`[in] file`: The file path and name that you want to save the template.
-Removes a previously added result receiver.
+`[in] includeDefaultValues`: A boolean value that indicates whether to include default values in the output.
-```dart
-Future removeResultReceiver(CapturedResultReceiver receiver)
-```
+**Exception**
+
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_FILE_SAVE_FAILED | -10058 | The file path is unavailable or the file can't be created for any other reasons. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
### resetSettings
@@ -256,81 +396,63 @@ Resets all of the settings to their default values.
Future resetSettings() async
```
-> *Exception* - "Failed to reset settings"
+**Exception**
-### setGlobalIntraOpNumThreads
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-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.
+### 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]({{ site.dbr_flutter }}foundational-user-guide.html#using-simplifiedcapturevisionsettings).
```dart
-static Future setGlobalIntraOpNumThreads(int intraOpNumThreads)
+Future updateSettings(String templateName, SimplifiedCaptureVisionSettings settings)
```
-**Remarks**
-
-Setting the `intraOpNumThreads` input parameter to 0 lets the system decide the optimal number of threads. The default value is 0.
-
-### setInput
+**Parameters**
-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/camera-enhancer.md)) as an input source.
+`[in] templateName`: Specify the name of the template that you want to update.
-```dart
-Future setInput(ImageSourceAdapter input) async
-```
+- One of the [`EnumPresetTemplate`]({{ site.dcv_flutter_api }}core/enum/preset-template.html) member. This is available only if you have never upload a new template via `initSettings` or `initSettingsFromFile`.
+- A string that represents one of the template name that you have uploaded via `initSettings` or `initSettingsFromFile`.
+- "" (empty string) to use the default template. The first template will be used if you have uploaded a template file via `initSettingsFromFile` or `initSettings`.
-**Remarks**
+`[in] settings`: An object of `SimplifiedCaptureVisionSettings`.
-In most cases, the `ImageSourceAdapter` that will be used is a Camera Enhancer ([`CameraEnhancer`](../camera-enhancer/camera-enhancer.md)) instance to allow the user to use their phone's built-in camera.
+**Exception**
-> *Exception* - "Failed to set input"
+| Error Code | Value | Description |
+| :--------- | :---- | :---------- |
+| EC_TEMPLATE_NAME_INVALID | -10036 | The target template name is invalid. |
+| EC_PARAMETER_VALUE_INVALID | -10038 | There exists invalid parameter value in your `SimplifiedCaptureVisionSettings`. |
+| EC_CONVERT_COMPLEX_TEMPLATE_ERROR | -10061 | The template you specified is a complex template which can not be updated via a `SimplifiedCaptureVisionSettings` object. |
+| EC_CALL_REJECTED_WHEN_CAPTURING | -10062 | Function call is rejected when capturing in progress. |
-### startCapturing
+### setGlobalIntraOpNumThreads
-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.
+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
-Future startCapturing(String templateName)
+static Future setGlobalIntraOpNumThreads(int intraOpNumThreads)
```
-**Remarks**
+**Parameters**
-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.
+`intraOpNumThreads`: Number of threads used internally for model execution. Valid range: [0, 256]. Default: 2.
-> *Exception* - "Failed to start capturing"
-
-### stopCapturing
-
-Stops the capturing process and closes the camera.
-
-```dart
-Future stopCapturing()
-```
-
-### switchCapturingTemplate
+### clearDLModelBuffers
-Switched the template used by the Capture Vision Router instance to the specified template name.
+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
-Future switchCapturingTemplate(String templateName) async
+static Future clearDLModelBuffers()
```
-**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).
-
-> *Exception* - "Failed to switch template"
-
-### updateSettings
+### getIntermediateResultManager
-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]({{ site.dbr_flutter }}foundational-user-guide.md#using-simplifiedcapturevisionsettings).
+Retrieves the [`IntermediateResultManager`](intermediate-result-manager.md) instance.
```dart
-Future updateSettings(String templateName, SimplifiedCaptureVisionSettings settings)
+IntermediateResultManager getIntermediateResultManager();
```
-
-**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).
-
-> *Exception* - "Failed to update settings"
-
diff --git a/programming/flutter/api-reference/capture-vision-router/captured-result-filter.md b/programming/flutter/api-reference/capture-vision-router/captured-result-filter.md
new file mode 100644
index 0000000..66530c2
--- /dev/null
+++ b/programming/flutter/api-reference/capture-vision-router/captured-result-filter.md
@@ -0,0 +1,21 @@
+---
+layout: default-layout
+title: CapturedResultFilter Class - Dynamsoft Capture Vision Flutter
+description: CapturedResultFilter 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
+---
+
+# CapturedResultFilter
+
+Abstract class `CapturedResultFilter` is responsible for filtering captured results. It is officially implemented as [MultiFrameResultCrossFilter](multi-frame-cross-filter.md).
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+abstract class CapturedResultFilter
+```
diff --git a/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md b/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md
index 9253e7d..2cc2b6a 100644
--- a/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md
+++ b/programming/flutter/api-reference/capture-vision-router/captured-result-receiver.md
@@ -24,9 +24,11 @@ class CapturedResultReceiver
| Method | Description |
| ------ | ----------- |
-| [`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`](#onparsedreultsreceived) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. |
+| [`onCapturedResultReceived`](#oncapturedresultreceived) | The callback invoked when captured results become available. It is triggered once for each image after its processing is completed. |
+| [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | The callback invoked when decoded barcodes become available. It is triggered once for each image after its processing is completed. |
+| [`onParsedResultsReceived`](#onparsedreultsreceived) | The callback invoked when parsed results become available. It is triggered once for each image after its processing is completed.|
+| [`onProcessedDocumentResultReceived`](#onparsedreultsreceived) | The callback invoked when processed document results become available. It is triggered once for each image after its processing is completed. |
+| [`onRecognizedTextLinesReceived`](#onparsedreultsreceived) | The callback invoked when recognized text lines become available. It is triggered once for each image after its processing is completed. |
### onCapturedResultReceived
@@ -59,3 +61,31 @@ This callback method delivers a [`ParsedResult`]({{ site.dcp_flutter_api }}parse
```dart
Future Function(ParsedResult result)? onParsedResultsReceived;
```
+
+**Parameters**
+
+`result`: The parsed result, an instance of [`ParsedResult`]({{ site.dcp_flutter_api }}parsed-result.html).
+
+### onProcessedDocumentResultReceived
+
+This callback method delivers a [`ProcessedDocumentResult`]({{ site.ddn_flutter_api }}processed-document-result.html), which is an object representing any captured result of type `detectedQuad`, `deskewedImage` and `enhancedImage` that is taken from an image or a video frame. The callback is triggered each time an image finishes processing, regardless of whether there is a valid result or not.
+
+```dart
+Future Function(ProcessedDocumentResult result)? onProcessedDocumentResultReceived;
+```
+
+**Parameters**
+
+`result`: The document processing results, an instance of [`ProcessedDocumentResult`]({{ site.ddn_flutter_api }}processed-document-result.html).
+
+### onRecognizedTextLinesReceived
+
+This callback method delivers a [`RecognizedTextLinesResult`]({{ site.dlr_flutter_api }}recognized-text-lines-result.html), which is an object representing any captured result of type `recognizedTextLines` that is taken from an image or a video frame. The callback is triggered each time an image finishes processing, regardless of whether there is a valid result or not.
+
+```dart
+Future Function(RecognizedTextLinesResult result)? onRecognizedTextLinesReceived;
+```
+
+**Parameters**
+
+`result`: The text recognition result, an instance of [`RecognizedTextLinesResult`]({{ site.dlr_flutter_api }}recognized-text-lines-result.html).
diff --git a/programming/flutter/api-reference/capture-vision-router/captured-result.md b/programming/flutter/api-reference/capture-vision-router/captured-result.md
index eb3bb71..aca2d07 100644
--- a/programming/flutter/api-reference/capture-vision-router/captured-result.md
+++ b/programming/flutter/api-reference/capture-vision-router/captured-result.md
@@ -10,68 +10,63 @@ noTitleIndex: true
# CapturedResult
-The `CapturedResult` class represents the result of a capture operation on an image. Internally, `CapturedResult` stores an array of [`CapturedResultItem`](captured-result-item.md), each of which may be a barcode, text line, detected quad, normalized image, original image, or parsed item depending on the functional product that is used.
-
-> [!TIP]
-> In the context of the Barcode Reader, you will most likely be using the [`DecodedBarcodesResult`]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html) as the main result type.
-
-> [!NOTE]
-> The type of `CapturedResult` is dependent on the functional product that is used by the Capture Vision Router instance. To learn about the different types of functional products that Capture Vision supports, please visit the [Capture Vision Introduction]({{ site.introduction }}index.html#functional-products).
+The `CapturedResult` class represents the result of a capture operation on an image. Internally, `CapturedResult` stores an array of [`CapturedResultItem`](../core/captured-result-item.md), each of which may be a barcode, text line, detected quad, normalized image, original image, or parsed item depending on the functional product that is used.
## Definition
*Assembly:* dynamsoft_capture_vision_flutter
```dart
-class CapturedResult
+class CapturedResult extends CapturedResultBase
```
## Properties
| Property | Type | Description |
-| --------- | ----------- |
-| [`originalImageHashId`](#originalimagehashid) | *String* | The hash ID of the original image. You can use this ID to get the original image via the `IntermediateResultManager` class. |
-| [`rotationTransformMatrix`](#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. |
-| [`errorCode`](#errorcode) | *int* | The error code associated with the capture result. |
-| [`errorMessage`](#errormessage) | *String* | The error message associated with the capture result. |
-| [`decodedBarcodesResult`](#decodedbarcodesresult) | [*DecodedBarcodesResult*]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html) | A [`DecodedBarcodesResult`](decoded-barcodes-result.md) object that represents all of the decoded barcode(s) within the original image. |
+| -------- | ---- | ----------- |
+| [`items`](#items) | *List\?* | A list of [`CapturedResultItem`](captured-result-item.md) objects. |
+| [`decodedBarcodesResult`](#decodedbarcodesresult) | [*DecodedBarcodesResult*]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html) | All results of type `barcode` in the `CapturedResult` as a `DecodedBarcodesResult` object. |
+| [`recognizedTextLinesResult`](#recognizedtextlinesresult) | [*RecognizedTextLinesResult*]({{ site.dlr_flutter_api }}recognized-text-lines-result.html) | All results of type `textLine` in the `CapturedResult` as a `RecognizedTextLinesResult` object. |
+| [`processedDocumentResult`](#processeddocumentresult) | [*ProcessedDocumentResult*]({{ site.ddn_flutter_api }}processed-document-result.html) | All results of type `detectedQuad`, `deskewedImage` and `enhancedImage` in the `CapturedResult` as a `ProcessedDocumentResult` object. |
+| [`parsedResult`](#parsedresult) | [*ParsedResult*]({{ site.dcp_flutter_api }}parsed-result.html) | All results of type `parsedResult` in the `CapturedResult` as a `ParsedResult` object. |
-### originalImageHashId
-Returns the hash ID of the original image that contains the captured result. You can use this ID to get the original image via the [`IntermediateResultManager`](./intermediate-result-manager.md) class.
+### items
+
+A list of [`CapturedResultItem`]({{ site.dcv_flutter_api }}captured-result-item.html) objects.
```dart
-String originalImageHashId,
+List? items;
```
-### rotationTransformMatrix
+### decodedBarcodesResult
-The rotation transformation matrix (represented as a [`Matrix4`](https://api.flutter.dev/flutter/package-vector_math_vector_math_64/Matrix4-class.html)]) of the original image relative to the rotated image.
+All results of type `barcode` in the `CapturedResult` as a `DecodedBarcodesResult` object.
```dart
-Matrix4 rotationTransformMatrix;
+DecodedBarcodesResult? decodedBarcodesResult;
```
-### errorCode
+### recognizedTextLinesResult
-The error code produced by the library and associated with the captured result should something go wrong during the recognition process.
+All results of type `textLine` in the `CapturedResult` as a `RecognizedTextLinesResult` object.
```dart
-int errorCode;
+RecognizedTextLinesResult? recognizedTextLinesResult;
```
-### errorMessage
+#### processedDocumentResult
-The error string associated with the error code, providing details about the error.
+All results of type `detectedQuad`, `deskewedImage` and `enhancedImage` in the `CapturedResult` as a `ProcessedDocumentResult` object.
```dart
-String errorMessage;
+ProcessedDocumentResult? processedDocumentResult;
```
-### decodedBarcodesResult
+### parsedResult
-A [`DecodedBarcodesResult`]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html) object that represents all of the decoded barcode(s) within the original image.
+All results of type `parsedResult` in the `CapturedResult` as a `ParsedResult` object.
```dart
-DecodedBarcodesResult? decodedBarcodesResult;
+ParsedResult? parsedResult;
```
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
index 8910857..8bfbced 100644
--- a/programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md
+++ b/programming/flutter/api-reference/capture-vision-router/intermediate-result-manager.md
@@ -32,9 +32,9 @@ 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.
+In order to get the hashID input parameter, please access the `originalImageHashId` of the [`CapturedResult`](captured-result.md). The `CapturedResult` can be a [`DecodedBarcodesResult`]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html) (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.
+The method returns a [`ImageData`]({{ site.dcv_flutter_api }}core/image-data.html) object which contains all the info of the original image, including a byte array to represent the raw image.
## Code Snippet
diff --git a/programming/flutter/api-reference/utility/multi-frame-cross-filter.md b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md
similarity index 82%
rename from programming/flutter/api-reference/utility/multi-frame-cross-filter.md
rename to programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md
index 8c7bc0a..06dca45 100644
--- a/programming/flutter/api-reference/utility/multi-frame-cross-filter.md
+++ b/programming/flutter/api-reference/capture-vision-router/multi-frame-cross-filter.md
@@ -57,11 +57,11 @@ 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.
+`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/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.
+Enables or disables result cross verification for the specified result item types (represented as a combination of [`EnumCapturedResultItemType`](../core/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)
@@ -69,11 +69,11 @@ 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.
+`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/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`.
+Enables or disables result deduplication for the specified result item types (represented as a combination of [`EnumCapturedResultItemType`](../core/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)
@@ -81,7 +81,7 @@ 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.
+`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md). `enable` determines whether to enable or disable the filter process.
### getDuplicateForgetTime
@@ -93,7 +93,7 @@ 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).
+`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md).
### getMaxOverlappingFrames
@@ -105,7 +105,7 @@ 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).
+`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md).
### isLatestOverlappingEnabled
@@ -117,7 +117,7 @@ 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).
+`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md).
### isResultCrossVerificationEnabled
@@ -129,7 +129,7 @@ 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).
+`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md).
### isResultDeduplicationEnabled
@@ -141,7 +141,7 @@ 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).
+`type` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md).
### setDuplicateForgetTime
@@ -153,7 +153,7 @@ 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*.
+`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/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).
@@ -164,7 +164,7 @@ 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.
+`resultItemTypes` is a bitmask representing the result item types to apply the filter to - this value can be a combined value of [`EnumCapturedResultItemType`](../core/enum/captured-result-item-type.md). `maxFramesToCheck` specifies the target number of frames that the filter should not exceed.
## Code Snippet
diff --git a/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md b/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md
index 523e01e..d7f363a 100644
--- a/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md
+++ b/programming/flutter/api-reference/capture-vision-router/simplified-capture-vision-settings.md
@@ -29,7 +29,9 @@ class SimplifiedCaptureVisionSettings
| [`maxParallelTasks`](#maxparalleltasks) | *int* | Determines the maximum number of parallel tasks allowed for image capture and recognition. |
| [`minImageCaptureInterval`](#minimagecaptureinterval) | *int* | Sets the minimum interval (in milliseconds) between image captures. |
| [`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. |
+| [`barcodeSettings`](#barcodesettings) | *[SimplifiedBarcodeReaderSettings]({{ site.dbr_flutter_api }}barcode-reader/simplified-barcode-reader-settings.html)* | The settings for the `DynamsoftBarcodeReader` tasks. |
+| [`labelSettings`](#labelsettings) | *[SimplifiedLabelRecognizerSettings]({{ site.dlr_flutter_api }}simplified-label-recognizer-settings.html)* | The settings for the `DynamsoftBarcodeReader` tasks. |
+| [`documentSettings`](#documentsettings) | *[SimplifiedDocumentNormalizerSettings]({{ site.ddn_flutter_api }}simplified-document-normalizer-settings.html)* | The settings for the `DynamsoftBarcodeReader` tasks. |
### roi
@@ -73,12 +75,24 @@ int Timeout { get; set; }
### barcodeSettings
-The settings for the `DynamsoftBarcodeReader` tasks as a [`SimplifiedBarcodeReaderSettings`](simplified-barcode-reader-settings.md) object.
+The settings for the `DynamsoftBarcodeReader` tasks as a [`SimplifiedBarcodeReaderSettings`]({{ site.dbr_flutter_api }}barcode-reader/simplified-barcode-reader-settings.html) object.
```dart
-SimplifiedBarcodeReaderSettings barcodeSettings;
+SimplifiedBarcodeReaderSettings? barcodeSettings;
```
-**Remarks**
+### labelSettings
-If you would like to learn more on how to configure the Barcode Reader, please refer to the [User Guide (Foundational Edition)](../../foundational-user-guide.md#configuring-the-barcode-reader-optional).
+The settings for the `DynamsoftLabelRecognizer` tasks as a [`SimplifiedLabelRecognizerSettings`]({{ site.dlr_flutter_api }}simplified-label-recognizer-settings.html) object.
+
+```dart
+SimplifiedLabelRecognizerSettings? labelSettings;
+```
+
+### documentSettings
+
+The settings for the `DynamsoftDocumentNormalizer` tasks as a [`SimplifiedDocumentNormalizerSettings`]({{ site.ddn_flutter_api }}simplified-document-normalizer-settings.html) object.
+
+```dart
+SimplifiedDocumentNormalizerSettings? documentSettings;
+```
diff --git a/programming/flutter/api-reference/core/captured-result-base.md b/programming/flutter/api-reference/core/captured-result-base.md
new file mode 100644
index 0000000..65842c5
--- /dev/null
+++ b/programming/flutter/api-reference/core/captured-result-base.md
@@ -0,0 +1,70 @@
+---
+layout: default-layout
+title: CapturedResultBase - Dynamsoft Capture Vision Flutter
+description: The class CapturedResultBase of Dynamsoft Core Module Flutter edition is the base class of all types of captured results.
+keywords: captured result base, Flutter
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+ignore: true
+---
+
+# CapturedResultBase
+
+The `CapturedResultBase` class is the base class of all types of captured results.
+
+> [!NOTE]
+> Sub classes:
+> - Barcode: [`DecodedBarcodesResult`]({{ site.dbr_flutter_api }}barcode-reader/decoded-barcodes-result.html)
+> - Text line: [`RecognizedTextLinesResult`]({{ site.dlr_flutter_api }}recognized-text-lines-result.html)
+> - Document page(s): [`ProcessedDocumentResult`]({{ site.ddn_flutter_api }}processed-document-result.html)
+> - Parsed content (DL, MRZ, VIN, GS1 AI, etc.): [`ParsedResult`]({{ site.dcp_flutter_api }}parsed-result.html)
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+class CapturedResultBase
+```
+
+## Properties
+
+| Properties | Types | Description |
+| ---------- | ----- | ----------- |
+| [`originalImageHashId`](#originalimagehashid) | *String* | The hash id of the original image. |
+| [`rotationTransformMatrix`](#rotationtransformmatrix) | *Matrix4* | The rotation transformation matrix of the original image relative to the rotated image. |
+| [`errorCode`](#errorcode) | *int* | The error code of this result. |
+| [`errorMessage`](#errormessage) | *String* | The error message of this result. |
+
+### originalImageHashId
+
+The hash id of the original image.
+
+```dart
+String originalImageHashId;
+```
+
+### rotationTransformMatrix
+
+The rotation transformation matrix of the original image relative to the rotated image.
+
+```dart
+Matrix4 rotationTransformMatrix;
+```
+
+### errorCode
+
+The error code of this result.
+
+```dart
+int errorCode;
+```
+
+### errorMessage
+
+The error message of this result.
+
+```dart
+String? errorMessage;
+```
diff --git a/programming/flutter/api-reference/capture-vision-router/captured-result-item.md b/programming/flutter/api-reference/core/captured-result-item.md
similarity index 51%
rename from programming/flutter/api-reference/capture-vision-router/captured-result-item.md
rename to programming/flutter/api-reference/core/captured-result-item.md
index 4c5f287..78c1cb7 100644
--- a/programming/flutter/api-reference/capture-vision-router/captured-result-item.md
+++ b/programming/flutter/api-reference/core/captured-result-item.md
@@ -10,13 +10,17 @@ noTitleIndex: true
# CapturedResultItem
-The `CapturedResultItem` class represents the most basic item in the captured result. Depending on the type of the [`CapturedResult`](captured-result.md), the captured result item can be a barcode, a text line, a normalized image, a detected quad, a parsed item, or an original image.
-
-> [!TIP]
-> In the context of the Barcode Reader, you will most likely be using the [BarcodeResultItem]({{ site.dbr_flutter_api }}barcode-reader/barcode-result-item.html) as the main result type.
+The `CapturedResultItem` class represents the most basic item in the captured result. Depending on the type of the [`CapturedResult`](../capture-vision-router/captured-result.md), the captured result item can be a barcode, a text line, a normalized image, a detected quad, a parsed item, or an original image.
> [!NOTE]
-> The type of `CapturedResultItem` is dependent on the functional product that is used by the Capture Vision Router instance. To learn about the different types of functional products that Capture Vision supports, please visit the [Capture Vision Introduction]({{ site.introduction }}index.html#functional-products).
+> Sub classes:
+> - Barcode: [`BarcodeResultItem`]({{ site.dbr_flutter_api }}barcode-reader/barcode-result-item.html)
+> - Text line: [`TextLineResultItem`]({{ site.dlr_flutter_api }}text-line-result-item.html)
+> - Document page(s):
+> - [`DeskewedImageResultItem`]({{ site.ddn_flutter_api }}deskewed-image-result-item.html)
+> - [`DetectedQuadResultItem`]({{ site.ddn_flutter_api }}detected-quad-result-item.html)
+> - [`EnhancedImageResultItem`]({{ site.ddn_flutter_api }}enhanced-image-result-item.html)
+> - Parsed content (DL, MRZ, VIN, GS1 AI, etc.): [`ParsedResultItem`]({{ site.dcp_flutter_api }}parsed-result-item.html)
## Definition
@@ -32,11 +36,11 @@ class CapturedResultItem
| --------- | ---- | ----------- |
| [`targetROIDefName`](#targetroidefname) | *String* | The name of the target region of interest (ROI) where the captured result was found. |
| [`taskName`](#taskname) | *String* | The name of the recognition task that produced the CapturedResultItem. |
-| [`type`](#type) | [*EnumCapturedResultItemType*](../enum/captured-result-item-type.md) | The type of the captured result item. |
+| [`type`](#type) | [*EnumCapturedResultItemType*](enum/captured-result-item-type.md) | The type of the captured result item. |
### targetROIDefName
-Returns a string that represents the name of the target region of interest (ROI) where the captured result was found. The target ROI is where the recognition task is run, and it is defined in the Capture Vision template that is called when [`startCapturing`](capture-vision-router.md#startcapturing) or [`capture`](capture-vision-router.md#capture) is called.
+Returns a string that represents the name of the target region of interest (ROI) where the captured result was found. The target ROI is where the recognition task is run, and it is defined in the Capture Vision template.
```dart
String targetROIDefName,
@@ -48,7 +52,7 @@ To learn more about the `TargetROIDef` object, please visit this [page]({{ site.
### taskName
-Returns the name of the recognition task that produced the CapturedResultItem. The task name sets the functional product that will be used for the recognition task, and it is defined in the Capture Vision template that is called when [`startCapturing`](capture-vision-router.md#startcapturing) or [`capture`](capture-vision-router.md#capture) is called.
+Returns the name of the recognition task that produced the CapturedResultItem. The task name sets the functional product that will be used for the recognition task, and it is defined in the Capture Vision template.
```dart
String taskName;
@@ -60,7 +64,7 @@ To learn more about how the tasks are set in the TargetROIDef object, please vis
### type
-The type of the captured result item represented as a [`EnumCapturedResultItemType`](../enum/captured-result-item-type.md). Depending on the functional product used, the captured result item can be a barcode, a text line, a normalized image, a detected quad, a parsed item, or an original image.
+The type of the captured result item represented as a [`EnumCapturedResultItemType`](enum/captured-result-item-type.md). Depending on the functional product used, the captured result item can be a barcode, a text line, a normalized image, a detected quad, a parsed item, or an original image.
```dart
EnumCapturedResultItemType type;
@@ -68,4 +72,11 @@ EnumCapturedResultItemType type;
**Remarks**
-The type of `CapturedResultItem` is dependent on the functional product that is used by the Capture Vision Router instance. To learn about the different types of functional products that Capture Vision supports, please visit the [Capture Vision Introduction]({{ site.introduction }}index.html#functional-products)
+| CapturedResultItemType | Sub Class |
+| ---------------------- | --------- |
+| `barcode` | [`BarcodeResultItem`]({{ site.dbr_flutter_api }}barcode-reader/barcode-result-item.html) |
+| `textLine` | [`TextLineResultItem`]({{ site.dlr_flutter_api }}text-line-result-item.html) |
+| `detectedQuad` | [`DetectedQuadResultItem`]({{ site.ddn_flutter_api }}detected-quad-result-item.html) |
+| `deskewedImage` | [`DeskewedImageResultItem`]({{ site.ddn_flutter_api }}deskewed-image-result-item.html) |
+| `parsedResult` | [`ParsedResultItem`]({{ site.dcp_flutter_api }}parsed-result-item.html) |
+| `enhancedImage` | [`EnhancedImageResultItem`]({{ site.ddn_flutter_api }}enhanced-image-result-item.html) |
diff --git a/programming/flutter/api-reference/core/character-result.md b/programming/flutter/api-reference/core/character-result.md
new file mode 100644
index 0000000..1904877
--- /dev/null
+++ b/programming/flutter/api-reference/core/character-result.md
@@ -0,0 +1,91 @@
+---
+layout: default-layout
+title: CharacterResult - Dynamsoft Label Recognizer Android Edition
+description: The class CharacterResult of Dynamsoft Label Recognizer Android edition represents the result of a character recognition process.
+keywords: Character result
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: CharacterResult
+permalink: /programming/android/api-reference/character-result.html
+---
+
+# CharacterResult
+
+The `CharacterResult` class represents the result of a character recognition process. It contains the characters recognized (high, medium, and low confidence), their respective confidences, and the location of the character in a quadrilateral shape.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```java
+class CharacterResult
+```
+
+## Methods
+
+| Method | Description |
+| ------ | ----------- |
+| [`CharacterH`](#characterh) | Returns the highest confidence character recognized. |
+| [`CharacterM`](#characterm) | Returns the medium confidence character recognized. |
+| [`CharacterL`](#characterl) | Returns the lowest confidence character recognized. |
+| [`Location`](#location) | Returns the location of the recognized character within the image. |
+| [`CharacterHConfidence`](#characterhconfidence) | Returns the confidence score for the highest confidence character. |
+| [`CharacterMConfidence`](#charactermconfidence) | Returns the confidence score for the medium confidence character. |
+| [`CharacterLConfidence`](#characterlconfidence) | Returns the confidence score for the lowest confidence character. |
+
+### CharacterH
+
+Returns the highest confidence character recognized.
+
+```java
+String characterH;
+```
+
+### CharacterM
+
+Returns the medium confidence character recognized.
+
+```java
+String characterM;
+```
+
+### CharacterL
+
+Returns the lowest confidence character recognized.
+
+```java
+String characterL;
+```
+
+### Location
+
+Returns the location of the recognized character within the image.
+
+```java
+Quadrilateral? location;
+```
+
+### CharacterHConfidence
+
+Returns the confidence score for the highest confidence character.
+
+```java
+int characterHConfidence;
+```
+
+### CharacterMConfidence
+
+Returns the confidence score for the medium confidence character.
+
+```java
+int characterMConfidence;
+```
+
+### CharacterLConfidence
+
+Returns the confidence score for the lowest confidence character.
+
+```java
+int characterLConfidence;
+```
diff --git a/programming/flutter/api-reference/core/enum/barcode-format.md b/programming/flutter/api-reference/core/enum/barcode-format.md
new file mode 100644
index 0000000..cfb9334
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/barcode-format.md
@@ -0,0 +1,131 @@
+---
+layout: default-layout
+title: EnumBarcodeFormat - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumBarcodeFormat of DBR Flutter Edition defines the supported barcode formats.
+keywords: barcode format, Flutter, OneD, QR Code, GS1 Databar
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumBarcodeFormat
+---
+
+# EnumBarcodeFormat
+
+`EnumBarcodeFormat` is an enumeration that represents the supported barcode formats of the Barcode Reader.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+class EnumBarcodeFormat {
+ static final BigInt none = BigInt.from(0);
+ static final BigInt code39 = BigInt.from(1);
+ static final BigInt code128 = BigInt.from(1 << 1);
+ static final BigInt code93 = BigInt.from(1 << 2);
+ static final BigInt codabar = BigInt.from(1 << 3);
+ static final BigInt itf = BigInt.from(1 << 4);
+ static final BigInt ean13 = BigInt.from(1 << 5);
+ static final BigInt ean8 = BigInt.from(1 << 6);
+ static final BigInt upcA = BigInt.from(1 << 7);
+ static final BigInt upcE = BigInt.from(1 << 8);
+ static final BigInt industrial25 = BigInt.from(1 << 9);
+ static final BigInt code39Extended = BigInt.from(1 << 10);
+ static final BigInt gs1DatabarOmnidirectional = BigInt.from(1 << 11);
+ static final BigInt gs1DatabarTruncated = BigInt.from(1 << 12);
+ static final BigInt gs1DatabarStacked = BigInt.from(1 << 13);
+ static final BigInt gs1DatabarStackedOmnidirectional = BigInt.from(1 << 14);
+ static final BigInt gs1DatabarExpanded = BigInt.from(1 << 15);
+ static final BigInt gs1DatabarExpandedStacked = BigInt.from(1 << 16);
+ static final BigInt gs1DatabarLimited = BigInt.from(1 << 17);
+ static final BigInt patchcode = BigInt.from(1 << 18);
+ static final BigInt microPdf417 = BigInt.from(1 << 19);
+ static final BigInt msiCode = BigInt.from(1 << 20);
+ static final BigInt code11 = BigInt.from(1 << 21);
+ static final BigInt twoDigitAddOn = BigInt.from(1 << 22);
+ static final BigInt fiveDigitAddOn = BigInt.from(1 << 23);
+ static final BigInt code32 = BigInt.from(1 << 24);
+ static final BigInt pdf417 = BigInt.from(1 << 25);
+ static final BigInt qrCode = BigInt.from(1 << 26);
+ static final BigInt datamatrix = BigInt.from(1 << 27);
+ static final BigInt aztec = BigInt.from(1 << 28);
+ static final BigInt maxicode = BigInt.from(1 << 29);
+ static final BigInt microQr = BigInt.from(1 << 30);
+ static final BigInt gs1Composite = BigInt.from(1 << 31);
+ static final BigInt nonStandardBarcode = BigInt.from(1 << 32);
+ static final BigInt dotcode = BigInt.from(1 << 33);
+ static final BigInt pharmacodeOneTrack = BigInt.from(1 << 34);
+ static final BigInt pharmacodeTwoTrack = BigInt.from(1 << 35);
+ static final BigInt matrix25 = BigInt.from(1 << 36);
+ static final BigInt telepen = BigInt.from(1 << 37);
+ static final BigInt telepenNumeric = BigInt.from(1 << 38);
+ static final BigInt uspsIntelligentMail = BigInt.from(1 << 52);
+ static final BigInt postnet = BigInt.from(1 << 53);
+ static final BigInt planet = BigInt.from(1 << 54);
+ static final BigInt australianPost = BigInt.from(1 << 55);
+ static final BigInt rm4scc = BigInt.from(1 << 56);
+ static final BigInt kix = BigInt.from(1 << 57);
+ static final BigInt pharmacode = BigInt.from(0xC00000000);
+ static final BigInt postalCode = BigInt.from(0x3F0000000000000);
+ static final BigInt oned = BigInt.from(0x3007FF);
+ static final BigInt gs1Databar = BigInt.from(0x3F800);
+ static final BigInt defaultFormat = BigInt.from(0xFE3BFFFF);
+ static final BigInt all = BigInt.parse('FFFFFFFEFFFFFFFF', radix: 16);
+}
+```
+
+## 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 code39, code128, code93, codabar, itf, ean13, ean8, upcA, upcE, industrial25, code39Extended and msiCode. |
+| `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 gs1DatabarOmnidirectional, gs1DatabarTruncated, gs1DatabarStacked, gs1DatabarStackedOmnidirectional, gs1DatabarExpanded, gs1DatabarExpandedStacked, gs1DatabarLimited. 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 pharmacodeOneTrack and pharmacodeTwoTrack. |
+| `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 uspsIntelligentMail, postnet, planet, australianPost, rm4scc, 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/core/enum/buffer-overflow-protection-mode.md b/programming/flutter/api-reference/core/enum/buffer-overflow-protection-mode.md
new file mode 100644
index 0000000..3dc9ef3
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/buffer-overflow-protection-mode.md
@@ -0,0 +1,33 @@
+---
+layout: default-layout
+title: BufferOverflowProtectionMode - Dynamsoft Capture Vision Flutter
+description: The enumeration BufferOverflowProtectionMode of Dynamsoft Capture Vision Flutter describes the protection modes when the buffer of ImageSourceAdapter is overflow.
+keywords: Buffer overflow protection mode
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: BufferOverflowProtectionMode
+codeAutoHeight: true
+---
+
+# EnumBufferOverflowProtectionMode
+
+`BufferOverflowProtectionMode` describes the protection modes to manage situations when the `ImageSourceAdapter`'s buffer exceeds its capacity.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumBufferOverflowProtectionMode {
+ block,
+ update
+}
+```
+
+## Members
+
+| Member | Description |
+| ------ | ----------- |
+| `block` | New images are blocked when the buffer is full. |
+| `update` | New images are appended at the end, and the oldest images are pushed out from the beginning if the buffer is full. |
\ No newline at end of file
diff --git a/programming/flutter/api-reference/core/enum/camera-position.md b/programming/flutter/api-reference/core/enum/camera-position.md
new file mode 100644
index 0000000..54a1a63
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/camera-position.md
@@ -0,0 +1,35 @@
+---
+layout: default-layout
+title: EnumCameraPosition - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumCameraPosition of DBR Flutter Edition defines the possible camera(s) to choose from.
+keywords: camera enhancer, position, flutter, barcode
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumCameraPosition
+---
+
+# EnumCameraPosition
+
+`EnumCameraPosition` is an enumeration that defines the possible camera positions that are available to a device. The majority of modern mobile devices have a front and a rear camera. The more recent iPhones also come with multiple rear cameras, each being suited to different scenarios.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumCameraPosition {
+ back,
+ front,
+ backUltraWide,
+ 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` | (iOS ONLY) The back-facing ultra-wide-angle camera - which should be used for macro-distance scenarios. |
+| `backDualWideAuto` | (iOS ONLY) The back-facing virtual camera that can automatically switch between the default wide-angle and the ultra-wide-angle cameras. (Supported devices: Pro or Pro Max iPhones) |
diff --git a/programming/flutter/api-reference/enum/captured-result-item-type.md b/programming/flutter/api-reference/core/enum/captured-result-item-type.md
similarity index 71%
rename from programming/flutter/api-reference/enum/captured-result-item-type.md
rename to programming/flutter/api-reference/core/enum/captured-result-item-type.md
index 74be88d..5412fc0 100644
--- a/programming/flutter/api-reference/enum/captured-result-item-type.md
+++ b/programming/flutter/api-reference/core/enum/captured-result-item-type.md
@@ -21,9 +21,13 @@ breadcrumbText: EnumCapturedResultItemType
```dart
enum EnumCapturedResultItemType {
- originalImage,
- barcode,
- parsedResult
+ originalImage(1),
+ barcode(1 << 1),
+ textLine(1 << 2),
+ detectedQuad(1 << 3),
+ deskewedImage(1 << 4),
+ parsedResult(1 << 5),
+ enhancedImage(1 << 6);
}
```
@@ -31,6 +35,10 @@ enum EnumCapturedResultItemType {
| 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. |
+| `originalImage` | The original image. |
+| `barcode` | The decoded barcode. |
+| `textLine` | The recognized text line. |
+| `detectedQuad` | The detected quadrilateral. |
+| `deskewedImage` | The deskewed image. |
+| `parsedResult` | The parsed result. |
+| `enhancedImage` | The enhanced image. |
diff --git a/programming/flutter/api-reference/core/enum/colour-channel-usage-type.md b/programming/flutter/api-reference/core/enum/colour-channel-usage-type.md
new file mode 100644
index 0000000..745dd7c
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/colour-channel-usage-type.md
@@ -0,0 +1,39 @@
+---
+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 {
+ auto,
+ fullChannel,
+ yChannelOnly,
+ rgbRChannelOnly,
+ rgbGChannelOnly,
+ 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/core/enum/cross-verification-status.md b/programming/flutter/api-reference/core/enum/cross-verification-status.md
new file mode 100644
index 0000000..2525fdd
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/cross-verification-status.md
@@ -0,0 +1,40 @@
+---
+layout: default-layout
+title: CrossVerificationStatus - Dynamsoft Capture Vision Flutter
+description: The enumeration CrossVerificationStatus of Dynamsoft Capture Vision Flutter describes the status of the captured results.
+keywords: cross verification status
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: CrossVerificationStatus
+codeAutoHeight: true
+---
+
+# Enumeration CrossVerificationStatus
+
+`CrossVerificationStatus` describes the status of the captured results.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumCrossVerificationStatus {
+ /// The item has not been verified.
+ notVerified,
+
+ /// The item has passed verification.
+ passed,
+
+ /// The item has failed verification.
+ failed
+}
+```
+
+## Members
+
+| Member | Description |
+| ------ | ----------- |
+| `notVerified` | The item has not been verified. |
+| `passed` | The item has passed verification. |
+| `failed` | The item has failed verification. |
diff --git a/programming/flutter/api-reference/core/enum/deblur-mode.md b/programming/flutter/api-reference/core/enum/deblur-mode.md
new file mode 100644
index 0000000..db231c4
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/deblur-mode.md
@@ -0,0 +1,54 @@
+---
+layout: default-layout
+title: EnumDeblurMode - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumDeblurMode of DBR Flutter Edition defines the modes for extracting barcode data during the final phase of the barcode decoding process
+keywords: barcode format, Flutter, OneD, QR Code, GS1 Databar
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumDeblurMode
+---
+
+# EnumDeblurMode
+
+`EnumDeblurMode` is an enumeration that specifies the image processing algorithms applied to the localized zones containing barcodes, with the main aim being to generate a binary image for extracting barcode data during the final phase of the barcode decoding process.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumDeblurMode {
+ skip(0),
+ directBinarization(1 << 0),
+ thresholdBinarization(1 << 1),
+ grayEqualization(1 << 2),
+ smoothing(1 << 3),
+ morphing(1 << 4),
+ deepAnalysis(1 << 5),
+ sharpening(1 << 6),
+ basedOnLocBin(1 << 7),
+ sharpeningSmoothing(1 << 8),
+ neuralNetwork(1 << 9),
+ end(-1);
+}
+```
+
+## 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 grayscale 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. |
+
+> [!NOTE]
+> View more about [DeblurModes Parameters]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#candidate-modes-introduction) page.
diff --git a/programming/flutter/api-reference/core/enum/drawing-layer-id.md b/programming/flutter/api-reference/core/enum/drawing-layer-id.md
new file mode 100644
index 0000000..8ebb505
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/drawing-layer-id.md
@@ -0,0 +1,35 @@
+---
+layout: default-layout
+title: EnumDrawingLayerId - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumDrawingLayerId of DBR Flutter Edition defines the different drawing layers that the CameraView provides.
+keywords: drawing layer, Flutter, camera enhancer, UI
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumDrawingLayerId
+---
+
+# EnumDrawingLayerId
+
+`EnumDrawingLayerId` is an enumeration that defines the different drawing layers that the CameraView provides. The drawing layer is responsible for creating the highlight boxes around detected barcodes and other captured results. By default, there is a drawing layer assigned to each functional product under Capture Vision.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumDrawingLayerId {
+ ddn(1),
+ dbr(2),
+ dlr(3),
+ tip(999);
+}
+```
+
+## 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/core/enum/enhanced-features-camera.md b/programming/flutter/api-reference/core/enum/enhanced-features-camera.md
new file mode 100644
index 0000000..a6d1fcd
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/enhanced-features-camera.md
@@ -0,0 +1,39 @@
+---
+layout: default-layout
+title: EnumEnhancedFeatures - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumEnhancedFeatures of DBR Flutter Edition defines the enhanced features of the Camera Enhancer that can be activated.
+keywords: enhanced features, Flutter, camera enhancer, zoom, torch
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumEnhancedFeatures
+---
+
+# EnumEnhancedFeatures
+
+`EnumEnhancedFeatures` is an enumeration that defines the set of enhanced features that the Camera Enhancer offers. These enhanced features can help improve the performance of the Barcode Reader or adapt it to certain difficult scenarios e.g. using auto-zoom for barcodes that are farther than normal.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumEnhancedFeatures {
+ static const frameFilter = 1;
+ static const sensorControl = 1 << 1;
+ static const enhancedFocus = 1 << 2;
+ static const autoZoom = 1 << 3;
+ static const smartTorch = 1 << 4;
+ static const all = frameFilter | sensorControl | enhancedFocus | autoZoom | smartTorch;
+}
+```
+
+## 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/core/enum/focus-mode.md b/programming/flutter/api-reference/core/enum/focus-mode.md
new file mode 100644
index 0000000..5f3256b
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/focus-mode.md
@@ -0,0 +1,34 @@
+---
+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`](../camera-enhancer.md#setfocus).
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumFocusMode {
+ locked,
+ 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/core/enum/grayscale-enhancement-mode.md b/programming/flutter/api-reference/core/enum/grayscale-enhancement-mode.md
new file mode 100644
index 0000000..d5e3cd9
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/grayscale-enhancement-mode.md
@@ -0,0 +1,46 @@
+---
+layout: default-layout
+title: EnumGrayscaleEnhancementMode - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumGrayscaleEnhancementMode of DBR Flutter Edition defines the modes for extracting barcode data during the final phase of the barcode decoding process
+keywords: barcode format, Flutter, OneD, QR Code, GS1 Databar, barcode reader, settings, grayscale
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumGrayscaleEnhancementMode
+---
+
+# EnumGrayscaleEnhancementMode
+
+`EnumGrayscaleEnhancementMode` is an enumeration that determines which grayscale enhancement modes the library will apply before the detection process to improve the read rate of the barcodes in a given image or frame.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumGrayscaleEnhancementMode {
+ skip(0),
+ directBinarization(1 << 0),
+ thresholdBinarization(1 << 1),
+ grayEqualization(1 << 2),
+ smoothing(1 << 3),
+ morphing(1 << 4),
+ deepAnalysis(1 << 5),
+ sharpening(1 << 6),
+ basedOnLocBin(1 << 7),
+ sharpeningSmoothing(1 << 8),
+ neuralNetwork(1 << 9),
+ end(-1);
+}
+```
+
+## 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/core/enum/grayscale-transformation-mode.md b/programming/flutter/api-reference/core/enum/grayscale-transformation-mode.md
new file mode 100644
index 0000000..e79638d
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/grayscale-transformation-mode.md
@@ -0,0 +1,37 @@
+---
+layout: default-layout
+title: EnumGrayscaleTransformationMode - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumGrayscaleTransformationMode of DBR Flutter Edition defines the modes for extracting barcode data during the final phase of the barcode decoding process
+keywords: barcode reader, settings, grayscale
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumGrayscaleTransformationMode
+---
+
+# EnumGrayscaleTransformationMode
+
+`EnumGrayscaleTransformationMode` is an enumeration that determines which grayscale enhancement modes the library will apply before the detection process to improve the read rate of the barcodes in a given image or frame.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumGrayscaleTransformationMode {
+ skip(0),
+ inverted(1 << 0),
+ original(1 << 1),
+ auto(1 << 2),
+ end(-1);
+}
+```
+
+## 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/core/enum/image-colour-mode.md b/programming/flutter/api-reference/core/enum/image-colour-mode.md
new file mode 100644
index 0000000..1dba109
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/image-colour-mode.md
@@ -0,0 +1,35 @@
+---
+layout: default-layout
+title: ImageColourMode - Dynamsoft Capture Vision Flutter
+description: The enumeration ImageColourMode of Dynamsoft Capture Vision Flutter defines the colour mode of the enhanced image.
+keywords: colour mode, binary, grayscale, colour
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+breadcrumbText: ImageColourMode
+codeAutoHeight: true
+---
+
+# EnumImageColourMode
+
+`ImageColourMode` defines the colour mode of the enhanced image.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumImageColourMode {
+ colour,
+ grayscale,
+ binary
+}
+```
+
+## Members
+
+| Member | Description |
+| ------ | ----------- |
+| `colour` | Full color image. |
+| `grayscale` | Grayscale image. |
+| `binary` | Binary (black and white) image. |
diff --git a/programming/flutter/api-reference/enum/image-pixel-format.md b/programming/flutter/api-reference/core/enum/image-pixel-format.md
similarity index 100%
rename from programming/flutter/api-reference/enum/image-pixel-format.md
rename to programming/flutter/api-reference/core/enum/image-pixel-format.md
diff --git a/programming/flutter/api-reference/core/enum/localization-mode.md b/programming/flutter/api-reference/core/enum/localization-mode.md
new file mode 100644
index 0000000..e24dbf6
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/localization-mode.md
@@ -0,0 +1,57 @@
+---
+layout: default-layout
+title: EnumLocalizationMode - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumLocalizationMode of DBR Flutter Edition specifies the strategies used to identify the locations of barcodes within an image.
+keywords: localization, Flutter, settings, performance, barcode reader
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumLocalizationMode
+---
+
+# EnumLocalizationMode
+
+`EnumLocalizationMode` is an enumeration that represents the strategies used to identify the location of barcodes within an image or frame. Localization is one of the first and most important steps in the barcode detection process, so choosing the right localization modes for the scenario can make quite the difference in performance.
+
+> [!NOTE]
+> Some localization modes are optimized for certain barcode formats as you can see in the description of each mode below. However, it is recommended to have the `connectedBlocks` mode as the highest priority localization mode for any scenario as it is one most highly adaptable localization algorithms for any kind of scenario.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumLocalizationMode {
+ skip(0),
+ auto(1 << 0),
+ connectedBlocks(1 << 1),
+ statistics(1 << 2),
+ lines(1 << 3),
+ scanDirectly(1 << 4),
+ statisticsMarks(1 << 5),
+ statisticsPostalCode(1 << 6),
+ centre(1 << 7),
+ oneDFastScan(1 << 8),
+ neuralNetwork(1 << 9),
+ end(-1);
+}
+```
+
+## 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. |
+
+> [!NOTE]
+> View more about [LocalizationModes Parameters]({{ site.dcv_parameters_reference }}barcode-reader-task-settings/localization-modes.html) page.
diff --git a/programming/flutter/api-reference/core/enum/mapping-status.md b/programming/flutter/api-reference/core/enum/mapping-status.md
new file mode 100644
index 0000000..dde7a7f
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/mapping-status.md
@@ -0,0 +1,33 @@
+---
+layout: default-layout
+title: EnumMappingStatus - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumMappingStatus of DBR Flutter Edition defines whether the field was mapped from the source data or not
+keywords: captured result, flutter, capture vision, mapping, code parser, mapping
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumMappingStatus
+---
+
+# EnumMappingStatus
+
+`EnumMappingStatus` is an enumeration that represents whether the associated field was mapped from the source data or not.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumMappingStatus {
+ none,
+ succeeded,
+ 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/core/enum/preset-template.md b/programming/flutter/api-reference/core/enum/preset-template.md
new file mode 100644
index 0000000..08d793b
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/preset-template.md
@@ -0,0 +1,56 @@
+---
+layout: default-layout
+title: EnumPresetTemplate - Dynamsoft Capture Vision Router Lite Flutter
+description: The enumeration PresetTemplate of Dynamsoft Capture Vision Router describes the preset template.
+keywords: CaptureVisionTemplate, EnumPresetTemplate, single barcode template, speed first, read-rate first, template, preset
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+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/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
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+static class EnumPresetTemplate {
+ static const defaultTemplate = 'Default';
+ static const readBarcodes = 'ReadBarcodes_Default';
+ static const recognizeTextLines = 'RecognizeTextLines_Default';
+ static const detectDocumentBoundaries = 'DetectDocumentBoundaries_Default';
+ static const detectAndNormalizeDocument = 'DetectAndNormalizeDocument_Default';
+ static const normalizeDocument = 'NormalizeDocument_Default';
+ static const readBarcodesSpeedFirst = 'ReadBarcodes_SpeedFirst';
+ static const readBarcodesReadRateFirst = 'ReadBarcodes_ReadRateFirst';
+ static const readSingleBarcode = 'ReadSingleBarcode';
+ static const recognizeNumbers = 'RecognizeNumbers';
+ static const recognizeLetters = 'RecognizeLetters';
+ static const recognizeNumbersAndLetters = 'RecognizeNumbersAndLetters';
+ static const recognizeNumbersAndUppercaseLetters = 'RecognizeNumbersAndUppercaseLetters';
+ static const recognizeUppercaseLetters = 'RecognizeUppercaseLetters';
+}
+```
+
+## Members
+
+| Member | Description |
+| ------ | ----------- |
+| `defaultTemplate` | The default template that performs barcode decoding, label recognizing, boundary detecting and document normalizing. The template name is "Default". |
+| `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. |
+| `recognizeTextLines` | The default template for the Text Line Recognizer. |
+| `detectDocumentBoundaries` | The default template for the Document Boundary Detector. |
+| `detectAndNormalizeDocument` | The default template for the Document Normalizer. |
+| `normalizeDocument` | The default template for the Document Normalizer. |
+| `recognizeNumbers` | The default template for the Number Recognizer. |
+| `recognizeLetters` | The default template for the Letter Recognizer. |
+| `recognizeNumbersAndLetters` | The default template for the Number and Letter Recognizer. |
+| `recognizeNumbersAndUppercaseLetters` | The default template for the Number and Uppercase Letter Recognizer. |
+| `recognizeUppercaseLetters` | The default template for the Uppercase Letter Recognizer. |
diff --git a/programming/flutter/api-reference/core/enum/resolution.md b/programming/flutter/api-reference/core/enum/resolution.md
new file mode 100644
index 0000000..efad051
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/resolution.md
@@ -0,0 +1,37 @@
+---
+layout: default-layout
+title: EnumResolution - Dynamsoft Capture Vision Flutter
+description: Enumeration EnumResolution of DBR Dynamsoft Capture Vision Flutter defines the camera resolutions.
+keywords: resolution, capture vision, camera, enhancer
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumResolution
+---
+
+# EnumResolution
+
+`EnumResolution` is an enumeration representing different camera resolutions.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumResolution {
+ auto,
+ sd480p,
+ hd720p,
+ fhd1080p,
+ uhd4k,
+}
+```
+
+## Members
+
+| Member | Description |
+| ------ | ----------- |
+| `auto` | Automatic resolution selection. |
+| `sd480p` | Standard Definition 480p. |
+| `hd720p` | High Definition 720p. |
+| `fhd1080p` | Full High Definition 1080p. |
+| `uhd4k` | Ultra High Definition 4K. |
diff --git a/programming/flutter/api-reference/core/enum/validation-status.md b/programming/flutter/api-reference/core/enum/validation-status.md
new file mode 100644
index 0000000..7399039
--- /dev/null
+++ b/programming/flutter/api-reference/core/enum/validation-status.md
@@ -0,0 +1,33 @@
+---
+layout: default-layout
+title: EnumValidationStatus - Dynamsoft Barcode Reader Flutter
+description: Enumeration EnumValidationStatus of DBR Flutter Edition defines the status of a field's value after the internal validation checks
+keywords: captured result, flutter, capture vision, mapping, code parser, validation
+needAutoGenerateSidebar: true
+needGenerateH3Content: true
+breadcrumbText: EnumValidationStatus
+---
+
+# EnumValidationStatus
+
+`EnumValidationStatus` is an enumeration that represents whether the associated field's value passed the internal validation checks.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+enum EnumValidationStatus {
+ none,
+ succeeded,
+ 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. |
diff --git a/programming/flutter/api-reference/core/image-data.md b/programming/flutter/api-reference/core/image-data.md
index b433649..476de83 100644
--- a/programming/flutter/api-reference/core/image-data.md
+++ b/programming/flutter/api-reference/core/image-data.md
@@ -20,8 +20,30 @@ The `ImageData` class encapsulates all of an image's data, as well as metadata.
class ImageData
```
+## Constructors
+
+```dart
+ImageData({
+ required this.bytes,
+ required this.width,
+ required this.height,
+ required this.orientation,
+ required this.format,
+ required this.stride,
+});
+```
+
## Properties
+| Property | Type | Description |
+| --------- | ---- | ----------- |
+| [`bytes`](#bytes) | *Uint8List* | Represents the raw bytes of the image. |
+| [`width`](#width) | *int* | Represents the width of the image in *pixels*. |
+| [`height`](#height) | *int* | Represents the height of the image in *pixels*. |
+| [`orientation`](#orientation) | *int* | Represents the orientation of the image as an angle. |
+| [`format`](#format) | *EnumImagePixelFormat* | Represents the pixel format of the image as a [`EnumImagePixelFormat`](enum/image-pixel-format.md). |
+| [`stride`](#stride) | *int* | Represents the number of bytes in a single row of the image. |
+
### bytes
Represents the raw bytes of the image.
@@ -56,16 +78,12 @@ int orientation;
### format
-Represents the pixel format of the image as a [`EnumImagePixelFormat`](../enum/image-pixel-format.md).
+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.
diff --git a/programming/flutter/api-reference/core/image-source-adapter.md b/programming/flutter/api-reference/core/image-source-adapter.md
new file mode 100644
index 0000000..93b8519
--- /dev/null
+++ b/programming/flutter/api-reference/core/image-source-adapter.md
@@ -0,0 +1,157 @@
+---
+layout: default-layout
+title: ImageSourceAdapter - Dynamsoft Capture Vision Flutter API Reference
+description: The class ImageSourceAdapter of Dynamsoft Capture Vision Flutter represents an interface for fetching and buffering images.
+keywords: image source adapter, Java, Kotlin
+needGenerateH3Content: true
+needAutoGenerateSidebar: true
+noTitleIndex: true
+---
+
+# ImageSourceAdapter
+
+The abstract class `ImageSourceAdapter` is an abstract class for implementing image fetching and delivering features.
+
+> [!Note]
+> Default implementations:
+> - [CameraEnhancer]({{ site.dce_flutter_api }}camera-enhancer.html): Use the camera as the image source for scanning from the video input.
+
+## Definition
+
+*Assembly:* dynamsoft_capture_vision_flutter
+
+```dart
+abstract class ImageSourceAdapter
+```
+
+## Methods
+
+| Method | Description |
+| ------ | ----------- |
+| [`addImageToBuffer`](#addimagetobuffer) | Adds an image to the internal buffer. |
+| [`clearBuffer`](#clearbuffer) | Clears all images from the buffer, resetting the state for new image fetching. |
+| [`getBufferOverflowProtectionMode`](#getbufferoverflowprotectionmode) | Get the current mode for handling buffer overflow. |
+| [`getColourChannelUsageType`](#getcolourchannelusagetype) | Get the current usage type for color channels in images. |
+| [`getImage`](#getimage) | Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `ImageData`. |
+| [`getMaximumImageCount`](#getmaximumimagecount) | Get the maximum number of images that can be buffered. |
+| [`hasImage`](#hasimage) | Checks if an image with the specified ID is present in the buffer. |
+| [`setBufferOverflowProtectionMode`](#setbufferoverflowprotectionmode) | Sets the behavior for handling new incoming images when the buffer is full. |
+| [`setColourChannelUsageType`](#setcolourchannelusagetype) | Sets the usage type for color channels in images. |
+| [`setMaximumImageCount`](#setmaximumimagecount) | Sets the maximum number of images that can be buffered at any time. |
+| [`setNextImageToReturn`](#setnextimagetoreturn) | Sets the processing priority of a specific image. This can affect the order in which images are returned by getImage. |
+| [`startFetching`](#startfetching) | Start fetching images from the source to the Video Buffer of `ImageSourceAdapter`. |
+| [`stopFetching`](#stopfetching) | Stop fetching images from the source to the Video Buffer of `ImageSourceAdapter`. |
+
+### addImageToBuffer
+
+Adds an image to the internal buffer.
+
+```dart
+Future addImageToBuffer(ImageData image);
+```
+
+### clearBuffer
+
+Clears all images from the buffer, resetting the state for new image fetching.
+
+```dart
+Future clearBuffer();
+```
+
+### getBufferOverflowProtectionMode
+
+
+Get the current mode for handling buffer overflow.
+
+```dart
+Future getBufferOverflowProtectionMode() async;
+```
+
+### getColourChannelUsageType
+
+Get the current usage type for color channels in images.
+
+```dart
+Future getColourChannelUsageType();
+```
+
+**Remarks**
+
+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.
+
+### getImage
+
+Get a buffered image. Implementing classes should return a Promise that resolves with an instance of `ImageData`.
+
+```dart
+Future getImage() async;
+```
+
+### getMaximumImageCount
+
+Get the maximum number of images that can be buffered.
+
+```dart
+Future getMaximumImageCount();
+```
+
+### hasImage
+
+Checks if an image with the specified ID is present in the buffer.
+
+```dart
+Future hasImage(int imageId);
+```
+
+### setBufferOverflowProtectionMode
+
+Sets the behavior for handling new incoming images when the buffer is full.
+
+```dart
+Future setBufferOverflowProtectionMode(EnumBufferOverflowProtectionMode mode);
+```
+
+### setColourChannelUsageType
+
+Sets the usage type for color channels in images.
+
+```dart
+Future setColourChannelUsageType(EnumColourChannelUsageType type);
+```
+
+**Remarks**
+
+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].
+
+### setMaximumImageCount
+
+Sets the maximum number of images that can be buffered at any time.
+
+```dart
+Future setMaximumImageCount(int count);
+```
+
+### setNextImageToReturn
+
+Sets the processing priority of a specific image. This can affect the order in which images are returned by getImage.
+
+```dart
+Future setNextImageToReturn(int imageId, bool keepInBuffer);
+```
+
+### startFetching
+
+Start fetching images from the source to the Video Buffer of `ImageSourceAdapter`.
+
+```dart
+Future startFetching();
+```
+
+### stopFetching
+
+Stop fetching images from the source to the Video Buffer of `ImageSourceAdapter`.
+
+```dart
+Future stopFetching();
+```
+
diff --git a/programming/flutter/api-reference/core/quadrilateral.md b/programming/flutter/api-reference/core/quadrilateral.md
index bd783f2..1e78ff1 100644
--- a/programming/flutter/api-reference/core/quadrilateral.md
+++ b/programming/flutter/api-reference/core/quadrilateral.md
@@ -10,7 +10,7 @@ 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).
+The `Quadrilateral` class is used to define a quadrilateral shape. This class is mainly used by the `roi` parameter of [`SimplifiedCaptureVisionSettings`](../capture-vision-router/simplified-capture-vision-settings.md).
## Definition
@@ -20,11 +20,21 @@ The `Quadrilateral` class is used to define a quadrilateral shape. This class is
class Quadrilateral
```
+## Constructors
+
+```dart
+Quadrilateral({required this.points});
+```
+
## Properties
+| Property | Type | Description |
+| --------- | ---- | ----------- |
+| [`points`](#points) | *List\* | A list of four points that make up the quadrilateral. |
+
### 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.
+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.
```dart
List> points;
@@ -32,4 +42,4 @@ 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.
+The coordinates are typically set in pixels. However, if you are setting a region via the [`SimplifiedCaptureVisionSettings`](../capture-vision-router/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/filter-type.md b/programming/flutter/api-reference/utility/enum/filter-type.md
similarity index 100%
rename from programming/flutter/api-reference/enum/filter-type.md
rename to programming/flutter/api-reference/utility/enum/filter-type.md
diff --git a/programming/flutter/api-reference/dip/image-drawer.md b/programming/flutter/api-reference/utility/image-drawer.md
similarity index 90%
rename from programming/flutter/api-reference/dip/image-drawer.md
rename to programming/flutter/api-reference/utility/image-drawer.md
index c7815f6..2e111f2 100644
--- a/programming/flutter/api-reference/dip/image-drawer.md
+++ b/programming/flutter/api-reference/utility/image-drawer.md
@@ -37,4 +37,4 @@ Future drawOnImage(ImageData image, List quadrilateral
- `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.
+The method returns an [`ImageData`](../core/image-data.md) object that represents the new image with the rendered shapes.
diff --git a/programming/flutter/api-reference/dip/image-io.md b/programming/flutter/api-reference/utility/image-io.md
similarity index 83%
rename from programming/flutter/api-reference/dip/image-io.md
rename to programming/flutter/api-reference/utility/image-io.md
index 45bb0e6..0aeeeef 100644
--- a/programming/flutter/api-reference/dip/image-io.md
+++ b/programming/flutter/api-reference/utility/image-io.md
@@ -24,7 +24,7 @@ class ImageIO
### saveToFile
-Saves the provided [`ImageData`](image-data.md) object (which represents an image) to a file at the specified file path.
+Saves the provided [`ImageData`](../core/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
@@ -36,7 +36,7 @@ The `overwrite` input parameter should be set to true if the file already exists
### readFromFile
-Reads an image from a file at the specified file path and returns an [`ImageData`](image-data.md) object that represents the image.
+Reads an image from a file at the specified file path and returns an [`ImageData`](../core/image-data.md) object that represents the image.
```dart
Future readFromFile(String path) async
diff --git a/programming/flutter/api-reference/dip/image-processor.md b/programming/flutter/api-reference/utility/image-processor.md
similarity index 66%
rename from programming/flutter/api-reference/dip/image-processor.md
rename to programming/flutter/api-reference/utility/image-processor.md
index f7e7df7..bd735bf 100644
--- a/programming/flutter/api-reference/dip/image-processor.md
+++ b/programming/flutter/api-reference/utility/image-processor.md
@@ -24,7 +24,7 @@ class ImageProcessor
### cropImage
-Crops the image (as an [`ImageData`](image-data.md) object) to the region defined by the rectangle.
+Crops the image (as an [`ImageData`](../core/image-data.md) object) to the region defined by the rectangle.
```dart
Future cropImage(ImageData image, DSRect rect) async
@@ -32,11 +32,11 @@ 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.).
+The method returns an [`ImageData`](../core/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.
+Crops the image (as an [`ImageData`](../core/image-data.md) object) to the region defined by the Quadrilateral.
```dart
Future cropAndDeskewImage(ImageData image, Quadrilateral quadrilateral, {
@@ -48,11 +48,11 @@ Future cropAndDeskewImage(ImageData image, Quadrilateral quadrilater
**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.).
+The `quadrilateral` input parameter defines the region to extract as four corner points. The method returns an [`ImageData`](../core/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.
+Adjusts the brightness of the image (as an [`ImageData`](../core/image-data.md) object) based on the specified brightness value.
```dart
Future adjustBrightness(ImageData image, int brightness) async
@@ -64,7 +64,7 @@ The `brightness` input parameter ranges from -100 to 100. Positive values increa
### adjustContrast
-Adjusts the contrast of the image (as an [`ImageData`](image-data.md) object) based on the specified contrast value.
+Adjusts the contrast of the image (as an [`ImageData`](../core/image-data.md) object) based on the specified contrast value.
```dart
Future adjustContrast(ImageData image, int contrast) async
@@ -76,7 +76,7 @@ The `contrast` input parameter ranges from -100 to 100. Positive values increase
### filterImage
-Applies a filter (represented with [`EnumFilterType`](../enum/filter-type.md)) to the image (as an [`ImageData`](image-data.md) object).
+Applies a filter (represented with [`EnumFilterType`](enum/filter-type.md)) to the image (as an [`ImageData`](../core/image-data.md) object).
```dart
Future filterImage(ImageData image, EnumFilterType type) async
@@ -88,7 +88,7 @@ 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.
+Converts the image (as an [`ImageData`](../core/image-data.md) object) to grayscale using specified channel weights.
```dart
Future convertToGray(ImageData image, {
@@ -108,7 +108,7 @@ 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.
+Converts the image (as an [`ImageData`](../core/image-data.md) object) to a binary (black and white) format using global thresholding.
```dart
Future convertToBinaryGlobal(ImageData image, {
@@ -124,7 +124,7 @@ Remarks
### convertToBinaryLocal
-Converts the image (as an [`ImageData`](image-data.md) object) to a binary (black and white) format using local adaptive thresholding.
+Converts the image (as an [`ImageData`](../core/image-data.md) object) to a binary (black and white) format using local adaptive thresholding.
```dart
Future convertToBinaryLocal(
diff --git a/programming/flutter/api-reference/utility/permission-util.md b/programming/flutter/api-reference/utility/permission-util.md
deleted file mode 100644
index 03a0741..0000000
--- a/programming/flutter/api-reference/utility/permission-util.md
+++ /dev/null
@@ -1,34 +0,0 @@
----
-layout: default-layout
-title: PermissionUtil Class - Dynamsoft Capture Vision Flutter
-description: PermissionUtil class of DCV Flutter handles the camera permissions on Android devices.
-keywords: permission util, camera, capture vision, android, camera enhancer
-needGenerateH3Content: true
-needAutoGenerateSidebar: true
-noTitleIndex: true
----
-
-# PermissionUtil
-
-The `PermissionUtil` class handles the camera permissions on Android devices. It provides static methods for requesting camera permissions specifically on Android devices.
-
-> [!NOTE]
-> For iOS, the camera permissions are granted via the Info.plist or the Info settings of the project.
-
-## Definition
-
-*Assembly:* dynamsoft_capture_vision_flutter
-
-```dart
-class PermissionUtil
-```
-
-## Methods
-
-### requestCameraPermission
-
-Requests camera permission from the Android user. On other platforms (iOS), this method does nothing and returns immediately.
-
-```dart
-Future requestCameraPermission()
-```