diff --git a/_config.yml b/_config.yml index 8669ffff..0673680b 100644 --- a/_config.yml +++ b/_config.yml @@ -90,6 +90,12 @@ dcvb_introduction: /capture-vision/docs/core/introduction/ dcvb_architecture: /capture-vision/docs/core/architecture/ dcvb_parameters: /capture-vision/docs/core/parameters/ +dbr_js: /barcode-reader/docs/web/programming/javascript/ +dbr_python: /barcode-reader/docs/server/programming/python/ +dbr_java: /barcode-reader/docs/server/programming/java/ +dbr_dotnet: /barcode-reader/docs/server/programming/dotnet/ +dbr_cpp: /barcode-reader/docs/server/programming/cplusplus/ + mobile_enum: /barcode-reader/docs/mobile/programming/enumeration/ parameters_reference: /barcode-reader/docs/core/parameters/reference/ diff --git a/_includes/sidelist-programming/programming-android.html b/_includes/sidelist-programming/programming-android.html index a78718ce..7ab14ce0 100644 --- a/_includes/sidelist-programming/programming-android.html +++ b/_includes/sidelist-programming/programming-android.html @@ -629,7 +629,9 @@
  • EnableAddOnCode
  • EnableDataMatrixECC000-140
  • EnableQRCodeModel1
  • +
  • ExpectedBarcodesCount
  • FindUnevenModuleBarcode
  • +
  • HasVerticalQuietZone
  • HeadModuleRatio
  • MinQuietZoneWidth
  • MinRatioOfBarcodeZoneWidthToHeight
  • @@ -660,7 +662,8 @@
  • Global Parameter
  • SemanticProcessing Object @@ -692,3 +695,8 @@
  • Develop for MAUI
  • Develop for React Native
  • Develop for Flutter
  • +
  • Develop for C++
  • +
  • Develop for Python
  • +
  • Develop for Java
  • +
  • Develop for .NET
  • +
  • Develop for JS
  • diff --git a/_includes/sidelist-programming/programming-flutter.html b/_includes/sidelist-programming/programming-flutter.html index e2862c97..8d6fca50 100644 --- a/_includes/sidelist-programming/programming-flutter.html +++ b/_includes/sidelist-programming/programming-flutter.html @@ -7,6 +7,11 @@
  • Driver License Guide
  • +
  • Explore Features + +
  • Demo & Samples
  • BarcodeScanner API @@ -36,6 +41,9 @@
  • DecodedBarcodesResult
  • BarcodeResultItem
  • CameraEnhancer
  • +
  • CameraView
  • +
  • TorchButton
  • +
  • FeedBack
  • LicenseManager
  • ParsedResult
  • ParsedResultItem
  • @@ -55,6 +63,9 @@
  • EnumCapturedResultItemType
  • EnumMappingStatus
  • EnumValidationStatus
  • +
  • EnumCameraPosition
  • +
  • EnumEnhancedFeatures
  • +
  • EnumDrawingLayerId
  • @@ -404,3 +415,8 @@
  • Develop for iOS (Objective-C & Swift)
  • Develop for MAUI
  • Develop for React Native
  • +
  • Develop for C++
  • +
  • Develop for Python
  • +
  • Develop for Java
  • +
  • Develop for .NET
  • +
  • Develop for JS
  • diff --git a/_includes/sidelist-programming/programming-maui.html b/_includes/sidelist-programming/programming-maui.html index e673384b..2af42888 100644 --- a/_includes/sidelist-programming/programming-maui.html +++ b/_includes/sidelist-programming/programming-maui.html @@ -550,3 +550,8 @@
  • Develop for iOS (Objective-C & Swift)
  • Develop for React Native
  • Develop for Flutter
  • +
  • Develop for C++
  • +
  • Develop for Python
  • +
  • Develop for Java
  • +
  • Develop for .NET
  • +
  • Develop for JS
  • diff --git a/_includes/sidelist-programming/programming-oc.html b/_includes/sidelist-programming/programming-oc.html index c00c543c..fa92aaa5 100644 --- a/_includes/sidelist-programming/programming-oc.html +++ b/_includes/sidelist-programming/programming-oc.html @@ -627,7 +627,9 @@
  • EnableAddOnCode
  • EnableDataMatrixECC000-140
  • EnableQRCodeModel1
  • +
  • ExpectedBarcodesCount
  • FindUnevenModuleBarcode
  • +
  • HasVerticalQuietZone
  • HeadModuleRatio
  • MinQuietZoneWidth
  • MinRatioOfBarcodeZoneWidthToHeight
  • @@ -658,7 +660,8 @@
  • Global Parameter
  • SemanticProcessing Object @@ -691,3 +694,8 @@
  • Develop for MAUI
  • Develop for React Native
  • Develop for Flutter
  • +
  • Develop for C++
  • +
  • Develop for Python
  • +
  • Develop for Java
  • +
  • Develop for .NET
  • +
  • Develop for JS
  • \ No newline at end of file diff --git a/programming/android/faq/debug-mode-barcodescannerx.md b/programming/android/faq/debug-mode-barcodescannerx.md deleted file mode 100644 index bb152a38..00000000 --- a/programming/android/faq/debug-mode-barcodescannerx.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: Use Debug Mode - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, debug, android -description: How to use Debug Mode in Barcode Scanner X? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How to use Debug Mode in Barcode Scanner X? - -[<< Back to FAQ index](index.md) - - -## Debug Mode in BarcodeScannerX - -If you are experiencing app crashes in your own application or you’ve come across some barcode(s) that you can’t read and you have exhausted all of the other troubleshooting methods, Debug Mode of the [BarcodeScannerX](https://www.dynamsoft.com/barcode-reader/sdk-mobile/#appDemo) demo app can help offer one last effort to resolve these issues. - -This next section will explain how to toggle on debug mode on the demo app, and will then dive into how to collect crash logs and/or image samples. - -1. From the home screen, go to Advanced Scan. - - Home screen - -2. Tap the settings icon at the top-right corner. - - Advanced scan - -3. Tap Debug Mode to see the drop-down list. - - Debug mode - -## Debug Mode - Crash Logger - -If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynamsoft Camera Enhancer SDK, you need to use the Crash Logger. - -1. Toggle on Crash Logger - - Crash toggle on - -2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. - -3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - - Crash share - -## Debug Mode - Image Cropper - -If you are having trouble reading barcodes, you should use the Image Cropper to capture some sample image(s) or frame(s) and send them to the Dynamsoft Support Team: - -1. Toggle on Image Cropper - - Image crop toggle on - -2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - - crop - -3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. diff --git a/programming/android/faq/disable-continuous-scanning.md b/programming/android/faq/disable-continuous-scanning.md deleted file mode 100644 index 0f579636..00000000 --- a/programming/android/faq/disable-continuous-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: One-off barcode scanning - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, continuous scanning, disable -description: How can I implement continuous barcode scanning and one-off barcode scanning? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I implement continuous barcode scanning and one-off barcode scanning? - -[<< Back to FAQ index](index.md) - -Please take advantage of the samples. The Hello World sample is the typical One-off scanning sample. The GeneralSettings sample is the typical continuous scanning sample. - -If you encounter any issues with this feature, please contact the Dynamsoft support team for help. \ No newline at end of file diff --git a/programming/android/faq/drivers-license-extraction.md b/programming/android/faq/drivers-license-extraction.md deleted file mode 100644 index 06b02946..00000000 --- a/programming/android/faq/drivers-license-extraction.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Read Driver's License - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, driver license, info -description: Can I extract the driver’s information from a PDF417 barcode? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Can I extract the driver’s information from a PDF417 barcode? - -[<< Back to FAQ index](index.md) - -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. - -> `DynamsoftCodeParser` library is included in the sample to parse the driver's information from the barcode decoding result. A valid license is required for the `DynamsoftCodeParser` library. diff --git a/programming/android/faq/how-to-enable-qr-model-one.md b/programming/android/faq/how-to-enable-qr-model-one.md deleted file mode 100644 index fe946c64..00000000 --- a/programming/android/faq/how-to-enable-qr-model-one.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default-layout -title: QR Code Model 1 - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, ios -description: How an I enable QR Code Model 1 support in BarcodeScannerX? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How an I enable QR Code Model 1 support in BarcodeScannerX? - -[<< Back to FAQ index](index.md) - -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: - -1. Visit Dynamsoft barcode reader online demo. -2. Click on Advanced Settings - -
    -

    advanced settings

    -
    - -3. Check **EnableQRCodeModel1**.(You can modify any other settings as you like) -4. Save the template. - -
    -

    save template

    -
    - -5. Send the template to Dynamsoft support team. -6. We will generate and send a link to you. -7. Click **Import Template** in the Advanced Scan settings of BarcodeScannerX. Then input the link. -8. Now you can scan QR code Model 1! diff --git a/programming/android/faq/index.md b/programming/android/faq/index.md index 497c085d..dd897d87 100644 --- a/programming/android/faq/index.md +++ b/programming/android/faq/index.md @@ -92,7 +92,8 @@ Alternatively, here is the general troubleshooting steps: View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. -> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. +
    +> Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. ## Can I reduce the size of the final Android app? diff --git a/programming/android/faq/min-system-requirements.md b/programming/android/faq/min-system-requirements.md deleted file mode 100644 index 632b079f..00000000 --- a/programming/android/faq/min-system-requirements.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: Minimum System Requirements - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# What are the Minimum System Requirements of Dynamsoft Barcode Reader Android? - -[<< Back to FAQ index](index.md) - -For Android, DBR supports the following: - -* Supported OS: Android 5.0 (API Level 21) or higher - -* Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64 - -* Supported Java Version: Java 8 \ No newline at end of file diff --git a/programming/android/faq/no-camera-enhancer.md b/programming/android/faq/no-camera-enhancer.md deleted file mode 100644 index a5cd2adc..00000000 --- a/programming/android/faq/no-camera-enhancer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default-layout -title: Use CameraX or third-party camera modules - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, requirements -description: How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I use CameraX or third-party camera modules with Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - -## CameraX - -If you are using the CameraX, you can view [HelloWorld/DecodeWithCamerX sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/android/FoundationalAPISamples/DecodeWithCameraX) for a quick start. - -## Third-Party Camera Module - -If you are using a third-party camera module, what you have to do is: - -- Create a class that extends [ImageSourceAdapter]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`ImageSourceAdapter`]({{ site.dcvb_android_api }}core/basic-structures/image-source-adapter.html). -- Create an instance of your camera class. -- Create an instance of the [`CaptureVisionRouter`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. -- Trigger the [`startCapturing`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. diff --git a/programming/android/faq/page-freeze.md b/programming/android/faq/page-freeze.md deleted file mode 100644 index 0000b7aa..00000000 --- a/programming/android/faq/page-freeze.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Solve Page Freeze - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, freeze, page -description: Why does the page sometimes freeze when I start the scanner? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Why does the page sometimes freeze when I start the scanner? - -[<< Back to FAQ index](index.md) - -Before a barcode reader instance can be created, a one-time connection for license validation needs to occur when the app initializes (or whenever the license is set before the barcode reader instance creation). Sometimes, this license validation could take a second to complete. - -A potential "freeze" of the page can occur if `BarcodeReader.initLicense()` is called multiple times in a single process. Please make sure that `initLicense` is called only once in your code. - -To help troubleshoot whether the method is being called multiple times, we recommend stepping through the code using a debugger. \ No newline at end of file diff --git a/programming/android/faq/proguard.md b/programming/android/faq/proguard.md deleted file mode 100644 index aaa06210..00000000 --- a/programming/android/faq/proguard.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -layout: default-layout -title: Proguard Instructions - Dynamsoft Barcode Reader Android FAQ -description: This page shows how to configure proguard-rules file of your project. - DBR Android FAQs. -keywords: Proguard, android -needAutoGenerateSidebar: true -needGenerateH3Content: true -noTitleIndex: true ---- - -# How to prevent project build failure after shrinking code? - -[<< Back to FAQ index](index.md) - -This page provides you a possible solution when your project build fails after implementing the code obfuscation. - -Generally, you don't have to add any configurations when shrinking your code because **proguard rule** is already configured in the aar. However, if you still build failed after shrinking code, you can try to add the following code in the **proguard-rule.pro** file of your project. - -```bash --keep class com.dynamsoft.dbr.** { *; } -# Uncomment the following line when your project use Dynamsoft Camera Enhancer as well. -#-keep class com.dynamsoft.dce.** { *; } --keepclasseswithmembernames class * { - native ; -} -``` diff --git a/programming/android/faq/reduce-battery-consumption.md b/programming/android/faq/reduce-battery-consumption.md deleted file mode 100644 index 95e2d763..00000000 --- a/programming/android/faq/reduce-battery-consumption.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Reduce battery consumption - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, battery, consumption -description: How can I reduce battery consumption? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I reduce battery consumption? - -[<< Back to FAQ index](index.md) - -If you are finding that the battery of your phone is being heavily consumed when using the Barcode Reader, there are a couple of things that you can do to potentially reduce the battery consumption, depending on the usage situation. - -For a non-continuous video scanning scenario, make sure to call the [stopCapturing]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method when the video scanning is no longer required. - -For a continuous video scanning scenario, configure the [minImageCaptureInterval]({{ site.dcvb_android_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) attribute of `SimplifiedCaptureVisionSettings` class to set a higher value for the interval in order to reduce the frequency of fetching frames, thus reducing the number of scans per unit time, and thus, less resources needing to be consumed. You can dynamically adjust `minImageCaptureInterval` as needed to achieve the performance you are looking for. diff --git a/programming/android/faq/reduce-final-size.md b/programming/android/faq/reduce-final-size.md deleted file mode 100644 index 47c0a045..00000000 --- a/programming/android/faq/reduce-final-size.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Reduce the Size - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, battery, consumption -description: Can I reduce the size of the final Android app? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Can I reduce the size of the final Android app? - -[<< Back to FAQ index](index.md) - -It is recommended that you distribute your app using App Bundle in order to reduce the final size of the Android app. - -The second step is to utilize APK splits. To learn more about this, please refer to this [page](https://developer.android.com/studio/build/configure-apk-splits#configure-abi-split). - -The third thing to do is to remove processor architecture support. If you won't be distributing your app via Google Play, please refer to this [page](https://developer.android.com/ndk/guides/abis#gc) on how to proceed with this step. diff --git a/programming/android/faq/simulator-support.md b/programming/android/faq/simulator-support.md deleted file mode 100644 index 17fbd55c..00000000 --- a/programming/android/faq/simulator-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Simulator Support - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, Android, simulator, camera -description: Does Dynamsoft Barcode Reader Android support simulator devices? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# Does Dynamsoft Barcode Reader Android support simulator devices? - -[<< Back to FAQ index](index.md) - -Yes, DBR Android can support simulator devices, but in a very limited capacity. If you are only working with existing images in the device's photo library, and there is **no use of the camera whatsoever**, then DBR Android can work just fine on a simulator. - -If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter an error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/android/primary-api/camera-enhancer.html#open) method. - -Please note that DCE is currently not compatible with the simulator as the required use of a camera cannot be satisfied via the simulator. \ No newline at end of file diff --git a/programming/android/faq/template-support.md b/programming/android/faq/template-support.md deleted file mode 100644 index 02749423..00000000 --- a/programming/android/faq/template-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Export Templates - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How to import the settings of Barcode Scanner X app into my app? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How to import the settings of Barcode Scanner X app into my app? - -[<< Back to FAQ index](index.md) - -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". - -Once you get the templates, you can implement them using the [`initSettings`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) or [`initSettingsFromFile`]({{ site.dcvb_android_api }}capture-vision-router/settings.html) methods, depending on which input method you prefer. - -> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. diff --git a/programming/android/faq/troubleshooting-failed-image.md b/programming/android/faq/troubleshooting-failed-image.md deleted file mode 100644 index aa5cbe23..00000000 --- a/programming/android/faq/troubleshooting-failed-image.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: Barcode Not Decoded - DBR Android FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, android, template, driver license, settings -description: How can I troubleshoot an image that fails to decode? - DBR Android FAQs. -needAutoGenerateSidebar: true ---- - -# How can I troubleshoot an image that fails to decode? - -[<< Back to FAQ index](index.md) - -If the barcode is not recognized by Dynamsoft Barcode Reader, please do not hesitate to contact Dynamsoft support team. - -Alternatively, here is the general troubleshooting steps: - -1. Please ensure the lighting is not very bright or very dim. -2. Please ensure the aimming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats) -3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10) -4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) \ No newline at end of file diff --git a/programming/android/foundational-guide.md b/programming/android/foundational-guide.md index 3f73c292..1daae8ad 100644 --- a/programming/android/foundational-guide.md +++ b/programming/android/foundational-guide.md @@ -58,7 +58,8 @@ There are two ways to add the libraries into your project - **Manually** and **M } ``` - > Note: If you are using gradle 6.x or older version, the maven dependencies should be configured in `[App Project Root Path]\app\build.gradle` +
    + > If you are using gradle 6.x or older version, the maven dependencies should be configured in `[App Project Root Path]\app\build.gradle` 2. Open the file `[App Project Root Path]\app\build.gradle` and add the dependencies: @@ -69,13 +70,13 @@ There are two ways to add the libraries into your project - **Manually** and **M >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.0.5000' + implementation 'com.dynamsoft:barcodereaderbundle:11.2.1000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.0.5000") + implementation("com.dynamsoft:barcodereaderbundle:11.2.1000") } ``` @@ -119,7 +120,7 @@ There are two ways to add the libraries into your project - **Manually** and **M } ``` - > Note: +
    > > The camera features require the camerax dependencies. @@ -129,7 +130,7 @@ There are two ways to add the libraries into your project - **Manually** and **M In this section, we are going to explain how to create a Hello World implementation similar to our simple `DecodeWithCameraEnhancer` app for reading barcodes from camera video input. -> [!NOTE] +
    > > - Android Studio 2024.3.2 is used here in this guide. > - You can get similar source code from @@ -143,7 +144,8 @@ In this section, we are going to explain how to create a Hello World implementat 2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**. 3. When prompted, set your app name to 'DecodeWithCameraEnhancer' and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here). - > Note: + +
    > > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023). @@ -195,7 +197,7 @@ Add the SDK to your new project. Please read [Add the Libraries](#add-the-librar } ``` - >Note: +
    > >- The license string here grants a time-limited free trial which requires network connection to work. >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=guide&package=android){:target="_blank"} link. @@ -350,11 +352,7 @@ Add the SDK to your new project. Please read [Add the Libraries](#add-the-librar @Override public void onResume() { // Start video barcode reading - try { - mCamera.open(); - } catch (CameraEnhancerException e) { - e.printStackTrace(); - } + mCamera.open(); mRouter.startCapturing(EnumPresetTemplate.PT_READ_BARCODES, new CompletionListener() { @Override public void onSuccess() {} @@ -367,14 +365,10 @@ Add the SDK to your new project. Please read [Add the Libraries](#add-the-librar } @Override public void onPause() { - // Stop video barcode reading - try { - mCamera.close(); - } catch (CameraEnhancerException e) { - e.printStackTrace(); - } - mRouter.stopCapturing(); - super.onPause(); + // Stop video barcode reading + mCamera.close(); + mRouter.stopCapturing(); + super.onPause(); } } ``` @@ -386,11 +380,7 @@ Add the SDK to your new project. Please read [Add the Libraries](#add-the-librar ... public override fun onResume() { // Start video barcode reading - try { - mCamera.open() - } catch (e: CameraEnhancerException) { - e.printStackTrace() - } + mCamera.open() mRouter.startCapturing(EnumPresetTemplate.PT_READ_BARCODES, object : CompletionListener { override fun onSuccess() {} override fun onFailure(errorCode: Int, errorString: String?) = @@ -400,11 +390,7 @@ Add the SDK to your new project. Please read [Add the Libraries](#add-the-librar } public override fun onPause() { // Stop video barcode reading - try { - mCamera.close() - } catch (e: CameraEnhancerException) { - e.printStackTrace() - } + mCamera.close() mRouter.stopCapturing() super.onPause() } @@ -493,6 +479,30 @@ class MainActivityKt : AppCompatActivity() { } ``` +### (Optional) Manually Releasing Deep Learning Models + +Starting from v11.2.1000, Dynamsoft Barcode Reader integrates deep learning models to enhance decoding ability. Once initialized, these models remain cached in memory until they are explicitly released. If the decoding task has finished, call `clearDLModelBuffers` to free the associated memory. + +
    +>- Java +>- Kotlin +> +>1. +```java +@Override +protected void onDestroy() { + CaptureVisionRouter.clearDLModelBuffers(); + super.onDestroy(); +} +``` +2. +```kotlin +override fun onDestroy() { + CaptureVisionRouter.clearDLModelBuffers() + super.onDestroy() +} +``` + ### Build and Run the Project 1. Select the device that you want to run your app on from the target device drop-down menu in the toolbar. diff --git a/programming/android/index.md b/programming/android/index.md index 8413ef88..07d4b180 100644 --- a/programming/android/index.md +++ b/programming/android/index.md @@ -47,7 +47,8 @@ You can either get a quick start with the [BarcodeScanner APIs](api-reference/ba

    barcode-scanner

    -> Note: If you are looking for a solution to scan large batches of barcodes, please refer to the [`BatchBarcodeScanner`](https://www.dynamsoft.com/use-cases/batch-barcode-scanning/){:target="_blank"}. The `BatchBarcodeScanner` has much higher ability on scanning large number of barcodes. It also provides you a highly interactable UI for result previewing, editing, saving, reusing and sharing. +
    +> If you are looking for a solution to scan large batches of barcodes, please refer to the [`BatchBarcodeScanner`](https://www.dynamsoft.com/use-cases/batch-barcode-scanning/){:target="_blank"}. The `BatchBarcodeScanner` has much higher ability on scanning large number of barcodes. It also provides you a highly interactable UI for result previewing, editing, saving, reusing and sharing. - [Build your First APP](user-guide.md) - [Configure Your Barcode Scanner](user-guide/configure-barcode-scanner.md) diff --git a/programming/android/release-notes/android-11.md b/programming/android/release-notes/android-11.md index f40dc499..c5663ae8 100644 --- a/programming/android/release-notes/android-11.md +++ b/programming/android/release-notes/android-11.md @@ -10,6 +10,56 @@ noTitleIndex: true # Release Notes for Android SDK - 11.x +## 11.2.1000 (10/16/2025) + +🎉 **Milestone Release** - This version introduces groundbreaking AI-powered enhancements that significantly improve accuracy and performance across all barcode and MRZ processing scenarios. + +### ✨ Key Highlights + +**AI-Powered Detection & Decoding** + +- 🧠 **First-to-Market AI Localization**: Revolutionary `OneDLocalization` and `DataMatrixQRCodeLocalization` neural network models for superior detection of **blurred/low-resolution 1D codes** and **DataMatrix/QR codes with missing or damaged finder patterns**. +- ⚡ **Specialized Decoders**: Cutting-edge `EAN13Decoder` and `Code128Decoder` models deliver unprecedented accuracy for **blurred and long-distance** scenarios. +- 🔍 **Enhanced Clarity Processing**: Completely redesigned `OneDDeblur` model with superior **motion blur and focus blur** recovery algorithms. +- 🎯 **Flexible Model Configuration**: Advanced [`ModelNameArray`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#mode-arguments) parameter enables on-demand model loading and precise selection for specific barcode scenarios. + +**Precision Control** + +- ⚙️ **Granular Deblur Methods**: Fine-tuned [`DM_DEEP_ANALYSIS`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#dm_deep_analysis) with specialized method control - `OneDGeneral`, `TwoDGeneral`, and `EAN13Enhanced` for targeted optimization. +- 🎯 **Smart Barcode Counting**: New [`ExpectedBarcodesCount`]({{ site.dcvb_parameters_reference }}barcode-format-specification/expected-barcodes-count.html) parameter enables **format-specific quantity control** and **early termination optimization** for known-quantity scenarios. +- 🔍 **Advanced Region Detection**: New [`RPM_GRAY_CONSISTENCY`]({{ site.dcvb_parameters_reference }}image-parameter/region-predetection-modes.html#rpm_gray_consistency) mode enables precise region detection based on **grayscale uniformity** and **local consistency** for document and label processing. + +### 💡 What This Means for You + +**For Challenging Barcode Scenarios** + +- **Blurred conditions**: 26.5% better read rates with 44% faster processing - ideal for handheld scanning and moving objects. +- **Extended distance capability**: Breakthrough support for reading distances beyond 75cm - revolutionizing warehouse automation and high-shelf scanning. +- **Damaged 2D codes**: Enhanced detection of DataMatrix and QR codes with missing or damaged finder patterns - perfect for manufacturing and logistics applications. + +**For Enterprise Integration** + +- **Retail environments**: Enhanced performance for blurred handheld scanning and long-distance shelf reading. +- **Logistics & shipping**: Improved recognition for package tracking with better blur and long-distance scanning capabilities. +- **Manufacturing QC**: Improved 2D code reading on printed/etched parts with wear damage. + +**For Developers** + +- **Backward Compatible**: Seamless upgrade with existing code and easy migration path. +- **Flexible Configuration**: Extensive parameter customization for specific use cases and comprehensive model configuration options. +- **Enterprise Ready**: Battle-tested stability for production environments. + +### Changed + +- Added a new method, [`switchCapturingTemplate`]({{ site.dcvb_android_api }}capture-vision-router/multiple-file-processing.html#switchcapturingtemplate), which allows switching templates dynamically during the image processing workflow. +- Added a new method, [`clearDLModelBuffers`]({{ site.dcvb_android_api }}capture-vision-router/settings.html#cleardlmodelbuffers), to release memory by clearing buffered deep learning models. +- Added a new method, [`setGlobalIntraOpNumThreads`]({{ site.dcvb_android_api }}capture-vision-router/settings.html#setglobalintranumthreads), to configure the global number of threads used for model execution. +- Added a new button, `cameraToggleButton`, to the `CameraView`, allowing users to switch between the front and back cameras. +The following APIs are provided for configuring the `cameraToggleButton`: + - [`setCameraToggleButton`]({{ site.dce_android }}auxiliary-api/dcecameraview.html#setcameratogglebutton) + - [`setCameraToggleButtonVisible`]({{ site.dce_android }}auxiliary-api/dcecameraview.html#setcameratogglebuttonvisible) + - [`getCameraToggleButtonVisible`]({{ site.dce_android }}auxiliary-api/dcecameraview.html#getcameratogglebuttonvisible) + ## 11.0.5000 (07/29/2025) ### New diff --git a/programming/android/release-notes/index.md b/programming/android/release-notes/index.md index d8b3b547..dbe3740f 100644 --- a/programming/android/release-notes/index.md +++ b/programming/android/release-notes/index.md @@ -10,6 +10,7 @@ permalink: /programming/android/release-notes/ # Dynamsoft Barcode Reader Android SDK - Release Notes +- [11.2.1000 (10/16/2025)]({{ site.android_release_notes }}android-11.html#1121000-10162025) - [11.0.5000 (07/29/2025)]({{ site.android_release_notes }}android-11.html#1105000-07292025) - [11.0.3000 (05/15/2025)]({{ site.android_release_notes }}android-11.html#1103000-05152025) - [10.4.3002 (03/07/2025)]({{ site.android_release_notes_v10 }}android-10.html#1043002-03072025) diff --git a/programming/android/upgrade.md b/programming/android/upgrade.md index 1d96e5dc..ad4f8022 100644 --- a/programming/android/upgrade.md +++ b/programming/android/upgrade.md @@ -69,7 +69,8 @@ pageStartVer: 10.0 } ``` - > Note: Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. +
    + > Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. 3. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project. @@ -111,8 +112,7 @@ pageStartVer: 10.0 } ``` - > Note: - > +
    > The camera features require the camerax dependencies. 4. Click **Sync Now**. After the synchronization is complete, the SDK is added to the project. diff --git a/programming/android/user-guide.md b/programming/android/user-guide.md index d9cb6440..00dce466 100644 --- a/programming/android/user-guide.md +++ b/programming/android/user-guide.md @@ -12,7 +12,7 @@ noTitleIndex: true This user guide will walk through the [ScanSingleBarcode](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/android/BarcodeScannerAPISamples/ScanSingleBarcode/) sample app. When creating your own project, please use this sample as a reference. This guide uses [`BarcodeScanner`](api-reference/barcode-scanner/index.md) API which aim to elevate the UI creation process with less code and offer a more pleasant and intuitive UI for your app. -> Note: +> [!Note] > > This guide aims at scanning a single barcode with the `BarcodeScanner` component. > @@ -76,13 +76,13 @@ There are two ways in which you can include the `dynamsoftbarcodereaderbundle` l >1. ```groovy dependencies { - implementation 'com.dynamsoft:barcodereaderbundle:11.0.5000' + implementation 'com.dynamsoft:barcodereaderbundle:11.2.1000' } ``` 2. ```kotlin dependencies { - implementation("com.dynamsoft:barcodereaderbundle:11.0.5000") + implementation("com.dynamsoft:barcodereaderbundle:11.2.1000") } ``` @@ -126,7 +126,7 @@ There are two ways in which you can include the `dynamsoftbarcodereaderbundle` l } ``` - > Note: +
    > > The camera features require the camerax dependencies. @@ -143,9 +143,10 @@ The first thing that we are going to do is to create a fresh new project. Here a 2. Choose the correct template for your project. In this sample, we use **Empty Views Activity**. 3. When prompted, set your app name to *ScanSingleBarcode* and set the **Save** location, **Language**, and **Minimum SDK** (we use 21 here). - > Note: - > - > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023). + +
    + > + > - With **minSdkVersion** set to 21, your app is compatible with more than 99.6% of devices on the Google Play Store (last update: October 2023). ### Step 2: Include the Library @@ -240,11 +241,11 @@ class MainActivity : AppCompatActivity() { } ``` ->Note: +> [!Note] > ->- The license string here grants a time-limited free trial which requires network connection to work. ->- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=guide&package=ios){:target="_blank"} link. ->- If you download the Installation Package, it comes with a 30-day trial license by default. +> - The license string here grants a time-limited free trial which requires network connection to work. +> - You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=guide&package=ios){:target="_blank"} link. +> - If you download the Installation Package, it comes with a 30-day trial license by default. ### Step 5: Implementing the Barcode Scanner @@ -374,7 +375,28 @@ class MainActivity : AppCompatActivity() { } ``` -### Step 7: Run the Project +### Step 7: Manually Releasing Deep Learning Models (optional) + +Starting from v11.2.1000, Dynamsoft Barcode Reader integrates deep learning models to enhance decoding ability. Once initialized, these models remain cached in memory until they are explicitly released. If the decoding task has finished, call `clearDLModelBuffers` to free the associated memory. + +
    +>- Java +>- Kotlin +> +>1. +```java +launcher = registerForActivityResult(new BarcodeScannerActivity.ResultContract(), result -> { + CaptureVisionRouter.clearDLModelBuffers(); +}); +``` +2. +```kotlin +launcher = registerForActivityResult(BarcodeScannerActivity.ResultContract()) { result -> + CaptureVisionRouter.clearDLModelBuffers() +} +``` + +### Step 8: Run the Project Now that the code has been written and the project complete, it's time to run the project. During setup, all of the gradle settings should have already been configured for you, so pretty much all you need to do now is to connect a physical Android device, select the proper configuration, and click Run. diff --git a/programming/android/user-guide/ui-configurations.md b/programming/android/user-guide/ui-configurations.md index f535529a..9b9e22ff 100644 --- a/programming/android/user-guide/ui-configurations.md +++ b/programming/android/user-guide/ui-configurations.md @@ -44,7 +44,7 @@ DrawingLayer layer = cameraView.getDrawingLayer(DrawingLayer.DBR_LAYER_ID); layer.setDefaultStyle(DrawingStyleManager.STYLE_BLUE_STROKE); ``` -Set the style of the highlight overlays with a user defined style: +Set the style of the highlight overlays with a use defined style: 1. Create colours in the **values/colours.xml** file. diff --git a/programming/flutter/api-reference/barcode-result-item.md b/programming/flutter/api-reference/barcode-result-item.md deleted file mode 100644 index 6ccab5ff..00000000 --- a/programming/flutter/api-reference/barcode-result-item.md +++ /dev/null @@ -1,116 +0,0 @@ ---- -layout: default-layout -title: BarcodeResultItem Class - Dynamsoft Barcode Reader Flutter Edition -description: BarcodeResultItem class represents a barcode result item decoded by barcode reader engine. It is derived from CapturedResultItem. -keywords: GetFormat, GetText, GetLocation, GetConfidence, GetModuleSize, BarcodeResultItem, api reference, flutter, barcode reader -needAutoGenerateSidebar: true -needGenerateH3Content: true -breadcrumbText: BarcodeResultItem ---- - -# BarcodeResultItem Class - -The `BarcodeResultItem` class represents a single barcode result decoded by the barcode reader. It is part of the [`DecodedBarcodesResult`](../api-reference/capture-vision-router-lite/decoded-barcodes-result.md), which is what the library outputs at the end of the barcode recognition process. - -## Definition - -*Assembly:* dynamsoft_capture_vision_flutter - -```dart -class BarcodeResultItem -``` - -## Properties - -| Property | Type | Description | -| -------- | ---- | ----------- | -| [`format`](#format) | *[EnumBarcodeFormat](./enum/barcode-format.md)* | The format of the barcode represented as [`EnumBarcodeFormat`](./enum/barcode-format.md). | -| [`formatString`](#formatstring) | *String* | The format of the barcode as a text string. | -| [`text`](#text) | *String* | The decoded text of the barcode. | -| [`bytes`](#bytes) | *Uint8List* | The raw bytes of the barcode. | -| [`location`](#location) | *Quadrilateral* | The location of the barcode in the image/frame. | -| [`confidence`](#confidence) | *int* | The confidence of the barcode result. | -| [`angle`](#angle) | *int* | The angle at which the barcode is detected if it's not aligned in the image/frame. | -| [`moduleSize`](#modulesize) | *int* | The size of the smallest module (dot or line) of the barcode. | -| [`isDPM`](#isdpm) | *bool* | Indicates whether the barcode is a Dot Peen Marking (DPM). | -| [`isMirrored`](#ismirrored) | *bool* | Indicates whether the barcode image is mirrored. | - -### format - -The format of the barcode represented as [`EnumBarcodeFormat`](./enum/barcode-format.md). - -```dart -EnumBarcodeFormat format; -``` - -### formatString - -The format of the barcode as a text string instead of a `EnumBarcodeFormat`. - -```dart -String formatString; -``` - -### text - -The decoded text of the barcode. - -```dart -String text; -``` - -### bytes - -The raw bytes of the barcode. - -```dart -Uint8List bytes; -``` - -### location - -The location of the barcode in the image/frame as a `Quadrilateral`. The quadrilateral contains the four vertex points of the location, with the first vertex being the left-most vertex, then going in a clockwise direction for the remaining points. - -```dart -Quadrilateral location; -``` - -### confidence - -The confidence of the barcode result is a measure of the result's accuracy. If the confidence is lower than 30, the result will not be output by default as it is considered quite inaccurate. - -```dart -int confidence; -``` - -### angle - -The angle at which the barcode is detected if it's not aligned in the image/frame. - -```dart -int angle; -``` - -### moduleSize - -The size of the smallest module (dot or line) of the barcode. - -```dart -int moduleSize; -``` - -### isDPM - -Indicates whether the barcode is a Dot Peen Marking (DPM), which is a unique type of Datamatrix code. - -```dart -bool isDPM; -``` - -### isMirrored - -Indicates whether the barcode image is mirrored. - -```dart -bool isMirrored; -``` diff --git a/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md b/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md index 6ccab5ff..91b8cf5e 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md +++ b/programming/flutter/api-reference/capture-vision-router-lite/barcode-result-item.md @@ -37,7 +37,7 @@ class BarcodeResultItem ### format -The format of the barcode represented as [`EnumBarcodeFormat`](./enum/barcode-format.md). +The format of the barcode represented as a [`EnumBarcodeFormat`](./enum/barcode-format.md). ```dart EnumBarcodeFormat format; diff --git a/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md b/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md index 0bf03386..4ecf6ee3 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md +++ b/programming/flutter/api-reference/capture-vision-router-lite/camera-enhancer.md @@ -32,12 +32,28 @@ Future open() ### setScanRegion -Sets the scan region of the camera and displays a bordered area on the UI to represent the scan region. +Sets the scan region of the camera and displays a bordered area on the UI to represent the scan region. To learn how to specify the scan region, please visit this [section of the foundational user guide](../../foundational-user-guide.md#specify-the-scan-region). ```dart Future setScanRegion( DSRect region ) ``` +**Remarks** + +This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. + +### selectCamera + +Selects the camera based on the specified [`EnumCameraPosition`](../enum/camera-position.md). + +```dart +Future selectCamera(EnumCameraPosition position) +``` + +**Remarks** + +If you attempt to select the **backDualWideAuto** or the **backUltraWide** cameras on an Android phone, an exception will be thrown as those cameras are only available on iPhones. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. This method must be called **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. + ### setZoomFactor Sets the zoom factor of the camera. @@ -62,6 +78,32 @@ Turns off the camera's flashlight (if available). Future turnOffTorch() ``` +### enableEnhancedFeatures + +Activates the selected enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) provided by the Camera Enhancer library, including the auto-zoom and smart torch features. + +```dart +Future enableEnhancedFeatures( int features ) +``` + +**Remarks** + +This method must be used **after [`setInput`](capture-vision-router.md#setinput) and before the [`open`](#open) method**. If you would like to activate multiple enhanced features, then they must be combined using the OR (`|`) operator. + +```dart +await _cvr.setInput(_camera); +_camera.enableEnhancedFeatures(EnumEnhancedFeatures.autoZoom | EnumEnhancedFeatures.smartTorch); +_camera.open(); +``` + +### disableEnhancedFeatures + +Disables the selected and activated enhanced features (represented by [`EnumEnhancedFeatures`](../enum/enhanced-features-camera.md)) of the Camera Enhancer. + +```dart +Future disableEnhancedFeatures(int features) +``` + ### close Closes the camera and releases the related resources. When the `CaptureVisionRouter` instance calls `stopCapturing`, please make sure to call this method as well to ensure that the resources are released properly. diff --git a/programming/flutter/api-reference/capture-vision-router-lite/camera-view.md b/programming/flutter/api-reference/capture-vision-router-lite/camera-view.md new file mode 100644 index 00000000..44e4114b --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router-lite/camera-view.md @@ -0,0 +1,89 @@ +--- +layout: default-layout +title: CameraView Class - Dynamsoft Capture Vision Flutter +description: CameraView class of DCV Flutter edition displays a camera preview with customizable UI elements. +keywords: camera, enhancer, barcode reader, flutter, capture vision, view +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# CameraView + +`CameraView` is a widget that integrates with the `CameraEnhancer` - providing a camera interface with configurable and customizable UI components like torch control, scan region visualization, and custom drawing layers. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class CameraView +``` + +## Properties + +### cameraEnhancer + +Sets the [`CameraEnhancer`](camera-enhancer.md) instance that the `CameraView` is attached to. The `CameraEnhancer` is responsible for the core camera operations, and so **this property must be defined when constructing the CameraView**. + +```dart +final CameraEnhancer cameraEnhancer; +``` + +### scanLaserVisible + +Determines whether the scan laser will be visible in the scan region or not. + +```dart +final bool? scanLaserVisible; +``` + +### scanRegionMaskVisible + +Establishes whether the scan region (if defined via the `CameraEnhancer`) will be represented visually using a mask. The mask highlights the area where the barcode scanning occurs, and it defaults to `true` if not specified. + +```dart +final bool? scanRegionMaskVisible; +``` + +**Remarks** + +To learn how to limit the scan region, please visit this [section of the foundational user guide](../../foundational-user-guide.md#specify-the-scan-region). + +### torchButtonVisible + +Controls the visibility of the torch/flash button that allows the user to activate the flash in low brightness scenarios. + +```dart +final bool? torchButtonVisible; +``` + +**Remarks** + +If no custom torch button is defined, the default torch icon will show up on the UI. + +### torchButton + +Defines a custom [`TorchButton`](torch-button.md) instead of the default torch icon that comes with the camera view. This property allows you to customize the size, position, and icon images of the torch button. + +```dart +final TorchButton? torchButton; +``` + +## Code Snippet + +```dart +@override +Widget build(BuildContext context) { +return Scaffold( + appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title)), + body: Center(child: CameraView( + cameraEnhancer: _camera, + torchButtonVisible: true, + scanRegionMaskVisible: false, + scanLaserVisible: true, + torchButton: _torch, + visibleLayerIds: [EnumDrawingLayerId.dbr]) + ), +); +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md b/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md index 0067a92c..932ba21e 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md +++ b/programming/flutter/api-reference/capture-vision-router-lite/capture-vision-router.md @@ -35,7 +35,7 @@ Captures an image using the specified template and processes it - outputting a [ Future capture( ImageData imageData, String templateName ) ``` -#### Remarks +**Remarks** The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. @@ -47,7 +47,7 @@ Starts the capturing process using the specified template. Any result(s) (of typ Future startCapturing( String templateName ) ``` -#### Remarks +**Remarks** The template that is used during processing can be a preset template (one of [`EnumPresetTemplate`](../enum/preset-template.md)) or a customized JSON template that you create or that is provided to you by the Dynamsoft team. @@ -79,3 +79,35 @@ Future updateSettings( String templateName, SimplifiedCaptureVisionSetting For the `templateName` input parameter, this can be either the name of the `CaptureVisionTemplate` in a custom JSON template file/string or the name of one of the preset templates available via [`EnumPresetTemplate`](../enum/preset-template.md). +### getSimplifiedSettings + +Returns a subset of the full applied settings as a [`SimplifiedCaptureVisionSettings`](simplified-capture-vision-settings.md) object. This object contains the simplified settings of the Capture Vision Router instance, which in turn contains the simplified settings of the functional product used. + +```dart +Future getSimplifiedSettings(String templateName) async +``` + +**Remarks** + +The templateName parameter represents the Capture Vision template that has been applied, whether it is a [preset template](../enum/preset-template.md) or a custom template defined in a JSON template file or string. To learn how to use the `getSimplifiedSettings`, please refer to this [section of the Foundational User Guide](../../foundational-user-guide.md#using-simplifiedcapturevisionsettings). + +### resetSettings + +Resets all of the settings to their default values. + +```dart +Future resetSettings() async +``` + +### setInput + +Sets up an image source to provide images for continuous processing. This method is mainly used when configuring a camera (via the [`CameraEnhancer`](camera-enhancer.md)) as an input source. + +```dart +Future setInput(ImageSourceAdapter input) async +``` + +**Remarks** + +In most cases, the `ImageSourceAdapter` that will be used is a Camera Enhancer instance to allow the user to use their phone's built-in camera. + diff --git a/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md b/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md index 51816097..52eb5545 100644 --- a/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md +++ b/programming/flutter/api-reference/capture-vision-router-lite/captured-result-receiver.md @@ -26,6 +26,7 @@ class CapturedResultReceiver | ------ | ----------- | | [`onCapturedResultReceived`](#oncapturedresultreceived) | This callback is triggered when any kind of captured result is available at the end of the recognition process. | | [`onDecodedBarcodesReceived`](#ondecodedbarcodesreceived) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. | +| [`onParsedResultsReceived`](#) | This callback is triggered when decoded barcode(s) are available at the end of the recognition process. | ### onCapturedResultReceived @@ -50,3 +51,11 @@ Future Function(DecodedBarcodesResult result)? onDecodedBarcodesReceived; **Parameters** `result`: The decoded barcode result, an instance of [`DecodedBarcodesResult`](decoded-barcodes-result.md). + +### onParsedReultsReceived + +This callback method delivers a ParsedResult, which is an object representing any captured result of type `parsedResult` 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(ParsedResult result)? onParsedResultsReceived; +``` diff --git a/programming/flutter/api-reference/capture-vision-router-lite/feedback.md b/programming/flutter/api-reference/capture-vision-router-lite/feedback.md new file mode 100644 index 00000000..00117969 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router-lite/feedback.md @@ -0,0 +1,56 @@ +--- +layout: default-layout +title: FeedBack Class - Dynamsoft Capture Vision Flutter +description: FeedBack class of DCV Flutter provides API to control the haptic feedback features of a phone. +keywords: haptic, feedback, barcode reader, flutter, capture vision +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# FeedBack + +The `FeedBack` class allows you to control the haptic feedback features so that the phone can either beep or vibrate when a result is found. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class FeedBack +``` + +## Methods + +### beep + +Plays a beep sound when a captured result is found. + +```dart +Future beep() +``` + +### vibrate + +Triggers a vibration when a captured result is found. + +```dart +Future vibrate() +``` + +**Code Snippet** + +```dart +late final CapturedResultReceiver _receiver = CapturedResultReceiver() + ..onDecodedBarcodesReceived = (DecodedBarcodesResult result) async { + if (result.items?.isNotEmpty ?? false) { + FeedBack.beep(); + FeedBack.vibrate(); + _cvr.stopCapturing(); + var displayString = result.items?.map((item) => "Format: ${item.formatString}\nText: ${item.text}").join('\n\n'); + showTextDialog("Barcodes Count: ${result.items?.length ?? 0}", displayString ?? "", () { + _cvr.startCapturing(_templateName); + }); + } + }; +``` \ No newline at end of file diff --git a/programming/flutter/api-reference/capture-vision-router-lite/torch-button.md b/programming/flutter/api-reference/capture-vision-router-lite/torch-button.md new file mode 100644 index 00000000..e424a1d0 --- /dev/null +++ b/programming/flutter/api-reference/capture-vision-router-lite/torch-button.md @@ -0,0 +1,61 @@ +--- +layout: default-layout +title: TorchButton Class - Dynamsoft Capture Vision Flutter +description: TorchButton class of DCV Flutter edition represents a torch (flash) toggle button with customizable appearance and location. +keywords: camera, enhancer, barcode reader, flutter, torch, flash, button +needGenerateH3Content: true +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# TorchButton + +`TorchButton` is a class that represents a torch (flashlight) toggle button - allowing the user to customize the torch button of the [`CameraView`](camera-view.md) how they see fit. + +## Definition + +*Assembly:* dynamsoft_capture_vision_flutter + +```dart +class TorchButton +``` + +## Properties + +### location + +Sets the location of the torch button as a [Rect](https://api.flutter.dev/flutter/dart-ui/Rect-class.html) - this rectangle specifies the button's position and size on the screen. When creating a custom torch button, **this property must be set**. + +```dart + Rect location; + ``` + +**Remarks** + +When setting the rectangle, please remember that the coordinates are in *pixels*. + +### torchOnImageBase64 + +Sets the icon image (as a base64 string) that will be displayed when the torch is on. + +```dart +String? torchOnImageBase64; +``` + +### torchOffImageBase64 + +Sets the icon image (as a base64 string) that will be displayed when the torch is off. + +```dart +String? torchOffImageBase64; +``` + +## Code Snippet + +```dart +final TorchButton _torch = TorchButton( + location: Rect.fromLTWH(300, 30, 50, 50), // places the torch button towards the top-right corner of the camera view + torchOffImageBase64: 'insert_base64_string_here', + torchOnImageBase64: 'insert_base64_string_here' +); +``` diff --git a/programming/flutter/api-reference/enum/barcode-format.md b/programming/flutter/api-reference/enum/barcode-format.md index 133fc5a7..6526f7fa 100644 --- a/programming/flutter/api-reference/enum/barcode-format.md +++ b/programming/flutter/api-reference/enum/barcode-format.md @@ -19,37 +19,37 @@ breadcrumbText: EnumBarcodeFormat ```dart enum EnumBarcodeFormat { - /** No barcode format specified.*/ + /** No barcode format specified.**/ none, - /** Represents all supported barcode formats. Useful for scanning operations where any type of barcode is acceptable. */ + /** Represents all supported barcode formats. Useful for scanning operations where any type of barcode is acceptable. **/ all, - /** Default barcode formats that are commonly used. This is a subset of `all` tailored for general use. */ + /** Default barcode formats that are commonly used. This is a subset of `all` tailored for general use. **/ defaultFormat, - /** One-dimensional barcode formats, including BF_CODE_39, BF_CODE_128, BF_CODE_93, BF_CODABAR, BF_ITF, BF_EAN_13, BF_EAN_8, BF_UPC_A, BF_UPC_E, INDUSTRIAL_25, BF_CODE_39_Extended and BF_MSI_CODE. */ + /** One-dimensional barcode formats, including BF_CODE_39, BF_CODE_128, BF_CODE_93, BF_CODABAR, BF_ITF, BF_EAN_13, BF_EAN_8, BF_UPC_A, BF_UPC_E, INDUSTRIAL_25, BF_CODE_39_Extended and BF_MSI_CODE. **/ oned, - /** Code 39 format, widely used in various industries for inventory and manufacturing. */ + /** Code 39 format, widely used in various industries for inventory and manufacturing. **/ code39, - /** Code 128 format, a high-density barcode for alphanumeric or numeric-only data. */ + /** Code 128 format, a high-density barcode for alphanumeric or numeric-only data. **/ code128, - /** Code 93 format, similar to Code 39 but more compact and secure with support for the full ASCII character set. */ + /** Code 93 format, similar to Code 39 but more compact and secure with support for the full ASCII character set. **/ code93, - /** Codabar format, used for various numeric barcodes in libraries, blood banks, and parcels. */ + /** Codabar format, used for various numeric barcodes in libraries, blood banks, and parcels. **/ codabar, - /** Interleaved 2 of 5 format, a numeric-only barcode used in warehousing, distribution, and logistics. */ + /** Interleaved 2 of 5 format, a numeric-only barcode used in warehousing, distribution, and logistics. **/ itf, - /** EAN-13 format, a superset of the UPC-A barcode used worldwide for marking retail goods. */ + /** EAN-13 format, a superset of the UPC-A barcode used worldwide for marking retail goods. **/ ean13, - /** EAN-8 format, a compressed version of EAN-13 for smaller packages. */ + /** EAN-8 format, a compressed version of EAN-13 for smaller packages. **/ ean8, - /** UPC-A format, widely used in the United States and Canada for tracking trade items in stores. */ + /** UPC-A format, widely used in the United States and Canada for tracking trade items in stores. **/ upcA, - /** UPC-E format, a smaller version of the UPC-A barcode used for smaller packages. */ + /** UPC-E format, a smaller version of the UPC-A barcode used for smaller packages. **/ upcE, - /** Industrial 2 of 5 format, an older, numeric-only barcode used in the industrial sector. */ + /** Industrial 2 of 5 format, an older, numeric-only barcode used in the industrial sector. **/ industrial25, - /** Extended Code 39 format, capable of encoding the full ASCII character set by combining standard Code 39 characters. */ + /** Extended Code 39 format, capable of encoding the full ASCII character set by combining standard Code 39 characters. **/ code39Extended, - /** GS1 DataBar barcode formats, including BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. These barcodes are designed for use in retail and healthcare for fresh foods and small items. */ + /** GS1 DataBar barcode formats, including BF_GS1_DATABAR_OMNIDIRECTIONAL, BF_GS1_DATABAR_TRUNCATED, BF_GS1_DATABAR_STACKED, BF_GS1_DATABAR_STACKED_OMNIDIRECTIONAL, BF_GS1_DATABAR_EXPANDED, BF_GS1_DATABAR_EXPANDED_STACKED, BF_GS1_DATABAR_LIMITED. These barcodes are designed for use in retail and healthcare for fresh foods and small items. **/ gs1Databar, gs1DatabarStackedOmnidirectional, gs1DatabarTruncated, @@ -58,63 +58,63 @@ enum EnumBarcodeFormat gs1DatabarExpanded, gs1DatabarExpandedStacked, gs1DatabarLimited, - /** Patch code, a special barcode used for document scanning applications to separate batches of documents. */ + /** Patch code, a special barcode used for document scanning applications to separate batches of documents. **/ patchcode, - /** Micro PDF417, a compact version of PDF417 used for applications where space is limited. */ + /** Micro PDF417, a compact version of PDF417 used for applications where space is limited. **/ microPdf417, - /** MSI Code, a barcode used in inventory and warehouse to encode information in the distribution of goods. */ + /** MSI Code, a barcode used in inventory and warehouse to encode information in the distribution of goods. **/ msiCode, - /** Code 11, used primarily for labeling telecommunications equipment. */ + /** Code 11, used primarily for labeling telecommunications equipment. **/ code11, - /** Two-Digit Add-On, an extension to UPC and EAN codes for magazines and books. */ + /** Two-Digit Add-On, an extension to UPC and EAN codes for magazines and books. **/ twoDigitAddOn, - /** Five-Digit Add-On, used with UPC and EAN codes for additional data, such as suggested retail price. */ + /** Five-Digit Add-On, used with UPC and EAN codes for additional data, such as suggested retail price. **/ fiveDigitAddOn, - /** Code 32, also known as Italian PharmaCode, used specifically in the Italian pharmaceutical industry. */ + /** Code 32, also known as Italian PharmaCode, used specifically in the Italian pharmaceutical industry. **/ code32, - /** PDF417, a two-dimensional barcode used in a variety of applications, capable of encoding large amounts of data. */ + /** PDF417, a two-dimensional barcode used in a variety of applications, capable of encoding large amounts of data. **/ pdf417, - /** QR Code, a widely used two-dimensional barcode with high data capacity and error correction capability. */ + /** QR Code, a widely used two-dimensional barcode with high data capacity and error correction capability. **/ qrCode, - /** DataMatrix, a two-dimensional barcode used for marking small items, providing high data density and reliability. */ + /** DataMatrix, a two-dimensional barcode used for marking small items, providing high data density and reliability. **/ datamatrix, - /** Aztec, a two-dimensional barcode known for its compact size and suitability for encoding small amounts of data efficiently. */ + /** Aztec, a two-dimensional barcode known for its compact size and suitability for encoding small amounts of data efficiently. **/ aztec, - /** MaxiCode, a two-dimensional barcode used primarily for parcel and package tracking in logistics and postal services. */ + /** MaxiCode, a two-dimensional barcode used primarily for parcel and package tracking in logistics and postal services. **/ maxicode, - /** Micro QR, a smaller version of the QR Code designed for applications where space is limited. */ + /** Micro QR, a smaller version of the QR Code designed for applications where space is limited. **/ microQr, - /** GS1 Composite, a group of barcodes used in conjunction with GS1 DataBar or linear barcodes to provide additional information. */ + /** GS1 Composite, a group of barcodes used in conjunction with GS1 DataBar or linear barcodes to provide additional information. **/ gs1Composite, - /** Nonstandard barcode, a placeholder for barcodes that do not conform to established industry standards. */ + /** Nonstandard barcode, a placeholder for barcodes that do not conform to established industry standards. **/ nonStandardBarcode, - /** DotCode, a two-dimensional barcode designed for high-speed printing applications. */ + /** DotCode, a two-dimensional barcode designed for high-speed printing applications. **/ dotcode, - /** PharmaCode, a general category that includes both BF_PHARMACODE_ONE_TRACK and BF_PHARMACODE_TWO_TRACK. */ + /** PharmaCode, a general category that includes both BF_PHARMACODE_ONE_TRACK and BF_PHARMACODE_TWO_TRACK. **/ pharmacode, - /** PharmaCode One Track, used in the pharmaceutical industry for packaging control. */ + /** PharmaCode One Track, used in the pharmaceutical industry for packaging control. **/ pharmacodeOneTrack, - /** PharmaCode Two Track, an extension of PharmaCode for encoding additional data. */ + /** PharmaCode Two Track, an extension of PharmaCode for encoding additional data. **/ pharmacodeTwoTrack, - /** Matrix 2 of 5, an older form of barcode used in warehouse sorting and conveyor systems. */ + /** Matrix 2 of 5, an older form of barcode used in warehouse sorting and conveyor systems. **/ matrix25, - /**Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC, BF_KIX.*/ + /**Combined value of BF2_USPSINTELLIGENTMAIL, BF2_POSTNET, BF2_PLANET, BF2_AUSTRALIANPOST, BF2_RM4SCC, BF_KIX.**/ postalCode, - /** USPS Intelligent Mail, a barcode used by the United States Postal Service to provide greater information and tracking capabilities. */ + /** USPS Intelligent Mail, a barcode used by the United States Postal Service to provide greater information and tracking capabilities. **/ uspsIntelligentMail, - /** Postnet, used by the USPS for automating the sorting of mail. */ + /** Postnet, used by the USPS for automating the sorting of mail. **/ postnet, - /** Planet, another USPS barcode, similar to Postnet, but with additional data capacity. */ + /** Planet, another USPS barcode, similar to Postnet, but with additional data capacity. **/ planet, - /** Australian Post, barcodes used by the Australian postal service for mail sorting. */ + /** Australian Post, barcodes used by the Australian postal service for mail sorting. **/ australianPost, - /** RM4SCC (Royal Mail 4 State Customer Code), used by the UK's Royal Mail for automated mail sorting. */ + /** RM4SCC (Royal Mail 4 State Customer Code), used by the UK's Royal Mail for automated mail sorting. **/ rm4scc, - /** KIX (Klant index - Customer index), used by the Dutch postal service for sorting mail. */ + /** KIX (Klant index - Customer index), used by the Dutch postal service for sorting mail. **/ kix, - /**Telepen*/ + /**Telepen**/ telepen, - /**Telepen Numeric. A variation of the Telepen format optimized for encoding numeric data only.*/ + /**Telepen Numeric. A variation of the Telepen format optimized for encoding numeric data only.**/ telepenNumeric } ``` diff --git a/programming/flutter/api-reference/enum/camera-position.md b/programming/flutter/api-reference/enum/camera-position.md new file mode 100644 index 00000000..d485e9d1 --- /dev/null +++ b/programming/flutter/api-reference/enum/camera-position.md @@ -0,0 +1,31 @@ +--- +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 +{ + /** The default, back-facing camera. It is a wide-angle camera for general usage. **/ + back, + /** The front-facing camera. **/ + front, + /** The back-facing ultra-wide-angle camera - which should be used for macro-distance scenarios. (iOS ONLY) **/ + backUltraWide, + /** The back-facing virtual camera that can automatically switch between the default wide-angle and the ultra-wide-angle cameras. Supported devices include: iPhone 13 Pro, iPhone 13 Pro Max, iPhone 14 Pro, iPhone 14 Pro Max, iPhone 15 Pro, iPhone 15 Pro Max. **/ + backDualWideAuto +} +``` diff --git a/programming/flutter/api-reference/enum/captured-result-item-type.md b/programming/flutter/api-reference/enum/captured-result-item-type.md index c22082d1..064d102a 100644 --- a/programming/flutter/api-reference/enum/captured-result-item-type.md +++ b/programming/flutter/api-reference/enum/captured-result-item-type.md @@ -22,11 +22,11 @@ breadcrumbText: EnumCapturedResultItemType ```dart enum EnumCapturedResultItemType { - /** The original image on which the capture process was performed. This result type can be output by any of the Capture Vision functional products (Barcode Reader, Label Recognizer, and Document Normalizer) */ + /** 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) **/ originalImage, - /** The decoded barcode, which is the result at the end of a Barcode Reader task. */ + /** The decoded barcode, which is the result at the end of a Barcode Reader task. **/ barcode, - /** The parsed result, which is the result at the end of a Code Parser task. */ + /** The parsed result, which is the result at the end of a Code Parser task. **/ parsedResult } ``` diff --git a/programming/flutter/api-reference/enum/deblur-mode.md b/programming/flutter/api-reference/enum/deblur-mode.md index 131174a0..0cfbc6e6 100644 --- a/programming/flutter/api-reference/enum/deblur-mode.md +++ b/programming/flutter/api-reference/enum/deblur-mode.md @@ -19,29 +19,29 @@ breadcrumbText: EnumDeblurMode ```dart enum EnumDeblurMode { - /** Skips the process, no deblurring is applied. */ + /** Skips the process, no deblurring is applied. **/ skip, - /** Applies a direct binarization algorithm for generating the binary image. */ + /** Applies a direct binarization algorithm for generating the binary image. **/ directBinarization, - /** Utilizes a threshold binarization algorithm for generating the binary image, dynamically determining the threshold based on the image content. */ + /** Utilizes a threshold binarization algorithm for generating the binary image, dynamically determining the threshold based on the image content. **/ thresholdBinarization, - /** Employs a gray equalization algorithm to adjust the contrast and brightness, improving the clarity of the gray-scale image before binarization. */ + /** Employs a gray equalization algorithm to adjust the contrast and brightness, improving the clarity of the gray-scale image before binarization. **/ grayEqualization, - /** Implements a smoothing algorithm to reduce noise and artifacts, smoothing out the gray-scale image before binarization. */ + /** Implements a smoothing algorithm to reduce noise and artifacts, smoothing out the gray-scale image before binarization. **/ smoothing, - /** Uses a morphing algorithm to enhance the gray-scale image before binarization. */ + /** Uses a morphing algorithm to enhance the gray-scale image before binarization. **/ morphing, - /** Engages in a deep analysis of the grayscale image based on the barcode format to intelligently generate the optimized binary image, tailored to complex or severely blurred images. */ + /** Engages in a deep analysis of the grayscale image based on the barcode format to intelligently generate the optimized binary image, tailored to complex or severely blurred images. **/ deepAnalysis, - /** Applies a sharpening algorithm to enhance the edges and details of the barcode, making it more distinguishable on the gray-scale image before binarization. */ + /** Applies a sharpening algorithm to enhance the edges and details of the barcode, making it more distinguishable on the gray-scale image before binarization. **/ sharpening, - /** Decodes the barcodes based on the binary image obtained during the localization process. */ + /** Decodes the barcodes based on the binary image obtained during the localization process. **/ basedOnLocBin, - /** Combines sharpening and smoothing algorithms for a comprehensive deblurring effect, targeting both clarity and smoothness of the gray-scale image before binarization. */ + /** Combines sharpening and smoothing algorithms for a comprehensive deblurring effect, targeting both clarity and smoothness of the gray-scale image before binarization. **/ sharpeningSmoothing, - /** Use the deep learning algorithm to recognize the barcodes. */ + /** Use the deep learning algorithm to recognize the barcodes. **/ neuralNetwork, - /**Placeholder value with no functional meaning. */ + /**Placeholder value with no functional meaning. **/ end } ``` diff --git a/programming/flutter/api-reference/enum/drawing-layer-id.md b/programming/flutter/api-reference/enum/drawing-layer-id.md new file mode 100644 index 00000000..4fc9ff09 --- /dev/null +++ b/programming/flutter/api-reference/enum/drawing-layer-id.md @@ -0,0 +1,31 @@ +--- +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 +{ + /** The preset DrawingLayer for the Dynamsoft Document Normalizer **/ + ddn, + /** The preset DrawingLayer for the Dynamsoft Barcode Reader **/ + dbr, + /** The preset DrawingLayer for the Dynamsoft Label Recognizer **/ + dlr, + /** A custom DrawingLayer for tips **/ + tip +} +``` diff --git a/programming/flutter/api-reference/enum/enhanced-features-camera.md b/programming/flutter/api-reference/enum/enhanced-features-camera.md new file mode 100644 index 00000000..e8fdf795 --- /dev/null +++ b/programming/flutter/api-reference/enum/enhanced-features-camera.md @@ -0,0 +1,35 @@ +--- +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 +{ + /** Enables frame filtering to improve image quality, potentially leading to better read rate results. **/ + frameFilter, + /** Allows sensor control to automatically filter out any frames while the device is shaking. **/ + sensorControl, + /** Enhances the camera's focus capabilities, facilitating the camera to trigger auto-focus. This is especially useful for low-end mobile devices that do not have the ability to auto-focus. **/ + enhancedFocus, + /** Causes the camera to zoom in automatically when the barcode that it is trying to capture is far away, making the localization and decoding process easier for the Barcode Reader. **/ + autoZoom, + /** Activates the smart torch feature, which displays a torch button in the camera view when the environment brightness is low and hides the button if the brightness is high. **/ + smartTorch, + /** Enables all of the above enhanced features. **/ + all +} +``` diff --git a/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md b/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md index c88cdb3e..27de2edd 100644 --- a/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md +++ b/programming/flutter/api-reference/enum/grayscale-enhancement-mode.md @@ -19,19 +19,19 @@ breadcrumbText: EnumGrayscaleEnhancementMode ```dart enum EnumGrayscaleEnhancementMode { - /** Disables any grayscale image preprocessing. Selecting this mode skips the preprocessing step, passing the image through to subsequent operations without modification. */ + /** Disables any grayscale image preprocessing. Selecting this mode skips the preprocessing step, passing the image through to subsequent operations without modification. **/ skip, - /** Automatic selection of grayscale enhancement mode which is currently not supported. Future implementations may automatically choose the most suitable enhancement based on image analysis. */ + /** Automatic selection of grayscale enhancement mode which is currently not supported. Future implementations may automatically choose the most suitable enhancement based on image analysis. **/ auto, - /** Uses the original, unprocessed image for subsequent operations. This mode is selected when no specific grayscale enhancement is required, maintaining the image in its natural state. */ + /** Uses the original, unprocessed image for subsequent operations. This mode is selected when no specific grayscale enhancement is required, maintaining the image in its natural state. **/ general, - /** Applies a grayscale equalization algorithm to the image, enhancing contrast and detail in gray level. Suitable for images with poor contrast. */ + /** Applies a grayscale equalization algorithm to the image, enhancing contrast and detail in gray level. Suitable for images with poor contrast. **/ grayEqualize, - /** Implements a grayscale smoothing algorithm to reduce noise and smooth the image. This can be beneficial for images with high levels of grain or noise. */ + /** Implements a grayscale smoothing algorithm to reduce noise and smooth the image. This can be beneficial for images with high levels of grain or noise. **/ graySmooth, - /** Enhances the image by applying both sharpening and smoothing algorithms. This mode aims to increase clarity and detail while reducing noise, offering a balanced approach to image preprocessing. */ + /** Enhances the image by applying both sharpening and smoothing algorithms. This mode aims to increase clarity and detail while reducing noise, offering a balanced approach to image preprocessing. **/ sharpenSmooth, - /** Placeholder value with no functional meaning. */ + /** Placeholder value with no functional meaning. **/ end } ``` diff --git a/programming/flutter/api-reference/enum/grayscale-transformation-mode.md b/programming/flutter/api-reference/enum/grayscale-transformation-mode.md index 24516a93..4cdf8953 100644 --- a/programming/flutter/api-reference/enum/grayscale-transformation-mode.md +++ b/programming/flutter/api-reference/enum/grayscale-transformation-mode.md @@ -19,15 +19,15 @@ breadcrumbText: EnumGrayscaleTransformationMode ```dart enum EnumGrayscaleEnhancementMode { - /** Bypasses grayscale transformation, leaving the image in its current state without any modification to its grayscale values. This mode is selected when no alteration of the grayscale data is desired, passing the image through to subsequent operations without modification. */ + /** 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. **/ skip, - /** Applies an inversion to the grayscale values of the image, effectively transforming light elements to dark and vice versa. This mode is particularly useful for images with light text on dark backgrounds, enhancing visibility for further processing. */ + /** Applies an inversion to the grayscale values of the image, effectively transforming light elements to dark and vice versa. This mode is particularly useful for images with light text on dark backgrounds, enhancing visibility for further processing. **/ inverted, - /** Maintains the original grayscale values of the image without any transformation. This mode is suited for images with dark elements on light backgrounds, ensuring the natural contrast and detail are preserved for subsequent analysis. */ + /** Maintains the original grayscale values of the image without any transformation. This mode is suited for images with dark elements on light backgrounds, ensuring the natural contrast and detail are preserved for subsequent analysis. **/ original, - /** Delegates the choice of grayscale transformation to the library's algorithm, which automatically determines the most suitable transformation based on the image's characteristics. This mode is beneficial when the optimal transformation is not known in advance or varies across different images. */ + /** Delegates the choice of grayscale transformation to the library's algorithm, which automatically determines the most suitable transformation based on the image's characteristics. This mode is beneficial when the optimal transformation is not known in advance or varies across different images. **/ auto, - /** Placeholder value with no functional meaning. */ + /** Placeholder value with no functional meaning. **/ end } ``` diff --git a/programming/flutter/api-reference/enum/localization-mode.md b/programming/flutter/api-reference/enum/localization-mode.md index 7b29b1e8..312d0943 100644 --- a/programming/flutter/api-reference/enum/localization-mode.md +++ b/programming/flutter/api-reference/enum/localization-mode.md @@ -22,29 +22,29 @@ breadcrumbText: EnumLocalizationMode ```dart enum EnumLocalizationMode { - /** Omits the localization process entirely. */ + /** Omits the localization process entirely. **/ skip, - /** Automatic localization mode selection; not yet implemented so this is a placeholder until then. */ + /** Automatic localization mode selection; not yet implemented so this is a placeholder until then. **/ auto, - /** Identifies barcodes by finding connected blocks, offering optimal results, especially recommended for highest priority in most scenarios. */ + /** Identifies barcodes by finding connected blocks, offering optimal results, especially recommended for highest priority in most scenarios. **/ connectedBlocks, - /** Detects barcodes through analysis of patterns of contiguous black and white regions, tailored for QR Codes and DataMatrix codes. */ + /** Detects barcodes through analysis of patterns of contiguous black and white regions, tailored for QR Codes and DataMatrix codes. **/ statistics, - /** Locates barcodes by identifying linear patterns, designed primarily for 1D barcodes and PDF417 codes. */ + /** Locates barcodes by identifying linear patterns, designed primarily for 1D barcodes and PDF417 codes. **/ lines, - /** Provides rapid barcode localization, suited for interactive applications where speed is crucial. */ + /** Provides rapid barcode localization, suited for interactive applications where speed is crucial. **/ scanDirectly, - /** Targets barcode localization through detection of specific mark groups, optimized for Direct Part Marking (DPM) codes. */ + /** Targets barcode localization through detection of specific mark groups, optimized for Direct Part Marking (DPM) codes. **/ statisticsMarks, - /** Combines methods of locating connected blocks and linear patterns to efficiently localize postal codes. */ + /** Combines methods of locating connected blocks and linear patterns to efficiently localize postal codes. **/ statisticsPostalCode, - /** Initiates barcode localization from the image center, facilitating faster detection in certain layouts. */ + /** Initiates barcode localization from the image center, facilitating faster detection in certain layouts. **/ centre, - /** Specialized for quick localization of 1D barcodes, enhancing performance in fast-scan scenarios. */ + /** Specialized for quick localization of 1D barcodes, enhancing performance in fast-scan scenarios. **/ oneDFastScan, - /** Localizes barcodes by utilizing a neural network model. */ + /** Localizes barcodes by utilizing a neural network model. **/ neuralNetwork, - /** Placeholder value with no functional meaning. */ + /** Placeholder value with no functional meaning. **/ end } ``` diff --git a/programming/flutter/api-reference/enum/mapping-status.md b/programming/flutter/api-reference/enum/mapping-status.md index c67795a7..dc52029e 100644 --- a/programming/flutter/api-reference/enum/mapping-status.md +++ b/programming/flutter/api-reference/enum/mapping-status.md @@ -19,11 +19,11 @@ breadcrumbText: EnumMappingStatus ```dart enum EnumDeblurMode { - /** No mapping has been performed. */ + /** No mapping has been performed. **/ none, - /** Mapping of this field was successful. */ + /** Mapping of this field was successful. **/ succeeded, - /** Mapping of this field was unsuccessful. */ + /** Mapping of this field was unsuccessful. **/ failed } ``` diff --git a/programming/flutter/api-reference/enum/preset-template.md b/programming/flutter/api-reference/enum/preset-template.md index 5c3fac87..853521aa 100644 --- a/programming/flutter/api-reference/enum/preset-template.md +++ b/programming/flutter/api-reference/enum/preset-template.md @@ -20,10 +20,13 @@ breadcrumbText: EnumPresetTemplate ```dart static class EnumPresetTemplate { - static const defaultTemplate = "Default"; - static const readBarcodes = "ReadBarcodes_Default"; // the default template for the Barcode Reader that offers a balance between speed and read rate - static const readBarcodesSpeedFirst = "ReadBarcodes_SpeedFirst"; // prioritizes speed over read rate when reading barcodes - static const readBarcodesReadRateFirst = "ReadBarcodes_ReadRateFirst"; // prioritizes read rate over speed when reading barcodes - static const readSingleBarcode = "ReadSingleBarcode"; // focuses on the single-scan barcode reading mode and should not be used when reading multiple barcodes at a time + /** The default template for the Barcode Reader that offers a balance between speed and read rate **/ + static const readBarcodes = "ReadBarcodes_Default"; + /** The speed first template prioritizes speed over read rate when reading barcodes **/ + static const readBarcodesSpeedFirst = "ReadBarcodes_SpeedFirst"; + /** The read rate first template prioritizes read rate over speed when reading barcodes **/ + static const readBarcodesReadRateFirst = "ReadBarcodes_ReadRateFirst"; + /** The single barcode template focuses on the single-scan barcode reading mode and should not be used when reading multiple barcodes at a time as it is more speed focused. **/ + static const readSingleBarcode = "ReadSingleBarcode"; } ``` diff --git a/programming/flutter/api-reference/enum/result-status.md b/programming/flutter/api-reference/enum/result-status.md index e57fa778..0869b482 100644 --- a/programming/flutter/api-reference/enum/result-status.md +++ b/programming/flutter/api-reference/enum/result-status.md @@ -19,8 +19,11 @@ breadcrumbText: EnumResultStatus ```dart enum EnumResultStatus { + /** The barcode decoding process was a success and the result has been received **/ finished, + /** The barcode decoding process was cancelled by the user (usually by closing the UI using the close button) **/ canceled, + /** Something went wrong during the barcode decoding process and an exception has been thrown. **/ exception } ``` diff --git a/programming/flutter/api-reference/enum/scanning-mode.md b/programming/flutter/api-reference/enum/scanning-mode.md index 33c9e54e..f479d1b8 100644 --- a/programming/flutter/api-reference/enum/scanning-mode.md +++ b/programming/flutter/api-reference/enum/scanning-mode.md @@ -2,7 +2,7 @@ layout: default-layout title: EnumScanningMode - Dynamsoft Barcode Reader Flutter Edition description: EnumScanningMode of DynamsoftBarcodeReader Flutter is an enumeration class that defines the scanning mode. -keywords: BarcodeScanner, ScanningMode, flutter, +keywords: BarcodeScanner, ScanningMode, flutter, barcode reader, mode needAutoGenerateSidebar: true needGenerateH3Content: true breadcrumbText: EnumScanningMode @@ -19,7 +19,9 @@ breadcrumbText: EnumScanningMode ```dart enum EnumScanningMode { - single, // used for scanning a single barcode at a time, prioritizing speed over read rate - multiple // used for scanning multiple barcodes at a time, finding a balance between speed and read rate + /** Used for scanning a single barcode at a time, prioritizing speed over read rate **/ + single, + /** Used for scanning multiple barcodes at a time, finding a balance between speed and read rate **/ + multiple } ``` diff --git a/programming/flutter/api-reference/enum/validation-status.md b/programming/flutter/api-reference/enum/validation-status.md index bf0d088f..857e9b5f 100644 --- a/programming/flutter/api-reference/enum/validation-status.md +++ b/programming/flutter/api-reference/enum/validation-status.md @@ -23,11 +23,11 @@ breadcrumbText: EnumValidationStatus ```dart enum EnumDeblurMode { - /** No validation check has been performed. */ + /** No validation check has been performed. **/ none, - /** The validation of this field was successful. */ + /** The validation of this field was successful. **/ succeeded, - /** The validation of this field was unsuccessful. */ + /** The validation of this field was unsuccessful. **/ failed } ``` diff --git a/programming/flutter/explore-features/ui-customization.md b/programming/flutter/explore-features/ui-customization.md new file mode 100644 index 00000000..2cd8aba7 --- /dev/null +++ b/programming/flutter/explore-features/ui-customization.md @@ -0,0 +1,74 @@ +--- +layout: default-layout +title: UI Customization (Foundational Edition) - Dynamsoft Barcode Reader Flutter Edition +description: The UI customization guide for the foundational edition of Dynamsoft Barcode Reader Flutter. +keywords: ui, customization, foundational, Flutter, barcode reader +needAutoGenerateSidebar: true +noTitleIndex: true +--- + +# UI Customization Guide (Foundational Edition) + +One of the advantages of using the foundational edition of the Barcode Reader is that you can customize the UI however you see fit. In this guide we will walk through some of the ways in which you can customize the scanner UI using the Barcode Reader Foundational API. + +## Specifying a Scan Region + +You can limit the scan region of the SDK so that **it doesn't exhaust resources trying to read from the entire image or frame**. In order to do this, we must use the [`setScanRegion`](../api-reference/capture-vision-router-lite/camera-enhancer.md#setscanregion) method of the `CameraEnhancer` class. + +```dart +import 'package:dynamsoft_capture_vision_flutter/dynamsoft_capture_vision_flutter.dart'; + +final CameraEnhancer _camera = CameraEnhancer.instance; + +void initSdk() async { + //...... + await _cvr.setInput(_camera); + final scanRegion = DSRect(left: 0.1, top: 0.4, right: 0.9, bottom: 0.6, measuredInPercentage: true); + _camera.setScanRegion(scanRegion); + _camera.open(); +} +``` + +> [!TIP] +> It is recommended to have `measuredInPercentage` set to true to make the calculation process as easy as possible. + +Once a scan region is set, the region will by default be represented visually using a scan region mask. To control the visibility of this mask, please set the [`scanRegionMaskVisible`](../api-reference/capture-vision-router-lite/camera-view.md#scanregionmaskvisible) property of the `CameraView` to `false`. + +## Customizing the Camera View + +One of the main advantages of using the Camera Enhancer component to control camera operations is that it comes with a camera view UI that is fully customizable. + +The [`CameraView`](../api-reference/capture-vision-router-lite/camera-view.md) class comes with a few elements - namely a torch (flash) button, a scan region mask (if a scan region is set), a scan laser, and a drawing layer to highlight any detected barcodes. + +### Customizing the Flash Button + +The CameraView comes with its own default torch button that allows the user to toggle the camera's flash on or off. Through the [`CameraView`](../api-reference/capture-vision-router-lite/camera-view.md) and [`TorchButton`](../api-reference/capture-vision-router-lite/torch-button.md) classes, you can customize the appearance, size, and position of the torch button - as well as the visibility of the button. + +In this next code snippet, we will demonstrate how you can create and assign a custom TorchButton - as well as show the full CameraView configuration. + +> [!NOTE] +> The only required property that needs to be set in `CameraView` is the cameraEnhancer property. Any camera view component must be "attached" to a [`CameraEnhancer`](../api-reference/capture-vision-router-lite/camera-enhancer.md) instance. + +```dart +... +final TorchButton _torch = TorchButton( + location: Rect.fromLTWH(300, 30, 50, 50), // places the torch button towards the top-right corner of the camera view + torchOffImageBase64: 'insert_base64_string_here', + torchOnImageBase64: 'insert_base64_string_here' +); +... +@override +Widget build(BuildContext context) { +return Scaffold( + appBar: AppBar(backgroundColor: Theme.of(context).colorScheme.inversePrimary, title: Text(widget.title)), + body: Center(child: CameraView( + cameraEnhancer: _camera, + torchButtonVisible: true, // displays the torch button in the camera view + scanRegionMaskVisible: false, // hides the scan region mask so that the scan region is not represented visually + scanLaserVisible: true, // displays the scan laser - which is a simple bar that moves vertically within the scan region + torchButton: _torch, // assigns the custom torch button defined above to the camera view + visibleLayerIds: [EnumDrawingLayerId.dbr] // displays highlight boxes around detected barcodes + ) + ), +); +``` \ No newline at end of file diff --git a/programming/flutter/foundational-user-guide.md b/programming/flutter/foundational-user-guide.md index a3d7a4ef..8bf3aa94 100644 --- a/programming/flutter/foundational-user-guide.md +++ b/programming/flutter/foundational-user-guide.md @@ -210,21 +210,16 @@ void initSettings() async { > [!NOTE] > To learn how to create your own JSON template, please refer to this [page](https://www.dynamsoft.com/barcode-reader/docs/core/programming/features/use-runtimesettings-or-templates.html?lang=objc,swift#json-template). -### Specify the Scan Region +### UI Customization -You can also limit the scan region of the SDK so that it doesn't exhaust resources trying to read from the entire image or frame. +If you would like to learn more on how to customize the UI, please refer to the [UI Customization](explore-features/ui-customization.md) guide. -```dart -import 'package:dynamsoft_capture_vision_flutter/dynamsoft_capture_vision_flutter.dart'; +### Enabling Haptic Feedback -final CameraEnhancer _camera = CameraEnhancer.instance; +Another feature that the Barcode Reader library offers is the ability to trigger a couple of haptic feedback reactions once a barcode is found. This is done via the [`FeedBack`](api-reference/capture-vision-router-lite/feedback.md) class - and it should be called in the result callback function so that the haptic feedback occurs once a barcode is successfully decoded. -void initSdk() async { - //...... - final scanRegion = DSRect(left: 0.1, top: 0.4, right: 0.9, bottom: 0.6, measuredInPercentage: true); - _camera.setScanRegion(scanRegion); -} -``` +> [!NOTE] +> To see how the FeedBack class should be implemented to trigger these haptic feedback reactions once a barcode is found, please visit the [`FeedBack` API](api-reference/capture-vision-router-lite/feedback.md) page. ## Run the Project diff --git a/programming/flutter/upgrade.md b/programming/flutter/upgrade.md deleted file mode 100644 index 790e3dea..00000000 --- a/programming/flutter/upgrade.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -layout: default-layout -title: How to update - Dynamsoft Barcode Reader for Android -description: Follow the upgrade instructions to learn to upgrade Barcode Reader SDK Android edition from 10 to 11. -keywords: updates guide, android -needAutoGenerateSidebar: true -needGenerateH3Content: true -noTitleIndex: true -pageStartVer: 10.0 ---- - -# How to Upgrade - -## From Version 10.x to 11.x - -### Update the Libraries - -#### Visual Studio for Mac - -In the **NuGet Package Manager>Manage Packages for Solution** of your project, search for **Dynamsoft.BarcodeReaderBundle.Maui**. Select the latest version and click **install**. - -#### Visual Studio for Windows - -You need to add the library via the project file and complete additional steps for the installation. - -1. Add the library in the project file: - - ```xml - - ... - - ... - - - - ``` - -2. Open the **Package Manager Console** and run the following commands: - - ```bash - dotnet build - ``` - -> Note: -> -> - Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. -> - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.300\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'" -> - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc. - -### Update the Template File - -You can use the template converter to upgrade your template. View the [online template converter](https://www.dynamsoft.com/tools/template-upgrade/) - -## From version 9.x or earlier - -Dynamsoft Barcode Reader SDK has been refactored to integrate with DynamsoftCaptureVision (DCV) architecture since version 10. To upgrade from version 9.x or earlier to 11.x, we recommend you to follow the [User Guide](user-guide.md) and re-write your codes. This section highlights only the key changes and necessary actions for upgrading the SDK. diff --git a/programming/maui/samples/index.md b/programming/maui/samples/index.md index 784bddf9..a7c840b5 100644 --- a/programming/maui/samples/index.md +++ b/programming/maui/samples/index.md @@ -14,7 +14,7 @@ noTitleIndex: true - [Barcode Decoding Samples](#barcode-decoding-samples) - [ScanBarcodes_FoundationalAPI](#scanbarcodes_foundationalapi) - [ScanBarcodes_ReadyToUseComponent](#scanbarcodes_readytousecomponent) - - [ScanBarcodes_WithCameraEnhancer](#scanbarcodes_withcameraenhancer) + - [ScanDriverLicense](#scandriverlicense) ## Demos @@ -39,7 +39,6 @@ This is a sample that illustrates the simplest way to recognize barcodes from vi ### ScanDriverLicense - This sample demonstrates the simplest approach to recognizing a PDF417 barcode from video streaming and extracting structured data from its encoded data. [Check code on GitHub](https://github.com/Dynamsoft/barcode-reader-maui-samples/tree/main/ScanDriversLicense){:target="_blank"} diff --git a/programming/maui/upgrade.md b/programming/maui/upgrade.md index 790e3dea..45697c79 100644 --- a/programming/maui/upgrade.md +++ b/programming/maui/upgrade.md @@ -41,11 +41,11 @@ You need to add the library via the project file and complete additional steps f dotnet build ``` -> Note: -> -> - Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. -> - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.300\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'" -> - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc. +
    + > + > - Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. + > - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.300\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'" + > - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc. ### Update the Template File diff --git a/programming/maui/user-guide.md b/programming/maui/user-guide.md index 3b552c79..48ec7618 100644 --- a/programming/maui/user-guide.md +++ b/programming/maui/user-guide.md @@ -84,7 +84,7 @@ You need to add the library via the project file and complete additional steps f dotnet build ``` -> Note: +
    > > - Windows system have a limitation of 260 characters in the path. If you don't use console to install the package, you will receive error "Could not find a part of the path 'C:\Users\admin\.nuget\packages\dynamsoft.imageprocessing.ios\2.4.300\lib\net7.0-ios16.1\Dynamsoft.ImageProcessing.iOS.resources\DynamsoftImageProcessing.xcframework\ios-arm64\dSYMs\DynamsoftImageProcessing.framework.dSYM\Contents\Resources\DWARF\DynamsoftImageProcessing'" > - The library only support Android & iOS platform. Be sure that you remove the other platforms like Windows, maccatalyst, etc. @@ -203,7 +203,8 @@ Open the **Info.plist** file under the **Platforms/iOS/** folder (Open with XML Select your device and run the project. -> Note: If you are running Android only on Visual Studio Windows, please manually exclude iOS and Windows platforms. Otherwise, the Visual Studio will report type or namespace not found errors. +
    +> If you are running Android only on Visual Studio Windows, please manually exclude iOS and Windows platforms. Otherwise, the Visual Studio will report type or namespace not found errors. ![Exclude iOS and Windows from targets](../assets/maui-exclude.png) diff --git a/programming/objectivec-swift/faq/arm64-simulator-error.md b/programming/objectivec-swift/faq/arm64-simulator-error.md deleted file mode 100644 index faca27b3..00000000 --- a/programming/objectivec-swift/faq/arm64-simulator-error.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: iOS simulator Error - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, arm64, simulator, exclude architectures -description: How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? - -[<< Back to FAQ index](index.md) - -DBR iOS can be used to build apps that belong to the arm64 architecture. If you try building an app for the arm64 simulator, and you migrated your app from an older version of Xcode to Xcode 12 or higher, then you might encounter the following error message: - -> ld: "Building for iOS Simulator, but linking in dylib built for iOS, file '/ios/Pods/DynamsoftBarcodeReader/DynamsoftBarcodeReader.framework/DynamsoftBarcodeReader' for architecture arm64" - -
    - -In order to fix the error, please take the following steps under the *Build Settings* of the Xcode project: - -1. Under *User-Defined* -> find *VALIDATE_WORKSPACE* and set it to **YES**. Rebuild your project. - -2. Under *Architectures* -> find *Build Active Architecture Only* and set it to **YES**. - -3. Under *Architectures* -> make sure that *Architectures* is set to $(ARCHS_STANDARD). - -
    - -If the error message persists, please make one of the following changes: - -- Instead of using the .framework (which all the samples do by default), switch to using the corresponding .xcframework - -- Under the *Build Settings* -> find *Excluded Architectures* -> in the *Debug* field click the + icon -> select *Any iOS Simulator SDK* -> put "arm64" - -- You can also exclude architectures via the Podfile as such: - - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64" - end - end - ``` - OR - ```ruby - post_install do |installer| - installer.pods_project.build_configurations.each do |config| - config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "uname -m" - end - end - ``` - OR - ```ruby - podspec: - s.pod_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - s.user_target_xcconfig = { 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'arm64' } - ``` - \ No newline at end of file diff --git a/programming/objectivec-swift/faq/armv7-architecture-error.md b/programming/objectivec-swift/faq/armv7-architecture-error.md deleted file mode 100644 index 58532ad0..00000000 --- a/programming/objectivec-swift/faq/armv7-architecture-error.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: Architecture armv7 Error - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, armv7, undefined symbols -description: How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I solve the "Undefined symbols for architecture armv7" error when building on iOS? - -[<< Back to FAQ index](index.md) - -DBR iOS is compatible with the arm64 and x86_64 architectures only. If you attempt to build an app that is targetting the armv7 architecture, you will be met with an error from the Barcode Reader framework saying - -> Undefined symbols for architecture armv7 - -Please note that this will mostly occur with older versions of Xcode or iOS that are still compatible with the older iOS device models that used the armv7 architecture. For most devices that are able to run iOS 11 and higher, the architecture will be arm64. - -By default, when you set the *Architectures* in *Build Settings* to the "$(ARCHS_STANDARD) - Standard Architectures (arm64)", the armv7 architecture should automaticallt not be included. To ensure that your app ignores the armv7 architecture, you can add it to the *Excluded Architectures* field of the *Build Settings*. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/bitcode-support.md b/programming/objectivec-swift/faq/bitcode-support.md deleted file mode 100644 index 7287107c..00000000 --- a/programming/objectivec-swift/faq/bitcode-support.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Bitcode Support - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, bitcode -description: Does the SDK support iOS Bitcode Framework? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Does the SDK support iOS Bitcode Framework? - -[<< Back to FAQ index](index.md) - -Yes, DBR iOS does allow the user to enable bitcode in their project if they would like to. Enabling bitcode can potentially reduce the app's total size. - -In order to enable bitcode, access the *Build Settings* of the project via Xcode and find the *Enable Bitcode* option to toggle it on. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/cordova-signature-error.md b/programming/objectivec-swift/faq/cordova-signature-error.md deleted file mode 100644 index 63e6f78b..00000000 --- a/programming/objectivec-swift/faq/cordova-signature-error.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Cordova Signature Error - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, cordova, invalid signature -description: When building my Cordova app, I get an error saying “invalid signature”. How do I resolve that? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# When building my Cordova app, I get an error saying “invalid signature”. How do I resolve that? - -[<< Back to FAQ index](index.md) - -Once the `ios` platform is added to your Cordova project, you must manually configure the signature of the application on the iOS side of things via the *.xcworkspace* of the app. The *.xcworkspace* can be found in `platforms/ios`. - -After opening the *.xcworkspace*, please go to the “Build Settings” and configure the “Signing & Capabilities” section. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/debug-mode-barcodescannerx.md b/programming/objectivec-swift/faq/debug-mode-barcodescannerx.md deleted file mode 100644 index 4c6a857d..00000000 --- a/programming/objectivec-swift/faq/debug-mode-barcodescannerx.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -layout: default-layout -title: Use Debug Mode - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, debug, ios -description: How to use Debug Mode in Barcode Scanner X? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How to use Debug Mode in Barcode Scanner X? - -[<< Back to FAQ index](index.md) - - -## Debug Mode in BarcodeScannerX - -If you are experiencing app crashes in your own application or you’ve come across some barcode(s) that you can’t read and you have exhausted all of the other troubleshooting methods, Debug Mode of the [BarcodeScannerX](https://www.dynamsoft.com/barcode-reader/sdk-mobile/#appDemo) demo app can help offer one last effort to resolve these issues. - -This next section will explain how to toggle on debug mode on the demo app, and will then dive into how to collect crash logs and/or image samples. - -1. From the home screen, go to Advanced Scan. - - Home screen - -2. Tap the settings icon at the top-right corner. - - Advanced scan - -3. Tap Debug Mode to see the drop-down list. - - Debug mode - -## Debug Mode - Crash Logger - -If you are encountering an app crash caused by Dynamsoft Barcode Reader or Dynamsoft Camera Enhancer SDK, you need to use the Crash Logger. - -1. Toggle on Crash Logger - - Crash toggle on - -2. After Crash Logger is toggled on, please go ahead and scan codes until you reproduce the crash issue. - -3. After the app crashes, re-open BarcodeScannerX app and go to Advanced Scan -> settings. Tap the "Share" button to share the log files with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). - - Crash share - -## Debug Mode - Image Cropper - -If you are having trouble reading barcodes, you should use the Image Cropper to capture some sample image(s) or frame(s) and send them to the Dynamsoft Support Team: - -1. Toggle on Image Cropper - - Image crop toggle on - -2. After Image Cropper is toggled on, an image crop icon will show up at the bottom left of Advanced Scan - - crop - -3. Tap the image crop icon to crop and share the original frames with the [Dynamsoft support team](https://www.dynamsoft.com/contact/?ver=latest). Our support team will investigate the video frames and get back to you with a solution as soon as possible. diff --git a/programming/objectivec-swift/faq/disable-continuous-scanning.md b/programming/objectivec-swift/faq/disable-continuous-scanning.md deleted file mode 100644 index 06ca6070..00000000 --- a/programming/objectivec-swift/faq/disable-continuous-scanning.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: One-off Barcode Scanning - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, continuous scanning, disable -description: How can I implement continuous barcode scanning and one-off barcode scanning? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I implement continuous barcode scanning and one-off barcode scanning? - -[<< Back to FAQ index](index.md) - -Please take advantage of the samples. The Hello World sample is the typical One-off scanning sample. The GeneralSettings sample is the typical continuous scanning sample. - -If you encounter any issues with this feature, please contact the Dynamsoft support team for help. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/drivers-license-extraction.md b/programming/objectivec-swift/faq/drivers-license-extraction.md deleted file mode 100644 index 7a294fed..00000000 --- a/programming/objectivec-swift/faq/drivers-license-extraction.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -layout: default-layout -title: Read Driver's License - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, driver license, info -description: Can I extract the driver’s information from a PDF417 barcode? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Can I extract the driver’s information from a PDF417 barcode? - -[<< Back to FAQ index](index.md) - -View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/Android/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. - -> `DynamsoftCodeParser` library is included in the sample to parse the driver's information from the barcode decoding result. A valid license is required for the `DynamsoftCodeParser` library. diff --git a/programming/objectivec-swift/faq/how-to-enable-qr-model-one.md b/programming/objectivec-swift/faq/how-to-enable-qr-model-one.md deleted file mode 100644 index 1c01535d..00000000 --- a/programming/objectivec-swift/faq/how-to-enable-qr-model-one.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -layout: default-layout -title: QR Code Model 1 - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile demo, QR code, model 1, ios -description: How an I enable QR Code Model 1 support in BarcodeScannerX? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How an I enable QR Code Model 1 support in BarcodeScannerX? - -[<< Back to FAQ index](index.md) - -Nowadays, most QR codes are QR code Model 2. BarcodeScannerX, by default, only support QR code Model 2. If you want to test QR code Model 1 on BarcodeScannerX, here is what you can do: - -1. Visit Dynamsoft barcode reader online demo. -2. Click on Advanced Settings - -
    -

    advanced settings

    -
    - -3. Check **EnableQRCodeModel1**(You can modify any other settings as you like) -4. Save the template. - -
    -

    save template

    -
    - -5. Send the template to Dynamsoft support team. -6. We will generate and send a link to you. -7. Click **Import Template** in the Advanced Scan settings of BarcodeScannerX. Then input the link. -8. Now you can scan QR code Model 1! diff --git a/programming/objectivec-swift/faq/index.md b/programming/objectivec-swift/faq/index.md index ddccb573..62191873 100644 --- a/programming/objectivec-swift/faq/index.md +++ b/programming/objectivec-swift/faq/index.md @@ -86,7 +86,7 @@ func onDecodedBarcodesReceived(_ result: DecodedBarcodesResult) { } ``` -## How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator?](arm64-simulator-error.md) +## How to resolve the "Building for iOS Simulator, but linking in dylib built for iOS" error when building for the iOS simulator? DBR iOS can be used to build apps that belong to the arm64 architecture. If you try building an app for the arm64 simulator, and you migrated your app from an older version of Xcode to Xcode 12 or higher, then you might encounter the following error message: @@ -150,7 +150,8 @@ In the Barcode Scanner X app, please go to the use case scenario that you are in Once you get the templates, you can implement them using the [`initSettings`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) or [`initSettingsFromFile`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) methods, depending on which input method you prefer. -> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. +
    +> The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. ## How can I troubleshoot an image that fails to decode? @@ -167,7 +168,8 @@ Alternatively, here is the general troubleshooting steps: View the [DriversLicenseScanner sample](https://github.com/Dynamsoft/capture-vision-mobile-samples/tree/dcv_v2.6.1003/ios/DriversLicenseScanner){:target="_blank"} for how to decode the PDF417 barcode on the driver's license and parse the driver's information. -> Note: Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. +
    +> Parsing the driver's information is an additional feature that requires a [DCV license](https://www.dynamsoft.com/customer/license/trialLicense/?product=cvs&utm_source=github&package=mobile){:target="_blank"}. ## How to use Debug Mode in Barcode Scanner X? diff --git a/programming/objectivec-swift/faq/min-system-requirements.md b/programming/objectivec-swift/faq/min-system-requirements.md deleted file mode 100644 index f34bade8..00000000 --- a/programming/objectivec-swift/faq/min-system-requirements.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -layout: default-layout -title: Minimum system requirements - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, requirements -description: What are the minimum system requirements of Dynamsoft Barcode Reader iOS? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# What are the minimum system requirements of Dynamsoft Barcode Reader iOS? - -[<< Back to FAQ index](index.md) - -For iOS, DBR supports the following: - -* Supported OS: **iOS 11** or higher (**iOS 13** and higher recommended). -* Supported ABI: **arm64** and **x86_64**. -* Development Environment: Xcode 13 and above (Xcode 14.1+ recommended). - -Please note that the **armv7** architecture is not supported. If you are doing a general build for all iOS devices, make sure to exclude it in the build settings. - -The x86_64 architecture usually coresponds to the simulator. Please note that in order to use the simulator, you must use the **xcframework** instead of the **framework**. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/no-camera-enhancer.md b/programming/objectivec-swift/faq/no-camera-enhancer.md deleted file mode 100644 index 7b7e12b6..00000000 --- a/programming/objectivec-swift/faq/no-camera-enhancer.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -layout: default-layout -title: Use AVCaptureSession or Third-party Camera - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, requirements -description: How to use AVCaptureSession or Third-party Camera Modules with Dynamsoft Barcode Reader? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I use AVCaptureSession or third-party camera modules with Dynamsoft Barcode Reader? - -[<< Back to FAQ index](index.md) - -## AVCaptureSession - -If you are using the CameraX, you can view [HelloWorld/DecodeWithAVCaptureSession sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/v10.4.2002/ios/HelloWorld) for a quick start. - -## Third-Party Camera Module - -If you are using a third-party camera module, what you have to do is: - -- Create a class that extends [DSImageSourceAdapter]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). In this class, you need to implement the video capture features and the [`getImage`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html#getimage) method of [`DSImageSourceAdapter`]({{ site.dcvb_ios_api }}core/basic-structures/image-source-adapter.html). -- Create an instance of your camera class. -- Create an instance of the [`DSCaptureVisionRouter`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html) class. Then trigger the [`setInput`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#setinput) method with the instance of your camera class as the parameter. -- Trigger the [`startCapturing`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#startcapturing) method to start the barcode decoding. diff --git a/programming/objectivec-swift/faq/page-freeze.md b/programming/objectivec-swift/faq/page-freeze.md deleted file mode 100644 index bd62b267..00000000 --- a/programming/objectivec-swift/faq/page-freeze.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Solve Page Freeze - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, freeze, page -description: Why does the page sometimes freeze when I start the scanner? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Why does the page sometimes freeze when I start the scanner? - -[<< Back to FAQ index](index.md) - -Before a barcode reader instance can be created, a one-time connection for license validation needs to occur when the app initializes (or whenever the license is set before the barcode reader instance creation). Sometimes, this license validation could take a second to complete. - -A potential "freeze" of the page can occur if [`LicenseManager.initLicense()`]({{ site.dcvb_ios_api }}license/license-manager.html#initlicense) is called multiple times in a single process. For example, we have seen some Swift users call `initLicense` both in the ViewController file as well as AppDelegate. We recommend doing it in the AppDelegate file, and as long at it is not called in both files, then the implementation should be fine. - -Please make sure that `initLicense` is called only once in your code. diff --git a/programming/objectivec-swift/faq/reduce-battery-consumption.md b/programming/objectivec-swift/faq/reduce-battery-consumption.md deleted file mode 100644 index 4131c6b2..00000000 --- a/programming/objectivec-swift/faq/reduce-battery-consumption.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Reduce Battery Consumption - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, battery, consumption -description: How can I reduce battery consumption? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I reduce battery consumption? - -[<< Back to FAQ index](index.md) - -If you are finding that the battery of your phone is being heavily consumed when using the Barcode Reader, there are a couple of things that you can do to potentially reduce the battery consumption, depending on the usage situation. - -For a non-continuous video scanning scenario, make sure to call the [stopCapturing]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#stopcapturing) method when the video scanning is no longer required. - -For a continuous video scanning scenario, configure the [minImageCaptureInterval]({{ site.dcvb_ios_api }}capture-vision-router/auxiliary-classes/simplified-capture-vision-settings.html) attribute of `DSSimplifiedCaptureVisionSettings` class to set a higher value for the interval in order to reduce the frequency of fetching frames, thus reducing the number of scans per unit time, and thus, less resources needing to be consumed. You can dynamically adjust `minImageCaptureInterval` as needed to achieve the performance you are looking for. diff --git a/programming/objectivec-swift/faq/simulator-support.md b/programming/objectivec-swift/faq/simulator-support.md deleted file mode 100644 index d4803ecd..00000000 --- a/programming/objectivec-swift/faq/simulator-support.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -layout: default-layout -title: iOS Simulator Support - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, simulator, camera -description: Does Dynamsoft Barcode Reader iOS Support Simulator Devices? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# Does Dynamsoft Barcode Reader iOS support simulator devices? - -[<< Back to FAQ index](index.md) - -Yes, Dynamsoft Barcode Reader iOS can support simulator devices, but in a very limited capacity. If you are only working with existing images in the device's photo library, and there is **no use of the camera whatsoever**, then DBR iOS can work just fine on a simulator. - -If you are attempting to test the SDK in an interactive video scenario, you will most likely encounter a UI unresponsiveness error that is caused by the camera open command in the code. More specifically, when the Camera Enhancer object call for the camera to open using the [open](https://www.dynamsoft.com/camera-enhancer/docs/mobile/programming/ios/primary-api/camera-enhancer.html#open) method. - -Please note that DCE is currently not compatible with the simulator as the required use of a camera cannot be satisfied via the simulator. - -However, if you have a Mac M1 machine (or a later model) then you can test your application on the Mac M1 machine directly via Xcode. In order to do that, please select *My Mac (designed for iPhone/iPad)* in the dropdown menu when selecting the target device. \ No newline at end of file diff --git a/programming/objectivec-swift/faq/template-support.md b/programming/objectivec-swift/faq/template-support.md deleted file mode 100644 index 1b318a0e..00000000 --- a/programming/objectivec-swift/faq/template-support.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -layout: default-layout -title: Extract Templates - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, template, driver license, settings -description: How to import the settings of Barcode Scanner X app into my app? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How to import the settings of Barcode Scanner X app into my app? - -[<< Back to FAQ index](index.md) - -In the Barcode Scanner X app, please go to the use case scenario that you are interested. On the right-bottom, tap on "Export Template". - -Once you get the templates, you can implement them using the [`initSettings`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) or [`initSettingsFromFile`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html) methods, depending on which input method you prefer. - -> Note: The barcode scanner X is still using DBR v9.6.20 algorithm. You have to convert the exported template into v10.x before initializing it. [Download the converter](https://download2.dynamsoft.com/dcv/TemplateConverter.zip){:target="_blank"}. diff --git a/programming/objectivec-swift/faq/troubleshooting-failed-image.md b/programming/objectivec-swift/faq/troubleshooting-failed-image.md deleted file mode 100644 index 0a131eb6..00000000 --- a/programming/objectivec-swift/faq/troubleshooting-failed-image.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -layout: default-layout -title: Image Not Decoded - DBR iOS FAQs. -keywords: Dynamsoft Barcode Reader, FAQ, Mobile, tech basic, ios, template, driver license, settings -description: How can I troubleshoot an image that fails to decode? - DBR iOS FAQs. -needAutoGenerateSidebar: true ---- - -# How can I troubleshoot an image that fails to decode? - -[<< Back to FAQ index](index.md) - -If the barcode is not recognized by Dynamsoft Barcode Reader, please do not hesitate to contact Dynamsoft support team. - -Alternatively, here is the general troubleshooting steps: - -1. Please ensure the lighting is not very bright or very dim. -2. Please ensure the aiming barcode format has been checked on.(Advanced Scan -> settings -> Barcode Format -> check the barcode formats) -3. We can decrease the Confidence level to increase the read rate.(Advanced Scan -> settings -> Result Settings -> Set Confidence Level to 10) -4. We can increase the deblur level to increase the read rate.(Advanced Scan -> settings -> Additional Settings -> increase DeblurLevel) diff --git a/programming/objectivec-swift/foundational-guide.md b/programming/objectivec-swift/foundational-guide.md index 8e28f310..98e0dbd2 100644 --- a/programming/objectivec-swift/foundational-guide.md +++ b/programming/objectivec-swift/foundational-guide.md @@ -68,7 +68,7 @@ There are three ways to add the SDK into your project - **Manually**, via **Coco In this section, let's create a **HelloWorld** app for reading barcodes from camera video input. -> Note: +
    > >- XCode 14.2 is used here in this guide. >- You can download the complete Swift source code from [DecodeWithCameraEnhancer Sample](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/ios/FoundationalAPISamples/DecodeWithCameraEnhancer){:target="_blank"} @@ -142,7 +142,7 @@ Dynamsoft Barcode Reader needs a valid license to work. } ``` - >Note: +
    > >- Network connection is required for the license to work. >- The license string here will grant you a time-limited trial license. @@ -406,6 +406,28 @@ If your iOS version is less than 13, please add the following additional steps: } ``` +### (Optional) Manually Releasing Deep Learning Models + +Starting from v11.2.1000, Dynamsoft Barcode Reader integrates deep learning models to enhance decoding ability. Once initialized, these models remain cached in memory until they are explicitly released. If the decoding task has finished, call `clearDLModelBuffers` to free the associated memory. + +
    +>- Objective-C +>- Swift +> +>1. +```objc +- (void)dealloc { + [CaptureVisionRouter clearDLModelBuffers]; +} +``` +2. +```swift +deinit +{ + CaptureVisionRouter.clearDLModelBuffers() +} +``` + ### Run the Project 1. Select the device that you want to run your app on. **Please note that you will require a physical device to run the application on.** If you run the app on a simulator, you will experience some errors at runtime as a physical camera component is required. *If you have an M1 Macbook (or a later model) you can run the app on your Macbook directly as it has the same architecture as your iPhone/iPad.* diff --git a/programming/objectivec-swift/index.md b/programming/objectivec-swift/index.md index f4a1140c..f6b464bb 100644 --- a/programming/objectivec-swift/index.md +++ b/programming/objectivec-swift/index.md @@ -47,7 +47,8 @@ You can either get a quick start with the [BarcodeScanner APIs](api-reference/ba

    barcode-scanner

    -> Note: If you are looking for a solution to scan large batches of barcodes, please refer to the [`BatchBarcodeScanner`](https://www.dynamsoft.com/use-cases/batch-barcode-scanning/){:target="_blank"}. The `BatchBarcodeScanner` has much higher ability on scanning large number of barcodes. It also provides you a highly interactable UI for result previewing, editing, saving, reusing and sharing. +
    +> If you are looking for a solution to scan large batches of barcodes, please refer to the [`BatchBarcodeScanner`](https://www.dynamsoft.com/use-cases/batch-barcode-scanning/){:target="_blank"}. The `BatchBarcodeScanner` has much higher ability on scanning large number of barcodes. It also provides you a highly interactable UI for result previewing, editing, saving, reusing and sharing. - [Build your First APP](user-guide.md) - [Configure your Barcode Scanner](user-guide/configure-barcode-scanner.md) diff --git a/programming/objectivec-swift/release-notes/index.md b/programming/objectivec-swift/release-notes/index.md index 77dc40e0..35115e11 100644 --- a/programming/objectivec-swift/release-notes/index.md +++ b/programming/objectivec-swift/release-notes/index.md @@ -10,6 +10,7 @@ permalink: /programming/objectivec-swift/release-notes/ # Dynamsoft Barcode Reader iOS SDK - Release Notes +- [11.2.1000 (10/16/2025)]({{ site.oc_release_notes }}ios-11.html#1121000-10162025) - [11.0.5200 (08/18/2025)]({{ site.oc_release_notes }}ios-11.html#1105200-08182025) - [11.0.5100 (08/05/2025)]({{ site.oc_release_notes }}ios-11.html#1105100-08052025) - [11.0.5000 (07/29/2025)]({{ site.oc_release_notes }}ios-11.html#1105000-07292025) diff --git a/programming/objectivec-swift/release-notes/ios-11.md b/programming/objectivec-swift/release-notes/ios-11.md index f0fbb129..3eec256a 100644 --- a/programming/objectivec-swift/release-notes/ios-11.md +++ b/programming/objectivec-swift/release-notes/ios-11.md @@ -10,6 +10,55 @@ noTitleIndex: true # Release Notes for iOS SDK - 11.x +## 11.2.1000 (10/16/2025) + +🎉 **Milestone Release** - This version introduces groundbreaking AI-powered enhancements that significantly improve accuracy and performance across all barcode and MRZ processing scenarios. + +### ✨ Key Highlights + +**AI-Powered Detection & Decoding** + +- 🧠 **First-to-Market AI Localization**: Revolutionary `OneDLocalization` and `DataMatrixQRCodeLocalization` neural network models for superior detection of **blurred/low-resolution 1D codes** and **DataMatrix/QR codes with missing or damaged finder patterns**. +- ⚡ **Specialized Decoders**: Cutting-edge `EAN13Decoder` and `Code128Decoder` models deliver unprecedented accuracy for **blurred and long-distance** scenarios. +- 🔍 **Enhanced Clarity Processing**: Completely redesigned `OneDDeblur` model with superior **motion blur and focus blur** recovery algorithms. +- 🎯 **Flexible Model Configuration**: Advanced [`ModelNameArray`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#mode-arguments) parameter enables on-demand model loading and precise selection for specific barcode scenarios. + +**Precision Control** + +- ⚙️ **Granular Deblur Methods**: Fine-tuned [`DM_DEEP_ANALYSIS`]({{ site.dcvb_parameters_reference }}barcode-reader-task-settings/deblur-modes.html#dm_deep_analysis) with specialized method control - `OneDGeneral`, `TwoDGeneral`, and `EAN13Enhanced` for targeted optimization. +- 🎯 **Smart Barcode Counting**: New [`ExpectedBarcodesCount`]({{ site.dcvb_parameters_reference }}barcode-format-specification/expected-barcodes-count.html) parameter enables **format-specific quantity control** and **early termination optimization** for known-quantity scenarios. +- 🔍 **Advanced Region Detection**: New [`RPM_GRAY_CONSISTENCY`]({{ site.dcvb_parameters_reference }}image-parameter/region-predetection-modes.html#rpm_gray_consistency) mode enables precise region detection based on **grayscale uniformity** and **local consistency** for document and label processing. + +### 💡 What This Means for You + +**For Challenging Barcode Scenarios** + +- **Blurred conditions**: 26.5% better read rates with 44% faster processing - ideal for handheld scanning and moving objects. +- **Extended distance capability**: Breakthrough support for reading distances beyond 75cm - revolutionizing warehouse automation and high-shelf scanning. +- **Damaged 2D codes**: Enhanced detection of DataMatrix and QR codes with missing or damaged finder patterns - perfect for manufacturing and logistics applications. + +**For Enterprise Integration** + +- **Retail environments**: Enhanced performance for blurred handheld scanning and long-distance shelf reading. +- **Logistics & shipping**: Improved recognition for package tracking with better blur and long-distance scanning capabilities. +- **Manufacturing QC**: Improved 2D code reading on printed/etched parts with wear damage. + +**For Developers** + +- **Backward Compatible**: Seamless upgrade with existing code and easy migration path. +- **Flexible Configuration**: Extensive parameter customization for specific use cases and comprehensive model configuration options. +- **Enterprise Ready**: Battle-tested stability for production environments. + +### Changed + +- Added a new method, [`switchCapturingTemplate`]({{ site.dcvb_ios_api }}capture-vision-router/multiple-file-processing.html#switchcapturingtemplate), which allows switching templates dynamically during the image processing workflow. +- Added a new method, [`clearDLModelBuffers`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html#cleardlmodelbuffers), to release memory by clearing buffered deep learning models. +- Added a new method, [`setGlobalIntraOpNumThreads`]({{ site.dcvb_ios_api }}capture-vision-router/settings.html#setglobalintranumthreads), to configure the global number of threads used for model execution. +- Added a new button, `cameraToggleButton`, to the `CameraView`, allowing users to switch between the front and back cameras. +The following APIs are provided for configuring the `cameraToggleButton`: + - [`setCameraToggleButton`]({{ site.dce_ios }}auxiliary-api/dcecameraview.html#setcameratogglebutton) + - [`cameraToggleButtonVisible`]({{ site.dce_ios }}auxiliary-api/dcecameraview.html#cameratogglebuttonvisible) + ## 11.0.5200 (08/18/2025) ### Fixed diff --git a/programming/objectivec-swift/upgrade.md b/programming/objectivec-swift/upgrade.md index 3a5a4696..7f7aafc1 100644 --- a/programming/objectivec-swift/upgrade.md +++ b/programming/objectivec-swift/upgrade.md @@ -40,7 +40,8 @@ There are three ways in which you can include the `DynamsoftBarcodeReaderBundle` end ``` - > Note: Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. +
    + > Please view [user guide](user-guide.md#option-1-add-the-library-via-maven) for the correct version number. 2. Execute the pod command to install the frameworks and generate workspace(**[TargetName].xcworkspace**): diff --git a/programming/objectivec-swift/user-guide.md b/programming/objectivec-swift/user-guide.md index c41c18b6..75889b7c 100644 --- a/programming/objectivec-swift/user-guide.md +++ b/programming/objectivec-swift/user-guide.md @@ -12,7 +12,7 @@ noTitleIndex: true This user guide will walk through the [ScanSingleBarcode](https://github.com/Dynamsoft/barcode-reader-mobile-samples/tree/main/ios/BarcodeScannerAPISamples/) sample app. When creating your own project, please use this sample as a reference. This guide uses [`BarcodeScanner`](api-reference/barcode-scanner/index.md) API which aim to elevate the UI creation process with less code and offer a more pleasant and intuitive UI for your app. -> Note: +
    > > This guide aims at scanning a single barcode with the `BarcodeScanner` component. > @@ -201,7 +201,7 @@ The first major step in code configuration is to include a valid license in the } ``` - >Note: +
    > >- The license string here grants a time-limited free trial which requires network connection to work. >- You can request a 30-day trial license via the [Request a Trial License](https://www.dynamsoft.com/customer/license/trialLicense?product=dbr&utm_source=guide&package=ios){:target="_blank"} link. @@ -371,13 +371,35 @@ config.isScanLaserVisible = false config.isAutoZoomEnabled = true ``` -### Step 6: Run the Project +### Step 6: Manually Releasing Deep Learning Models (optional) + +Starting from v11.2.1000, Dynamsoft Barcode Reader integrates deep learning models to enhance decoding ability. Once initialized, these models remain cached in memory until they are explicitly released. If the decoding task has finished, call `clearDLModelBuffers` to free the associated memory. + +
    +>- Objective-C +>- Swift +> +>1. +```objc +vc.onScannedResult = ^(DSBarcodeScanResult *result) { + [DSCaptureVisionRouter clearDLModelBuffers]; +}; +``` +2. +```swift +vc.onScannedResult = { [weak self] result in + CaptureVisionRouter.clearDLModelBuffers() +} +``` + +### Step 7: Run the Project Now that the code has been written, it's time to run the project. The first thing that needs to be done is to configure the *Signing & Capabilities* section of the project. After you complete this section, move to the *Info* section of the project settings. In the *Info* section, please make sure that the "Privacy - Camera Usage Description" key is included in the list. In order to run the project, you will require a physical iOS device. Once the device is connected, you should see it as an available device in top bar. After selecting the device from the menu, all you need to do is click the Run button. -> Note: If you try running the project on a simulator, you will encounter errors as this sample uses the device camera which is unavailable when using the simulator. +
    +> If you try running the project on a simulator, you will encounter errors as this sample uses the device camera which is unavailable when using the simulator. ## Conclusion