本教程展示如何在Windows C/ c++ API应用程序中使用LEADTOOLS SDK从加载的图像中读取条形码信息。
| 概述 | |
|---|---|
| 总结 | 本教程介绍如何使用BARCODEDATA结构在Windows C DLL应用程序。 |
| 完成时间 | 30分钟 |
| Visual Studio项目 | 下载教程项目(19kb) |
| 平台 | Windows C DLL应用程序 |
| IDE | Visual Studio 2017, 2019 |
| 开发许可 | 下载LEADTOOLS |
| 用另一种语言试试 |
|
在开始之前检测和提取条形码- Windows C DLL教程,熟悉创建项目和加载/显示图像的基本步骤添加引用和设置License而且加载、显示和保存图像教程。
中创建的64位Windows API项目的副本加载、显示和保存图像教程。如果项目不可用,请按照该教程中的步骤创建它。
要使用LEADTOOLS读取条形码,请添加所需的头文件和DLL文件。打开预编译的头文件(或pch.h或stdafx.h,取决于所使用的Visual Studio版本),并添加以下行:
# include“C: \ LEADTOOLS22 \ \ Ltbar.h包括”#pragma comment (lib,“C: \ \ LEADTOOLS22 \ \ Lib \ \ CDLL \ \ x64 \ \ Ltbar_x.lib”)//条码支持
请注意
有关应用程序所需的dll的完整列表,请参阅包含在应用程序中的文件- C API.
许可证解锁项目所需的特性。它必须在调用任何工具箱功能之前设置。有关详细信息,包括针对不同平台的教程,请参阅设置运行时License.
有两种类型的运行时许可证:
请注意
中更详细地介绍了添加LEADTOOLS引用和设置许可添加引用和设置License教程。
随着项目的创建、引用的添加、许可证的设置和加载图像代码的添加,编码就可以开始了。
以下步骤适用于Visual Studio 2019;对于Visual Studio的其他版本,它们可能有所不同。
去解决方案资源管理器双击资源文件(.rc)。
添加一个新的条形码菜单旁边的下拉菜单文件菜单。在新增的条形码菜单,添加读取条形码(s)菜单项。新项目的ID应该是ID_BARCODE_READBARCODE.
去指向函数,和下开关(wmId)语句的下面WM_COMMANDCase,添加一个新的Case:
开关(wmId){情况下ID_BARCODE_READBARCODE:如果(LEADBmp.Flags.Allocated)ReadBarcodes (hWnd);其他的对话框(hWnd,文本(“无法阅读条形码。未加载图像”),文本(“条形码演示”), MB_ICONERROR);打破;//保留其余的代码
添加一个新的ReadBarcodes函数,它可以放在指向功能:
无效ReadBarcodes (HWND HWND){如果(L_BarCodeInit(BARCODES_1D) != SUCCESS)返回;pBARCODEDATA pBarCodes = NULL;Bar1d Bar1d = {0};Bar1d。uStructSize =运算符BARCODE1D;Bar1d。bErrorCheck = TRUE;Bar1d。nGranularity = 9;Bar1d。nDirection = BARCODE_DIR_HORIZONTAL;BARCODECOLOR BarColor = {0};BarColor。uStructSize =运算符BARCODECOLOR;BarColor。dwColorBar = RGB(0,0,0);BarColor。dwColorSpace = RGB(255, 255, 255);//搜索enite位图中的所有1D条形码L_INT nRet = L_BarCodeRead(&LEADBmp, NULL, BARCODE_1D_READ_ANYTYPE, BARCODE_SCANLINES_PER_PIXELS, BARCODE_BLOCK_SEARCH, 0, &Bar1d, NULL, &BarColor, &pBarCodes,运算符BARCODEDATA);如果(SUCCESS == nRet){L_INT nCount = pBarCodes->nTotalCount;L_CHAR * pszMessage =新L_CHAR[256 * nCount];零内存(pszMessage, 256 * nCount * .运算符(* pszMessage));为(L_INT i = 0;i < nCount;我+ +){L_CHAR szBuffer[256] ="";wsprintfA (szBuffer“条形码# % d数据:“% s”,左% d % d,对% d % d \ n \ n”,我,pBarCodes[我].pszBarCodeData,pBarCodes[我].rcBarLocation.left,pBarCodes[我].rcBarLocation.top,pBarCodes[我].rcBarLocation.right,pBarCodes[我].rcBarLocation.bottom);lstrcatA (pszMessage szBuffer);}pszMessage MessageBoxA (hwnd,“条形码(s)发现“, MB_ICONINFORMATION);删除[] pszMessage;}其他的对话框(hwnd,文本(“无法读取1D条形码”),文本(“条形码演示”), MB_ICONERROR);如果(pBarCodes)L_BarCodeFree (&pBarCodes);L_BarCodeExit ();}
按下运行项目F5,或选择调试->开始调试.
如果正确地执行了这些步骤,应用程序将运行并允许用户进行选择文件->开放加载包含条形码数据的图像。选择条形码->读取条形码(年代)使应用程序运行条形码识别,并从加载的图像中输出所有相关的条形码信息。
请注意
如果没有可用于测试的条形码图像,请使用此文件路径下的图像:
C: \ LEADTOOLS22 \ \ \ barcode1.tif图像资源
本教程介绍了如何在Windows API应用程序中使用LEADTOOLS SDK读取条形码信息。它还涵盖了如何使用BARCODEDATA结构,使用L_BarCodeRead函数。