diff --git a/README.md b/README.md index f62a64a0..791afe48 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ A default license is included which allows you to test the sample apps for up to ## Documentation -For the developer guide and full API reference of Dynamsoft Barcode Reader JavaScript library, please check out the [documentation](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/?ver=11.0.3000&utm_source=sampleReadme). +For the developer guide and full API reference of Dynamsoft Barcode Reader JavaScript library, please check out the [documentation](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/?ver=11.0.6000&utm_source=sampleReadme). ## Support @@ -47,6 +47,8 @@ Get the basic features working with plain/native JavaScript or within a framewor * [**Scan Single Barcode**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/hello-world.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-single-barcode/hello-world.html?utm_source=sampleReadme): Scan single barcode from video stream with minimum code in JavaScript. * [**Scan And Search**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html?utm_source=sampleReadme): Scan a barcode to retrieve the relevant product information from the database in JavaScript. +* [**Pick One to Fill**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.html?utm_source=sampleReadme): Pick one and auto-fill fields by simply opening the camera and scanning a group of barcodes. +* [**Use Customized Template**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.html?utm_source=sampleReadme): Use different customized templates for scanning various barcode types. * [**Hello World in Angular**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/angular): Read single barcode from camera in an Angular application. * [**Hello World in React**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/react): Read single barcode from camera in a React application. * [**Hello World in Vue**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/vue): Read single barcode from camera in a Vue application. @@ -55,6 +57,7 @@ Get the basic features working with plain/native JavaScript or within a framewor * [**Scan Multiple Barcodes**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/main/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html?utm_source=sampleReadme): Scan barcodes from video stream with minimum code in JavaScript. * [**Cart Builder**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/main/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html?utm_source=sampleReadme): Simulates a shopping experience where users scan barcodes to add items to a dynamic cart in JavaScript. +* [**Batch Inventory**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/blob/main/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.html?utm_source=sampleReadme): An inventory management tool scan barcodes in batches and provide real-time analysis of the scanned data. ### Foundational API samples @@ -83,6 +86,7 @@ Get the basic features of the library working with plain/native JavaScript or wi * [**Read a Driver's License**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/foundational-api-samples/use-case/read-a-drivers-license/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/foundational-api-samples/use-case/read-a-drivers-license/index.html?utm_source=sampleReadme): Read the PDF417 barcode on a driver's license (AAMVA compliant) and parse it. * [**Show Result Texts on the Video**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/foundational-api-samples/use-case/show-result-texts-on-the-video.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/foundational-api-samples/use-case/show-result-texts-on-the-video.html?utm_source=sampleReadme): Read barcodes via camera and show result texts on the video. * [**Locate an Item with Barcode**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/foundational-api-samples/use-case/locate-an-item-with-barcode/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/foundational-api-samples/use-case/locate-an-item-with-barcode/index.html?utm_source=sampleReadme): Find a specific item in a large collection by scanning its unique barcode +* [**Read and Parse GS1-AI**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.html) - [run↗](https://demo.dynamsoft.com/samples/dbr/js/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.html?utm_source=sampleReadme): Read GS1 Application Identifier (AI) barcode and parse its structured data. ***Others*** diff --git a/barcode-scanner-api-samples/scan-multiple-barcodes/README.md b/barcode-scanner-api-samples/scan-multiple-barcodes/README.md index e2ad24c2..459a5e41 100644 --- a/barcode-scanner-api-samples/scan-multiple-barcodes/README.md +++ b/barcode-scanner-api-samples/scan-multiple-barcodes/README.md @@ -25,7 +25,7 @@ const config = { license: "YOUR-LICENSE-KEY", engineResourcePaths: { // feel free to change it to your own path - rootDirectory: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.3000/dist/", + rootDirectory: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.6000/dist/", }, container: ".barcode-scanner-view", scanMode: Dynamsoft.EnumScanMode.SM_MULTI_UNIQUE, @@ -68,6 +68,40 @@ The UI features a "Scan Barcode" button, a styled cart, and basic interactivity A list of 20 dummy products is used, with each scan randomly adding a product to the cart showing its name, shortened barcode, and price. +## πŸ›’ 3. Batch inventory + +This project is a simple web-based inventory management tool that uses `BarcodeScanner` to scan barcodes in batches and provide real-time analysis of the scanned data. + +### ✨ Features + +- Automatically deduplicate barcodes in each session + +- Show session summary: + - Total unique barcodes + - Barcode type distribution + - Session duration + +- Track duration of each scan session + +### πŸ”§ How It Works + +- The scanner is embedded using `BarcodeScanner` with `SM_MULTI_UNIQUE` mode to capture unique barcodes. + +- Once the scan completes, the results are analyzed. + +- You can click the back arrow to restart scanning. + +### πŸ“Œ Notes + +- The barcode value must be unique, otherwise it won’t be counted. + +- Applicable scenarios may include: + + - Warehouse inventory checks + - Retail stock intake + - Barcode-based asset tracking + - Batch QR code scanning + ## πŸ“„ See other BarcodeScanner samples Multiple samples are provided for single barcode scanning. These samples can be easily adapted to scan multiple unique barcodes by simply updating the `config` object. diff --git a/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.css b/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.css new file mode 100644 index 00000000..0a3eb808 --- /dev/null +++ b/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.css @@ -0,0 +1,160 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + min-width: 300px; + font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif; +} + +.barcode-reader-view { + width: 100%; + height: 100%; + position: fixed; + top: 0; + left: 0; +} + +.summary-view { + width: 100%; + height: 100%; + font-size: 21px; + color: #ffffff; + display: flex; + flex-direction: column; + position: absolute; + display: none; +} + +.summary-view header { + width: 100%; + height: 50px; + display: flex; + justify-content: center; + align-items: center; + position: relative; + background-color: #202020; +} + +.summary-view header .icon-back { + position: absolute; + top: 50%; + left: 20px; + transform: translateY(-50%); + cursor: pointer; +} + +.summary-view .summary-container { + width: 100%; + height: calc(100% - 50px); + flex: 1; + display: flex; + flex-direction: column; + overflow: hidden; +} + +.summary-view .total-unique-barcodes-count { + width: 100%; + height: 10%; + max-height: 80px; + min-height: 30px; + border-bottom: 1px solid #CCCCCC; + padding: 0 25px; + font-size: 16px; + color: #323234; + font-weight: 600; + white-space: nowrap; + display: flex; + justify-content: space-between; + align-items: center; +} + +.summary-view .session { + width: 100%; + flex: 1; + padding-left: 25px; + display: flex; + flex-direction: column; + overflow: hidden; + background-color: #F5F5F5; +} + +.summary-view .session .total-count-in-this-session { + width: 100%; + height: 10%; + max-height: 70px; + min-height: 30px; + font-size: 16px; + color: #323234; + font-weight: 600; + border-bottom: 1px solid #CCCCCC; + padding-right: 25px; + display: flex; + justify-content: space-between; + align-items: center; +} + +.summary-view .session .code-type-distribution { + width: 100%; + border-bottom: 1px solid #CCCCCC; + display: flex; + flex-direction: column; + flex: 1; + overflow: hidden; +} + +.summary-view .session .code-type-distribution .title { + width: 100%; + height: 8%; + max-height: 70px; + min-height: 30px; + font-size: 16px; + font-weight: 600; + color: #323234; + display: flex; + align-items: center; +} + +.summary-view .session .code-type-distribution .result-list { + color: #323234; + font-size: 16px; + margin-bottom: 10px; + flex: 1; + overflow-y: auto; +} + +.summary-view .session .code-type-distribution .result-list li { + list-style: none; + line-height: 40px; + padding-right: 25px; +} + +.summary-view .session .code-type-distribution .result-list li .decode-count { + float: right; +} + +.summary-view .duration { + width: 100%; + height: 8%; + max-height: 70px; + min-height: 30px; + font-size: 16px; + font-weight: 600; + color: #323234; + padding: 0 25px; + display: flex; + justify-content: space-between; + align-items: center; + background-color: #F5F5F5; +} + +.summary-view .duration .time { + float: right; + font-weight: 400; + font-size: 18px; +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.html b/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.html new file mode 100644 index 00000000..94578a6e --- /dev/null +++ b/barcode-scanner-api-samples/scan-multiple-barcodes/batch-inventory/index.html @@ -0,0 +1,154 @@ + + + + + + + Batch Inventory with BarcodeScanner + + + + + + + + +
+
+
+ + + + Summary +
+
+
+ Total Unique Barcodes Count + 0 +
+
+
+ Total Count in This Session + 0 +
+
+
Code Type Distribution
+
    +
    +
    +
    + Duration + +
    +
    +
    + + + + + \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html b/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html index c66911dd..76406105 100644 --- a/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html +++ b/barcode-scanner-api-samples/scan-multiple-barcodes/cart-builder.html @@ -7,7 +7,7 @@ List-Builder - Scan to Cart Simulation - + diff --git a/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html b/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html index ea8dabc1..d92062b5 100644 --- a/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html +++ b/barcode-scanner-api-samples/scan-multiple-barcodes/hello-world.html @@ -8,7 +8,7 @@ Dynamsoft Barcode Scanner Sample - Hello World (Decode via Camera) - + @@ -69,8 +69,6 @@

    // Enable an "Upload Image" button for scanning barcodes from existing images showUploadImageButton: true, - // showPoweredByDynamsoft: false, - // Additional configuration for the scanner UI scannerViewConfig: { // showCloseButton: false, // Uncomment to show a close button in the scanner UI diff --git a/barcode-scanner-api-samples/scan-single-barcode/README.md b/barcode-scanner-api-samples/scan-single-barcode/README.md index fd1f8e60..cc0d3c48 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/README.md +++ b/barcode-scanner-api-samples/scan-single-barcode/README.md @@ -1,4 +1,4 @@ -# πŸ“¦ Scan Single Barcode +# πŸ“¦ Scan Single Barcode ## πŸš€ 1.Hello World @@ -23,7 +23,7 @@ const config = { license: "YOUR-LICENSE-KEY", engineResourcePaths: { // feel free to change it to your own path - rootDirectory: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.3000/dist/", + rootDirectory: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.6000/dist/", }, container: ".barcode-scanner-view", }; @@ -43,7 +43,7 @@ barcodeScanner.launch(); ## πŸ›’ 2. Scan and Search -This simple demonstrates how to use the `BarcodeScanner` API from the [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/) to scan a product barcode and simulate a search from a product database. +This simple demonstrates how to use the `BarcodeScanner` API to scan a product barcode and simulate a search from a product database. ### ✨ Features @@ -52,7 +52,7 @@ This simple demonstrates how to use the `BarcodeScanner` API from the [Dynamsoft - Displays mock product data as search results - Responsive UI with modern styling -### πŸ”§ How It Works +### πŸ”„ Sample Usage Flow 1. Click the Scan button to launch the barcode scanner. 2. Once a barcode is detected, its value is displayed along with placeholder product information. @@ -64,6 +64,68 @@ This simple demonstrates how to use the `BarcodeScanner` API from the [Dynamsoft - No real backend is connected in this demo; results are mocked. - You can integrate with a real product API by replacing the placeholder content in the searchResult.value. +## πŸ“· 3. Pick One To Fill + +A web-based form-filling utility that uses the `BarcodeScanner` to scan and auto-fill fields by simply opening the camera and scanning a barcode. + +### ✨ Features + +- Field-specific Camera Activation +Open the camera individually for different fields. + +- Manual control when to start decoding +Start decoding manually after aiming at the target to reduce the risk of misreads and missed barcodes. + +- Auto-Fill with Scan Result +Automatically populates input fields with scanned barcode values. + +### πŸ”„ Sample Usage Flow + +1. Click the "Open Camera" button to activate the camera. + +2. Aim at the sample image shown below. + +3. Click the "Decode" button to start barcode recognition. + +4. If only one barcode is detected, its value will be automatically filled into the corresponding field. + If multiple barcodes are detected, the video stream will freeze, and you’ll need to manually select one from the decoded results to fill in. + +### πŸ“Œ Notes + +- This usage is especially suitable for scenarios with densely packed barcodes, where secondary confirmation or manual selection is highly needed. +- You can find a sample reference image in `./pick-one-to-fill/`. + +## πŸŽ₯ 4. Use Customized Template + +This is a sample web application demonstrating how to use the `BarcodeScanner` with different customized templates for scanning various barcode types. + +It allows users to dynamically select a scanning template (e.g., DPM, Dot Code, OneD Retail, OneD Industrial), and launch a camera-based barcode scanner accordingly. + +### ✨ Features + +- Support for custom barcode scanning templates using local JSON files. + +- Easily switch between different template configurations. + +### πŸ”„ Sample Usage Flow + +1. Open the HTML file in a browser. The app will automatically initialize the scanner using the ReadDPM template. + +2. Choose from the available templates: + - Direct Part Marking (DPM) + - Dot Code + - OneD Retail + - OneD Industrial + + Scanner Loads with Selected Template. When a new template is selected, the scanner is re-initialized using the corresponding .json file. + +3. Point your camera at a barcode matching the selected template type. A popup alert will display the result upon successful detection. + +### πŸ“Œ Notes + +- The scanner is disposed and recreated every time a different template is selected, ensuring the correct settings are applied. +- You can find sample images in `./use-customized-template/`. + ## πŸ“„ See other BarcodeScanner samples * [**Hello World in Angular**](https://github.com/Dynamsoft/barcode-reader-javascript-samples/tree/main/barcode-scanner-api-samples/scan-single-barcode/angular): Read single barcode from camera in an Angular application. diff --git a/barcode-scanner-api-samples/scan-single-barcode/angular/package.json b/barcode-scanner-api-samples/scan-single-barcode/angular/package.json index 23292597..1a14307c 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/angular/package.json +++ b/barcode-scanner-api-samples/scan-single-barcode/angular/package.json @@ -17,7 +17,7 @@ "@angular/platform-browser": "^19.2.0", "@angular/platform-browser-dynamic": "^19.2.0", "@angular/router": "^19.2.0", - "dynamsoft-barcode-reader-bundle": "11.0.3000", + "dynamsoft-barcode-reader-bundle": "11.0.6000", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.15.0" diff --git a/barcode-scanner-api-samples/scan-single-barcode/angular/src/app/app.component.ts b/barcode-scanner-api-samples/scan-single-barcode/angular/src/app/app.component.ts index 5fe86552..381b1621 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/angular/src/app/app.component.ts +++ b/barcode-scanner-api-samples/scan-single-barcode/angular/src/app/app.component.ts @@ -19,10 +19,9 @@ export class AppComponent { container: this.scannerView.nativeElement, // Specify where to render the scanner UI // Specify the path for the definition file "barcode-scanner.ui.xml" for the scanner view. - uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.3000/dist/", + uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.6000/dist/", // showUploadImageButton: true, - // showPoweredByDynamsoft: false, // scannerViewConfig: { // showFlashButton: true, // cameraSwitchControl: "toggleFrontBack", diff --git a/barcode-scanner-api-samples/scan-single-barcode/hello-world.html b/barcode-scanner-api-samples/scan-single-barcode/hello-world.html index 2bfb4b7b..fc0ade20 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/hello-world.html +++ b/barcode-scanner-api-samples/scan-single-barcode/hello-world.html @@ -9,7 +9,7 @@ - + @@ -60,7 +60,6 @@

    container: document.querySelector(".barcode-scanner-view"), // Specify where to render the scanner UI // showUploadImageButton: true, - // showPoweredByDynamsoft: false, // scannerViewConfig: { // showFlashButton: true, // cameraSwitchControl: "toggleFrontBack", diff --git a/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.css b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.css new file mode 100644 index 00000000..b74c0282 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.css @@ -0,0 +1,112 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif; +} + +input { + height: 100%; + flex: 1; + min-width: 0; + border: 1px solid #AAAAAA; + padding: 0 5px; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +.container { + width: 100%; + height: 100%; + display: flex; + flex-direction: column; +} + +.container .barcode-scanner-view { + width: 100%; + height: 60%; + display: none; +} + +.container .guide-view { + width: 100%; + height: 60%; + background-color: #202020; + display: flex; + justify-content: center; + align-items: center; + padding: 0 50px; + color: #5D5D5D; + font-size: 16px; + text-align: center; +} + +.container .form-view { + width: 100%; + height: 40%; + display: flex; + flex-direction: column; + justify-content: space-around; + align-items: center; +} + +.container .form-view .item { + width: calc(100% - 30px); + height: 42px; + display: flex; + align-items: center; +} + +.container .form-view .item .content { + width: 83%; + height: 100%; + display: flex; +} + +.container .form-view .sn .content input, +.container .form-view .mac .content input, +.container .form-view .eid .content input { + border-right: unset; + border-top-right-radius: 0; + border-bottom-right-radius: 0; +} + +.container .form-view .item .title { + width: 17%; + height: 100%; + display: flex; + align-items: center; +} + +.container .form-view .item .content .open-btn, +.container .form-view .item .content .decode-btn { + height: 100%; + border: unset; + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; + color: #FFFFFF; + font-size: 16px; + font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif; + cursor: pointer; +} + +.container .form-view .item .content .open-btn { + width: 35%; + background-color: #306877; +} + +.container .form-view .item .content .decode-btn { + width: 50%; + background-color: #FE8E14; + display: none; +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.html b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.html new file mode 100644 index 00000000..0c4fc783 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/index.html @@ -0,0 +1,112 @@ + + + + + + + Pick One To Fill with BarcodeScanner + + + + + + + + +
    + +
    +
    + Please click the "Open Camera" button below to open the scanning interface. +
    + +
    +
    + + +
    +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    + +
    + + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/package-label.png b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/package-label.png new file mode 100644 index 00000000..349d76db Binary files /dev/null and b/barcode-scanner-api-samples/scan-single-barcode/pick-one-to-fill/package-label.png differ diff --git a/barcode-scanner-api-samples/scan-single-barcode/react/package.json b/barcode-scanner-api-samples/scan-single-barcode/react/package.json index a99abc84..c89b82d1 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/react/package.json +++ b/barcode-scanner-api-samples/scan-single-barcode/react/package.json @@ -10,7 +10,7 @@ "preview": "vite preview" }, "dependencies": { - "dynamsoft-barcode-reader-bundle": "11.0.3000", + "dynamsoft-barcode-reader-bundle": "11.0.6000", "react": "^19.0.0", "react-dom": "^19.0.0" }, diff --git a/barcode-scanner-api-samples/scan-single-barcode/react/src/App.tsx b/barcode-scanner-api-samples/scan-single-barcode/react/src/App.tsx index 921e389f..bb4d2088 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/react/src/App.tsx +++ b/barcode-scanner-api-samples/scan-single-barcode/react/src/App.tsx @@ -15,10 +15,9 @@ function App() { container: scannerViewRef.current!, // Specify where to render the scanner UI // Specify the path for the definition file "barcode-scanner.ui.xml" for the scanner view. - uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.3000/dist/", + uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.6000/dist/", // showUploadImageButton: true, - // showPoweredByDynamsoft: false, // scannerViewConfig: { // showFlashButton: true, // cameraSwitchControl: "toggleFrontBack", diff --git a/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html b/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html index 119bbd61..5d7a3b1d 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html +++ b/barcode-scanner-api-samples/scan-single-barcode/scan-and-search.html @@ -7,7 +7,7 @@ Scan & Search with BarcodeScanner - + diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDPM.json b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDPM.json new file mode 100644 index 00000000..ec54f7e2 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDPM.json @@ -0,0 +1,141 @@ +{ + "BarcodeReaderTaskSettingOptions": [ + { + "BarcodeFormatIds": [ + "BF_DATAMATRIX" + ], + "DPMCodeReadingModes": [ + { + "Mode": "DPMCRM_GENERAL" + } + ], + "ExpectedBarcodesCount": 1, + "Name": "task_read_dpm", + "SectionArray": [ + { + "ImageParameterName": "ip_read_dpm", + "Section": "ST_REGION_PREDETECTION", + "StageArray": [ + { + "Stage": "SST_PREDETECT_REGIONS" + } + ] + }, + { + "ImageParameterName": "ip_read_dpm", + "Section": "ST_BARCODE_LOCALIZATION", + "StageArray": [ + { + "LocalizationModes": [ + { + "Mode": "LM_STATISTICS_MARKS" + }, + { + "Mode": "LM_CONNECTED_BLOCKS" + } + ], + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + }, + { + "Stage": "SST_LOCALIZE_BARCODES" + } + ] + }, + { + "ImageParameterName": "ip_read_dpm", + "Section": "ST_BARCODE_DECODING", + "StageArray": [ + { + "Stage": "SST_RESIST_DEFORMATION" + }, + { + "Stage": "SST_COMPLEMENT_BARCODE" + }, + { + "Stage": "SST_SCALE_BARCODE_IMAGE" + }, + { + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ], + "TextResultOrderModes": [ + { + "Mode": "TROM_POSITION" + }, + { + "Mode": "TROM_FORMAT" + }, + { + "Mode": "TROM_CONFIDENCE" + } + ] + } + ], + "CaptureVisionTemplates": [ + { + "ImageROIProcessingNameArray": [ + "roi_read_dpm" + ], + "Name": "ReadDPM" + } + ], + "ImageParameterOptions": [ + { + "ApplicableStages": [ + { + "Stage": "SST_INPUT_COLOR_IMAGE" + }, + { + "Stage": "SST_SCALE_IMAGE" + }, + { + "Stage": "SST_CONVERT_TO_GRAYSCALE" + }, + { + "Stage": "SST_TRANSFORM_GRAYSCALE" + }, + { + "Stage": "SST_ENHANCE_GRAYSCALE" + }, + { + "Stage": "SST_BINARIZE_IMAGE" + }, + { + "Stage": "SST_DETECT_TEXTURE" + }, + { + "Stage": "SST_REMOVE_TEXTURE_FROM_GRAYSCALE" + }, + { + "Stage": "SST_BINARIZE_TEXTURE_REMOVED_GRAYSCALE" + }, + { + "Stage": "SST_FIND_CONTOURS" + }, + { + "Stage": "SST_DETECT_SHORTLINES" + }, + { + "Stage": "SST_ASSEMBLE_LINES" + }, + { + "Stage": "SST_DETECT_TEXT_ZONES" + }, + { + "Stage": "SST_REMOVE_TEXT_ZONES_FROM_BINARY" + } + ], + "Name": "ip_read_dpm" + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_read_dpm", + "TaskSettingNameArray": [ + "task_read_dpm" + ] + } + ] +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDotcode.json b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDotcode.json new file mode 100644 index 00000000..f552988d --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadDotcode.json @@ -0,0 +1,130 @@ +{ + "BarcodeFormatSpecificationOptions": [ + { + "BarcodeFormatIds": [ + "BF_DOTCODE" + ], + "MinResultConfidence": 0, + "Name": "FP_1" + } + ], + "BarcodeReaderTaskSettingOptions": [ + { + "BarcodeFormatIds": [ + "BF_DOTCODE" + ], + "BarcodeFormatSpecificationNameArray": [ + "FP_1" + ], + "ExpectedBarcodesCount": 1, + "Name": "BR_1", + "SectionArray": [ + { + "ImageParameterName": "IP_1", + "Section": "ST_REGION_PREDETECTION", + "StageArray": [ + { + "Stage": "SST_PREDETECT_REGIONS" + } + ] + }, + { + "ImageParameterName": "IP_1", + "Section": "ST_BARCODE_LOCALIZATION", + "StageArray": [ + { + "LocalizationModes": [ + { + "Mode": "LM_STATISTICS_MARKS" + } + ], + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + } + ] + }, + { + "ImageParameterName": "IP_1", + "Section": "ST_BARCODE_DECODING", + "StageArray": [ + { + "DeblurModes": [ + { + "Mode": "DM_DEEP_ANALYSIS" + } + ], + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ] + } + ], + "CaptureVisionTemplates": [ + { + "ImageROIProcessingNameArray": [ + "roi_default" + ], + "Name": "ReadDotcode" + } + ], + "ImageParameterOptions": [ + { + "ApplicableStages": [ + { + "GrayscaleTransformationModes": [ + { + "Mode": "GTM_INVERTED" + } + ], + "Stage": "SST_TRANSFORM_GRAYSCALE" + }, + { + "BinarizationModes": [ + { + "BlockSizeX": 9, + "BlockSizeY": 9, + "EnableFillBinaryVacancy": 0, + "Mode": "BM_LOCAL_BLOCK", + "ThresholdCompensation": 20 + }, + { + "BlockSizeX": 15, + "BlockSizeY": 15, + "EnableFillBinaryVacancy": 0, + "Mode": "BM_LOCAL_BLOCK", + "MorphOperation": "open", + "MorphOperationKernelSizeX": 3, + "MorphOperationKernelSizeY": 3, + "MorphShape": "Ellipse" + }, + { + "BlockSizeX": 15, + "BlockSizeY": 15, + "EnableFillBinaryVacancy": 0, + "Mode": "BM_LOCAL_BLOCK", + "ThresholdCompensation": 20 + } + ], + "Stage": "SST_BINARIZE_IMAGE" + }, + { + "Stage": "SST_DETECT_TEXTURE", + "TextureDetectionModes": [ + { + "Mode": "TDM_SKIP" + } + ] + } + ], + "Name": "IP_1" + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_default", + "TaskSettingNameArray": [ + "BR_1" + ] + } + ] +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDIndustrial.json b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDIndustrial.json new file mode 100644 index 00000000..c07ecd7a --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDIndustrial.json @@ -0,0 +1,87 @@ +{ + "BarcodeReaderTaskSettingOptions": [ + { + "BarcodeFormatIds": ["BF_CODE_128", "BF_CODE_39", "BF_ITF", "BF_MATRIX_25", "BF_USPSINTELLIGENTMAIL"], + "ExpectedBarcodesCount": 1, + "Name": "task_read_single_barcode", + "SectionArray": [ + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_REGION_PREDETECTION" + }, + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_BARCODE_LOCALIZATION", + "StageArray": [ + { + "LocalizationModes": [ + { + "Mode": "LM_SCAN_DIRECTLY", + "ScanDirection": 2 + }, + { + "Mode": "LM_CONNECTED_BLOCKS" + } + ], + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + } + ] + }, + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_BARCODE_DECODING", + "StageArray": [ + { + "DeblurModes": [ + { + "Mode": "DM_BASED_ON_LOC_BIN" + }, + { + "Mode": "DM_DIRECT_BINARIZATION" + }, + { + "Mode": "DM_DEEP_ANALYSIS" + } + ], + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ] + } + ], + "CaptureVisionTemplates": [ + { + "ImageROIProcessingNameArray": [ + "roi_read_single_barcode" + ], + "Name": "ReadOneDIndustrial" + } + ], + "ImageParameterOptions": [ + { + "ApplicableStages": [ + { + "BinarizationModes": [ + { + "BlockSizeX": 27, + "BlockSizeY": 27, + "EnableFillBinaryVacancy": 0, + "Mode": "BM_LOCAL_BLOCK" + } + ], + "Stage": "SST_BINARIZE_IMAGE" + } + ], + "Name": "ip_read_single_barcode" + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_read_single_barcode", + "TaskSettingNameArray": [ + "task_read_single_barcode" + ] + } + ] +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDRetail.json b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDRetail.json new file mode 100644 index 00000000..d69905f7 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/ReadOneDRetail.json @@ -0,0 +1,87 @@ +{ + "BarcodeReaderTaskSettingOptions": [ + { + "BarcodeFormatIds": ["BF_EAN_13", "BF_EAN_8", "BF_UPC_A", "BF_UPC_E"], + "ExpectedBarcodesCount": 0, + "Name": "task_read_single_barcode", + "SectionArray": [ + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_REGION_PREDETECTION" + }, + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_BARCODE_LOCALIZATION", + "StageArray": [ + { + "LocalizationModes": [ + { + "Mode": "LM_SCAN_DIRECTLY", + "ScanDirection": 2 + }, + { + "Mode": "LM_CONNECTED_BLOCKS" + } + ], + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + } + ] + }, + { + "ImageParameterName": "ip_read_single_barcode", + "Section": "ST_BARCODE_DECODING", + "StageArray": [ + { + "DeblurModes": [ + { + "Mode": "DM_BASED_ON_LOC_BIN" + }, + { + "Mode": "DM_DIRECT_BINARIZATION" + }, + { + "Mode": "DM_DEEP_ANALYSIS" + } + ], + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ] + } + ], + "CaptureVisionTemplates": [ + { + "ImageROIProcessingNameArray": [ + "roi_read_single_barcode" + ], + "Name": "ReadOneDRetail" + } + ], + "ImageParameterOptions": [ + { + "ApplicableStages": [ + { + "BinarizationModes": [ + { + "BlockSizeX": 27, + "BlockSizeY": 27, + "EnableFillBinaryVacancy": 0, + "Mode": "BM_LOCAL_BLOCK" + } + ], + "Stage": "SST_BINARIZE_IMAGE" + } + ], + "Name": "ip_read_single_barcode" + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_read_single_barcode", + "TaskSettingNameArray": [ + "task_read_single_barcode" + ] + } + ] +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/cigarette-dotcode.png b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/cigarette-dotcode.png new file mode 100644 index 00000000..8c7e481a Binary files /dev/null and b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/cigarette-dotcode.png differ diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/dpm.png b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/dpm.png new file mode 100644 index 00000000..c847bb96 Binary files /dev/null and b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/dpm.png differ diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.css b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.css new file mode 100644 index 00000000..fed0ca90 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.css @@ -0,0 +1,78 @@ +* { + margin: 0; + padding: 0; + box-sizing: border-box; +} + +html, +body { + width: 100%; + height: 100%; + font-family: 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Microsoft YaHei', 'PingFang SC', 'Hiragino Sans GB', sans-serif; +} + +.container { + width: 100%; + height: 100%; +} + +.container header { + width: 100%; + height: 50px; + background-color: #202020; + color: #ffffff; + font-size: 21px; + text-align: center; + line-height: 50px; +} + +.container .content { + width: 100%; + height: calc(100% - 50px); + padding: 20px 20px 16px 20px; +} + +.container .content .templates { + width: 100%; + height: 20%; + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.container .content .templates .template { + width: 45%; + height: 40%; + display: flex; + justify-content: start; + align-items: center; + background-color: #F5F5F5; + border: 1px solid #AAAAAA; + border-radius: 4px; + color: #323234; + font-size: 16px; + padding-right: 5px; +} + +.container .content .templates .template .radio { + height: 100%; + width: 40px; + display: flex; + justify-content: center; + align-items: center; +} + +.container .content .templates .template .title { + flex: 1; +} + +.container .content .templates .dpm { + font-size: 14px; + border-color: #323234; +} + +.container .content .barcode-scanner-view { + width: 100%; + height: 80%; + background-color: #CFCFCF; +} \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.html b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.html new file mode 100644 index 00000000..cefecdd0 --- /dev/null +++ b/barcode-scanner-api-samples/scan-single-barcode/use-customized-template/index.html @@ -0,0 +1,91 @@ + + + + + + + Use Customized Template with BarcodeScanner + + + + + + + + +
    +
    Use Customized Template
    +
    +
    + + + + +
    +
    +
    +
    + + + + + \ No newline at end of file diff --git a/barcode-scanner-api-samples/scan-single-barcode/vue/package.json b/barcode-scanner-api-samples/scan-single-barcode/vue/package.json index e04f301f..fc511e0b 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/vue/package.json +++ b/barcode-scanner-api-samples/scan-single-barcode/vue/package.json @@ -9,7 +9,7 @@ "preview": "vite preview" }, "dependencies": { - "dynamsoft-barcode-reader-bundle": "11.0.3000", + "dynamsoft-barcode-reader-bundle": "11.0.6000", "vue": "^3.5.13" }, "devDependencies": { diff --git a/barcode-scanner-api-samples/scan-single-barcode/vue/src/App.vue b/barcode-scanner-api-samples/scan-single-barcode/vue/src/App.vue index 27a477b5..e11700c0 100644 --- a/barcode-scanner-api-samples/scan-single-barcode/vue/src/App.vue +++ b/barcode-scanner-api-samples/scan-single-barcode/vue/src/App.vue @@ -12,10 +12,9 @@ onMounted(() => { container: scannerViewRef.value!, // Specify where to render the scanner UI // Specify the path for the definition file "barcode-scanner.ui.xml" for the scanner view. - uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.3000/dist/", + uiPath: "https://cdn.jsdelivr.net/npm/dynamsoft-barcode-reader-bundle@11.0.6000/dist/", // showUploadImageButton: true, - // showPoweredByDynamsoft: false, // scannerViewConfig: { // showFlashButton: true, // cameraSwitchControl: "toggleFrontBack", diff --git a/foundational-api-samples/hello-world/README.md b/foundational-api-samples/hello-world/README.md index 00eaf261..32a6d23d 100644 --- a/foundational-api-samples/hello-world/README.md +++ b/foundational-api-samples/hello-world/README.md @@ -1,6 +1,6 @@ # The Hello World Sample Set -As you have already gone through the [user guide](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000#hello-world---simplest-implementation), you may have come across some basic "Hello World" code that can help you create a simple web application using our SDK quickly. +As you have already gone through the [user guide](https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000#hello-world---simplest-implementation), you may have come across some basic "Hello World" code that can help you create a simple web application using our SDK quickly. In this set of samples, we will revisit the "Hello World" code and show how to implement it using some popular frameworks, such as Angular, React, and Vue. diff --git a/foundational-api-samples/hello-world/angular/README.md b/foundational-api-samples/hello-world/angular/README.md index 019e979d..7f09da45 100644 --- a/foundational-api-samples/hello-world/angular/README.md +++ b/foundational-api-samples/hello-world/angular/README.md @@ -2,7 +2,7 @@ [Angular](https://angular.dev/) is one of the most popular and mature JavaScript frameworks. Follow this guide to learn how to implement [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/sdk-javascript/) (hereafter called "the library") into an Angular application. Note that in this sample, `TypeScript` is used. -In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.3000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.3000). +In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.6000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.6000). > Note: > @@ -61,7 +61,7 @@ Below is the configuration used for this sample. ```cmd cd my-app -npm install dynamsoft-barcode-reader-bundle@11.0.3000 -E +npm install dynamsoft-barcode-reader-bundle@11.0.6000 -E ``` ## Start to implement @@ -86,7 +86,7 @@ LicenseManager.initLicense('DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9', true); /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/angular/package.json b/foundational-api-samples/hello-world/angular/package.json index 8fbb5dcc..aaa7e2ae 100644 --- a/foundational-api-samples/hello-world/angular/package.json +++ b/foundational-api-samples/hello-world/angular/package.json @@ -18,7 +18,7 @@ "@angular/platform-browser": "^17.3.0", "@angular/platform-browser-dynamic": "^17.3.0", "@angular/router": "^17.3.0", - "dynamsoft-barcode-reader-bundle": "11.0.3000", + "dynamsoft-barcode-reader-bundle": "11.0.6000", "rxjs": "~7.8.0", "tslib": "^2.3.0", "zone.js": "~0.14.3" diff --git a/foundational-api-samples/hello-world/angular/src/app/dynamsoft.config.ts b/foundational-api-samples/hello-world/angular/src/app/dynamsoft.config.ts index 04a4c512..164ae2d4 100644 --- a/foundational-api-samples/hello-world/angular/src/app/dynamsoft.config.ts +++ b/foundational-api-samples/hello-world/angular/src/app/dynamsoft.config.ts @@ -15,7 +15,7 @@ LicenseManager.initLicense('DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9', { /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/blazor/README.md b/foundational-api-samples/hello-world/blazor/README.md index eb4ed829..bcf4eb96 100644 --- a/foundational-api-samples/hello-world/blazor/README.md +++ b/foundational-api-samples/hello-world/blazor/README.md @@ -2,7 +2,7 @@ [Blazor](https://dotnet.microsoft.com/en-us/apps/aspnet/web-apps/blazor) is a framework for building interactive client-side web apps with .NET and C#. Follow this guide to learn how to implement [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/sdk-javascript/) (hereafter called "the library") into a Blazor application using [JavaScript Interlop](https://learn.microsoft.com/en-us/aspnet/core/blazor/javascript-interoperability/call-javascript-from-dotnet?view=aspnetcore-8.0#invoke-js-functions). -In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.3000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.3000). We also used .NET 8.0 (version 8.0.8) to develop this sample. To ensure the sample app runs properly, please refer to this guide to update your .NET installation - https://learn.microsoft.com/en-us/dotnet/core/install/upgrade. +In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.6000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.6000). We also used .NET 8.0 (version 8.0.8) to develop this sample. To ensure the sample app runs properly, please refer to this guide to update your .NET installation - https://learn.microsoft.com/en-us/dotnet/core/install/upgrade. > Note: > @@ -283,7 +283,7 @@ Inside the `wwwroot\index.html` file, we will initialize the license and necessa ... - + - + + @@ -29,7 +29,7 @@

    Hello World (Decode via Camera)

    /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/native-ts/package.json b/foundational-api-samples/hello-world/native-ts/package.json index 26a15d24..19222a29 100644 --- a/foundational-api-samples/hello-world/native-ts/package.json +++ b/foundational-api-samples/hello-world/native-ts/package.json @@ -11,7 +11,7 @@ "license": "ISC", "description": "", "dependencies": { - "dynamsoft-barcode-reader-bundle": "11.0.3000" + "dynamsoft-barcode-reader-bundle": "11.0.6000" }, "devDependencies": { "@rollup/plugin-node-resolve": "^15.3.0", @@ -20,4 +20,4 @@ "tslib": "^2.8.0", "typescript": "^5.6.3" } -} +} \ No newline at end of file diff --git a/foundational-api-samples/hello-world/next/README.md b/foundational-api-samples/hello-world/next/README.md index d4226cb0..e2d87535 100644 --- a/foundational-api-samples/hello-world/next/README.md +++ b/foundational-api-samples/hello-world/next/README.md @@ -2,7 +2,7 @@ [Next.js](https://nextjs.org/) is a react framework that enables functionalities such as server-side rendering and generating static websites for react-based web applications. Follow this guide to learn how to implement [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/sdk-javascript/) (hereafter called "the library") into a Next.js application. Note that in this sample, `TypeScript` is used. -In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.3000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.3000). +In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.6000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.6000). > Note: > @@ -59,7 +59,7 @@ Below is the configuration used for this sample. ```cmd cd my-app -npm install dynamsoft-barcode-reader-bundle@11.0.3000 -E +npm install dynamsoft-barcode-reader-bundle@11.0.6000 -E ``` ## Start to implement @@ -86,7 +86,7 @@ LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", { /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/next/dynamsoft.config.ts b/foundational-api-samples/hello-world/next/dynamsoft.config.ts index 7d6112f0..712bebaa 100644 --- a/foundational-api-samples/hello-world/next/dynamsoft.config.ts +++ b/foundational-api-samples/hello-world/next/dynamsoft.config.ts @@ -15,7 +15,7 @@ LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", { /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/next/package.json b/foundational-api-samples/hello-world/next/package.json index 18289da2..e911f76e 100644 --- a/foundational-api-samples/hello-world/next/package.json +++ b/foundational-api-samples/hello-world/next/package.json @@ -12,7 +12,7 @@ "react": "^18", "react-dom": "^18", "next": "14.2.3", - "dynamsoft-barcode-reader-bundle": "11.0.3000" + "dynamsoft-barcode-reader-bundle": "11.0.6000" }, "devDependencies": { "typescript": "^5", diff --git a/foundational-api-samples/hello-world/nuxt/README.md b/foundational-api-samples/hello-world/nuxt/README.md index 419f1110..1863d786 100644 --- a/foundational-api-samples/hello-world/nuxt/README.md +++ b/foundational-api-samples/hello-world/nuxt/README.md @@ -2,7 +2,7 @@ [Nuxt](https://nuxtjs.org/) is a higher-level framework that builds on top of [Vue](https://vuejs.org/). Check out the following guide on how to implement [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/sdk-javascript/) (hereafter called "the library") into a Nuxt application. Note that in this sample `TypeScript` is used. -In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.3000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.3000). +In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.6000`](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.6000). > Note: > @@ -47,7 +47,7 @@ You will be asked to configure quite a few things for the application during the ```cmd cd my-app -npm install dynamsoft-barcode-reader-bundle@11.0.3000 -E +npm install dynamsoft-barcode-reader-bundle@11.0.6000 -E ``` ## Start to implement @@ -74,7 +74,7 @@ LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", { /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/nuxt/dynamsoft.config.ts b/foundational-api-samples/hello-world/nuxt/dynamsoft.config.ts index 7d6112f0..712bebaa 100644 --- a/foundational-api-samples/hello-world/nuxt/dynamsoft.config.ts +++ b/foundational-api-samples/hello-world/nuxt/dynamsoft.config.ts @@ -15,7 +15,7 @@ LicenseManager.initLicense("DLS2eyJvcmdhbml6YXRpb25JRCI6IjIwMDAwMSJ9", { /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/nuxt/package.json b/foundational-api-samples/hello-world/nuxt/package.json index bfcfd129..b786da79 100644 --- a/foundational-api-samples/hello-world/nuxt/package.json +++ b/foundational-api-samples/hello-world/nuxt/package.json @@ -13,6 +13,6 @@ "nuxt": "3.2.3" }, "dependencies": { - "dynamsoft-barcode-reader-bundle": "11.0.3000" + "dynamsoft-barcode-reader-bundle": "11.0.6000" } } \ No newline at end of file diff --git a/foundational-api-samples/hello-world/pwa/README.md b/foundational-api-samples/hello-world/pwa/README.md index e8ef7f8f..9bf123e3 100644 --- a/foundational-api-samples/hello-world/pwa/README.md +++ b/foundational-api-samples/hello-world/pwa/README.md @@ -2,7 +2,7 @@ [PWA](https://web.dev/progressive-web-apps/) is short for Progressive Web Apps, which are web applications designed to mimic the functionality and user experience of platform-specific (native) applications. Follow this guide to learn how to implement [Dynamsoft Barcode Reader JavaScript SDK](https://www.dynamsoft.com/barcode-reader/sdk-javascript/) (hereafter called "the library") into a PWA application. -In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.3000](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.3000). +In this guide, we will be using [`dynamsoft-barcode-reader-bundle 11.0.6000](https://www.npmjs.com/package/dynamsoft-barcode-reader-bundle/v/11.0.6000). > Note: > @@ -37,7 +37,7 @@ We will try to turn our basic "Hello World" sample into a PWA. Follow these step
    Results:
    - + + + @@ -29,7 +29,7 @@

    Hello World (Read an Image)

    /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/hello-world/requirejs.html b/foundational-api-samples/hello-world/requirejs.html index 059264e6..07b05db1 100644 --- a/foundational-api-samples/hello-world/requirejs.html +++ b/foundational-api-samples/hello-world/requirejs.html @@ -18,7 +18,7 @@

    Hello World for RequireJS (Decode via Camera)

    + + - + + + @@ -318,7 +318,7 @@
    /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/use-case/read-a-drivers-license/index.html b/foundational-api-samples/use-case/read-a-drivers-license/index.html index 52885129..c26e979a 100644 --- a/foundational-api-samples/use-case/read-a-drivers-license/index.html +++ b/foundational-api-samples/use-case/read-a-drivers-license/index.html @@ -49,7 +49,7 @@

    Read a Driver's License

    - + @@ -63,7 +63,7 @@

    Read a Driver's License

    /** * You can visit https://www.dynamsoft.com/customer/license/trialLicense?utm_source=samples&product=dbr&package=js to get your own trial license good for 30 days. * Note that if you downloaded this sample from Dynamsoft while logged in, the above license key may already be your own 30-day trial license. - * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.3000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. + * For more information, see https://www.dynamsoft.com/barcode-reader/docs/web/programming/javascript/user-guide/index.html?ver=11.0.6000&cVer=true#specify-the-license&utm_source=samples or contact support@dynamsoft.com. * LICENSE ALERT - THE END */ diff --git a/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.css b/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.css new file mode 100644 index 00000000..7aa64d69 --- /dev/null +++ b/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.css @@ -0,0 +1,180 @@ +* { + margin: 0; + padding: 0; +} + +body { + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + overflow: hidden; + width: 100vw; + height: 100vh; +} + +#span-tip { + position: absolute; + font-size: 1rem; + color: #fe8e14; + top: 1vh; +} + +h1 { + font-size: 1.5em; +} + +a { + color: #fe8d14; +} + +a:hover { + color: #fe8d14a1; +} + +strong { + color: rgb(254, 142, 20); +} + +#svg-start { + width: 100px; + height: 100px; + fill: #aaa; + cursor: pointer; +} + +#loading { + display: none; +} + +#main-container { + display: flex; + flex-direction: row; + align-items: center; + justify-content: center; + width: 50vw; + height: 60vh; +} + +.dce-bg-camera { + position: absolute; + left: 0; + top: 0; + right: 0; + bottom: 0; + margin: auto; + width: 40%; + height: 40%; + fill: #aaa; +} + +#camera-view-container { + display: none; + width: 100%; + height: 100%; +} + +#result-container { + display: none; + position: fixed; + width: 50vw; + height: 70vh; + z-index: 10; + color: white; + font-size: small; + background: #222222; + margin-top: 30px; +} + +#result-container .result-header { + width: 100%; + height: 30px; + background-color: #000; + font-size: 16px; + line-height: 30px; + padding-left: 10px; + box-sizing: border-box; + position: relative; +} + +#result-container .result-body { + height: calc(70vh - 30px); + overflow-y: auto; + padding: 5px; + box-sizing: border-box; +} + +#result-container p { + padding: 5px; + margin: 0; +} + +#message-container { + display: none; + align-items: center; + width: 50vw; + padding: 8px 16px; + margin: -92px 0 10px 0; + box-sizing: border-box; + border-radius: 4px; + position: relative; + background-color: #f4f4f5; + color: #909399; + overflow: hidden; + transition: opacity 0.2s; +} + +#message-container .message-icon { + font-size: 28px; + width: 28px; + line-height: 0; + padding-right: 1rem; +} + +#message-container .div-message-content { + display: table-cell; + padding: 0 8px; +} + +.message-content > span { + font-weight: 700; + font-size: 14px; + line-height: 18px; +} + +.message-content > p { + font-size: 13px; + margin: 5px 0 0; + line-height: 20px; +} + +.api_highlight { + font-weight: 700; + background-color: #ddd; + border-radius: 4px; + padding: 2px; +} + +.close-button { + position: absolute; + top: 50%; + right: 15px; + transform: translateY(-50%); + cursor: pointer; + line-height: 0; +} + +/* Small devices */ +@media only screen and (max-width: 1000px) { + #message-container { + width: 90vw; + } + + #main-container { + width: 80vw; + } + + #result-container { + width: 80vw; + } +} diff --git a/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.html b/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.html new file mode 100644 index 00000000..4689e91c --- /dev/null +++ b/foundational-api-samples/use-case/read-and-parse-GS1-AI/index.html @@ -0,0 +1,284 @@ + + + + + + + + + + + Dynamsoft Barcode Reader Sample - Read a GS1-AI + + + + Click the play button to activate the camera. +

    Read a GS1-AI

    +
    + + + + +
    + Can't get scanning result for a long time? +

    + Enable + singleFrameMode to capture high-definition images with your camera (mobile + device) or upload a local image for better recognition. + Give it a try! +

    + + + + +
    +
    +
    + + + + Loading... +
    +
    +
    +
    + Results: + + + + +
    +
    +
    + + + + + + + \ No newline at end of file diff --git a/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_and_parse_gs1.json b/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_and_parse_gs1.json new file mode 100644 index 00000000..7bd4a041 --- /dev/null +++ b/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_and_parse_gs1.json @@ -0,0 +1,159 @@ +{ + "BarcodeReaderTaskSettingOptions": [ + { + "Name": "task_gs1_ai_barcode", + "ExpectedBarcodesCount": 1, + "BarcodeFormatIds": [ + "BF_GS1_DATABAR", + "BF_CODE_128", + "BF_GS1_COMPOSITE" + ], + "BarcodeFormatSpecificationNameArray": [ + "bfs_gs1_ai" + ], + "SectionArray": [ + { + "Section": "ST_REGION_PREDETECTION", + "ImageParameterName": "ip_localize_barcode", + "StageArray": [ + { + "Stage": "SST_PREDETECT_REGIONS" + } + ] + }, + { + "Section": "ST_BARCODE_LOCALIZATION", + "ImageParameterName": "ip_localize_barcode", + "StageArray": [ + { + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + }, + { + "Stage": "SST_LOCALIZE_BARCODES" + } + ] + }, + { + "Section": "ST_BARCODE_DECODING", + "ImageParameterName": "ip_decode_barcode", + "StageArray": [ + { + "Stage": "SST_RESIST_DEFORMATION" + }, + { + "Stage": "SST_COMPLEMENT_BARCODE" + }, + { + "Stage": "SST_SCALE_BARCODE_IMAGE" + }, + { + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ] + } + ], + "BarcodeFormatSpecificationOptions": [ + { + "Name": "bfs_gs1_ai", + "BarcodeFormatIds": [ + "BF_GS1_DATABAR", + "BF_CODE_128", + "BF_GS1_COMPOSITE" + ], + "IncludeTrailingCheckDigit": 0, + "IncludeImpliedAI01": 1 + } + ], + "CaptureVisionTemplates": [ + { + "Name": "ReadGS1AI", + "ImageROIProcessingNameArray": [ + "roi_gs1_ai_barcode" + ], + "SemanticProcessingNameArray": [ + "sp_gs1_ai" + ] + } + ], + "ImageParameterOptions": [ + { + "Name": "ip_localize_barcode", + "ApplicableStages": [ + { + "Stage": "SST_BINARIZE_IMAGE", + "BinarizationModes": [ + { + "Mode": "BM_LOCAL_BLOCK" + } + ] + }, + { + "Stage": "SST_BINARIZE_TEXTURE_REMOVED_GRAYSCALE" + }, + { + "Stage": "SST_TRANSFORM_GRAYSCALE", + "GrayscaleTransformationModes": [ + { + "Mode": "GTM_ORIGINAL" + }, + { + "Mode": "GTM_INVERTED" + } + ] + } + ] + }, + { + "Name": "ip_decode_barcode", + "ApplicableStages": [ + { + "Stage": "SST_TRANSFORM_GRAYSCALE", + "GrayscaleTransformationModes": [ + { + "Mode": "GTM_ORIGINAL" + } + ] + }, + { + "Stage": "SST_SCALE_IMAGE", + "ImageScaleSetting": { + "ScaleType": "ST_SCALE_DOWN", + "ReferenceEdge": "RE_SHORTER_EDGE", + "EdgeLengthThreshold": 99999 + } + } + ] + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_gs1_ai_barcode", + "TaskSettingNameArray": [ + "task_gs1_ai_barcode" + ] + } + ], + "SemanticProcessingOptions": [ + { + "Name": "sp_gs1_ai", + "ReferenceObjectFilter": { + "ReferenceTargetROIDefNameArray": [ + "roi_gs1_ai_barcode" + ] + }, + "TaskSettingNameArray": [ + "dcp_gs1_ai" + ] + } + ], + "CodeParserTaskSettingOptions": [ + { + "Name": "dcp_gs1_ai", + "CodeSpecifications": [ + "GS1_AI" + ] + } + ] +} \ No newline at end of file diff --git a/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_gs1.json b/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_gs1.json new file mode 100644 index 00000000..f6bef5a8 --- /dev/null +++ b/foundational-api-samples/use-case/read-and-parse-GS1-AI/read_gs1.json @@ -0,0 +1,114 @@ +{ + "BarcodeReaderTaskSettingOptions": [ + { + "Name": "task_gs1_ai_barcode", + "ExpectedBarcodesCount": 1, + "BarcodeFormatIds": [ + "BF_GS1_DATABAR", + "BF_CODE_128", + "BF_GS1_COMPOSITE" + ], + "BarcodeFormatSpecificationNameArray": [ + "bfs_gs1_ai" + ], + "SectionArray": [ + { + "Section": "ST_REGION_PREDETECTION", + "ImageParameterName": "ip_barcode", + "StageArray": [ + { + "Stage": "SST_PREDETECT_REGIONS" + } + ] + }, + { + "Section": "ST_BARCODE_LOCALIZATION", + "ImageParameterName": "ip_barcode", + "StageArray": [ + { + "Stage": "SST_LOCALIZE_CANDIDATE_BARCODES" + }, + { + "Stage": "SST_LOCALIZE_BARCODES" + } + ] + }, + { + "Section": "ST_BARCODE_DECODING", + "ImageParameterName": "ip_barcode", + "StageArray": [ + { + "Stage": "SST_RESIST_DEFORMATION" + }, + { + "Stage": "SST_COMPLEMENT_BARCODE" + }, + { + "Stage": "SST_SCALE_BARCODE_IMAGE" + }, + { + "Stage": "SST_DECODE_BARCODES" + } + ] + } + ] + } + ], + "BarcodeFormatSpecificationOptions": [ + { + "Name": "bfs_gs1_ai", + "BarcodeFormatIds": [ + "BF_GS1_DATABAR", + "BF_CODE_128", + "BF_GS1_COMPOSITE" + ], + "IncludeTrailingCheckDigit": 0, + "IncludeImpliedAI01": 1 + } + ], + "CaptureVisionTemplates": [ + { + "Name": "ReadGS1AI", + "ImageROIProcessingNameArray": [ + "roi_gs1_ai_barcode" + ] + } + ], + "ImageParameterOptions": [ + { + "Name": "ip_barcode", + "ApplicableStages": [ + { + "Stage": "SST_BINARIZE_IMAGE", + "BinarizationModes": [ + { + "Mode": "BM_LOCAL_BLOCK" + } + ] + }, + { + "Stage": "SST_BINARIZE_TEXTURE_REMOVED_GRAYSCALE" + }, + { + "Stage": "SST_TRANSFORM_GRAYSCALE", + "GrayscaleTransformationModes": [ + { + "Mode": "GTM_ORIGINAL" + }, + { + "Mode": "GTM_INVERTED" + } + ] + } + ] + } + ], + "TargetROIDefOptions": [ + { + "Name": "roi_gs1_ai_barcode", + "TaskSettingNameArray": [ + "task_gs1_ai_barcode" + ] + } + ] +} \ No newline at end of file diff --git a/foundational-api-samples/use-case/show-result-texts-on-the-video.html b/foundational-api-samples/use-case/show-result-texts-on-the-video.html index f6b0637b..6dccdb5f 100644 --- a/foundational-api-samples/use-case/show-result-texts-on-the-video.html +++ b/foundational-api-samples/use-case/show-result-texts-on-the-video.html @@ -45,7 +45,7 @@

    Display Barcode Results as Video Overlays

    Scan barcodes to display results as overlays on video

    - +