本教程展示如何在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_COMMAND
Case,添加一个新的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
函数。