Products | Support | Email a link to this topic. | Send comments on this topic. | Back to Introduction | Help Version 19.0.7.12
|
Take the following steps to start a project and to add some code that will load an image and read it's barcodes in a Windows Store application using LEADTOOLS WinRT libraries.
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>ReadingBarcodes</title> <!-- WinJS references --> <link href="//Microsoft.WinJS.1.0/css/ui-dark.css" rel="stylesheet" /> <scriptsrc="//Microsoft.WinJS.1.0/js/base.js"></script> <scriptsrc="//Microsoft.WinJS.1.0/js/ui.js"></script> <!-- OCRImage references --> <link href="/css/default.css"rel="stylesheet"/> <scriptsrc="/js/default.js" ></script> </head> <body> <input id="btnLoadAndReadBarcodes" type="button" value="Load And Read Barcodes" /> <br /> <p id="statusText" ></p> <br /> <textarea id="resultsTextArea" readonly="readonly" style="width: 500px; height: 500px" ></textarea> <br /> </body> </html>
// For an introduction to the Blank template, see the following documentation: // http://msdn.microsoft.com/en-us/library/windows/apps/hh758331.aspx (function () { "use strict"; WinJS.Binding.optimizeBindingReferences = true; var app = WinJS.Application; var activation = Windows.ApplicationModel.Activation; app.onactivated = function (args) { if (args.detail.kind === activation.ActivationKind.launch) { if (args.detail.previousExecutionState !== activation.ApplicationExecutionState.terminated) { // TODO: This application has been newly launched. Initialize // your application here. document.getElementById("btnLoadAndReadBarcodes").addEventListener("click", ReadBarcodes, false); Leadtools.RasterSupport.initialize(); // replace this with RasterSupport.SetLicense when you have a valid runtime license. _barcodeEngine = new Leadtools.Barcode.BarcodeEngine(); } else { // TODO: This application has been reactivated from suspension. // Restore application state here. } args.setPromise(WinJS.UI.processAll()); } }; app.oncheckpoint = function (args) { // TODO: This application is about to be suspended. Save any state // that needs to persist across suspensions here. You might use the // WinJS.Application.sessionState object, which is automatically // saved and restored across suspension. If you need to complete an // asynchronous operation before your application is suspended, call // args.setPromise(). }; app.start(); var _barcodeEngine = null; function ReadBarcodes() { // Create a file picker object var openPicker = new Windows.Storage.Pickers.FileOpenPicker(); openPicker.viewMode = Windows.Storage.Pickers.PickerViewMode.thumbnail; openPicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.picturesLibrary; openPicker.ViewMode = Windows.Storage.Pickers.PickerViewMode.List; //Add a few supported file types openPicker.fileTypeFilter.append(".jpg"); openPicker.fileTypeFilter.append(".jpeg"); openPicker.fileTypeFilter.append(".jxr"); openPicker.fileTypeFilter.append(".png"); openPicker.fileTypeFilter.append(".bmp"); openPicker.fileTypeFilter.append(".pcx"); openPicker.fileTypeFilter.append(".tif"); openPicker.fileTypeFilter.append(".tiff"); openPicker.fileTypeFilter.append(".j2k"); openPicker.fileTypeFilter.append(".jbg"); openPicker.fileTypeFilter.append(".gif"); openPicker.fileTypeFilter.append(".jls"); openPicker.fileTypeFilter.append(".jb2"); openPicker.fileTypeFilter.append(".psd"); openPicker.fileTypeFilter.append(".dcm"); openPicker.fileTypeFilter.append(".dic"); openPicker.fileTypeFilter.append(".pdf"); // Open the picker for the user to pick a file openPicker.pickSingleFileAsync().then(function (file) { if (!file) { // The picker was dismissed with no selected file return; } document.getElementById('resultsTextArea').value = ""; // Create a RasterCodecs object to load the file var codecs = new Leadtools.Codecs.RasterCodecs(); document.getElementById('statusText').innerText = "Loading image..." ; // Create a LEAD stream for the filevar leadStream = Leadtools.LeadStreamFactory.create(file); // Load it codecs.options.load.initAlpha = true; codecs.loadAsync(leadStream, 32, Leadtools.Codecs.CodecsLoadByteOrder.bgr, 1, 1).then(function (rasterImage) { var types = new Array(); types.push(Leadtools.Barcode.BarcodeSymbology.unknown); //Search the entire image var rc = Leadtools.LeadRectHelper.create(0, 0, rasterImage.width, rasterImage.height); //Look for barcodes document.getElementById('statusText').innerText = "Reading Barcodes..."; var barcodes = _barcodeEngine.reader.readBarcodes(rasterImage, rc, 0, types); if (barcodes == null) { document.getElementById('statusText').innerText = "No barcodes were found."; } else { //Show the results var results = barcodes.length.toString(); results += ' barcode(s) found\n'; results += '\n'; for (var i = 0; i < barcodes.length; i++) { var barcode = barcodes[i]; results += 'Type: ' + barcode.symbology.toString() + '\n'; results += 'Location: '; results += Leadtools.LeadRectHelper.left(barcode.bounds) + ', '; results += Leadtools.LeadRectHelper.top(barcode.bounds) + ', '; results += Leadtools.LeadRectHelper.right(barcode.bounds) + ', ' ; results += Leadtools.LeadRectHelper.bottom(barcode.bounds) + '\n'; results += 'Value: ' + barcode.value + '\n'; results += 'Data: '; for (var j = 0; j < barcode.getData().length ; j++) { var data = barcode.getData()[j]; results += data; } results += '\n'; results += '\n'; } document.getElementById('resultsTextArea').value = results; document.getElementById('statusText').innerText = "Complete"; } }, function (e) { var msg = new Windows.UI.Popups.MessageDialog("Error loading image"); msg.showAsync(); document.getElementById('statusText').innerText = "Error loading image"; }); }); } })();