Dynamsoft Barcode SDK安装包里自带了一个功能强大的扫码Demo,这个Demo支持的条形码扫描功能包括文件读取,扫描仪图像读取,以及摄像头视频流读取。

然而扫描仪和摄像头的调用功能并不是免费的,需要用到Dynamic .NET TWAIN这个商用SDK。这篇文章分享下如何去掉扫描仪功能,并把Webcam调用接口替换成DirectShow。
Windows桌面条形码扫描应用
安装Dynamsoft Barcode Reader之后,找到工程<Dynamsoft Barcode Reader>\Samples\Desktop\C#\BarcodeReaderDemo,并导入Visual Studio。
这个工程依赖的DLL包括Dynamsoft.BarcodeReader.dll, Dynamsoft.ImageCore.dll,Dynamsoft.Forms.Viewer.dll, Dynamsoft.Camera.dll,Dynamsoft.PDF.dll,Dynamsoft.Twain.dll。
扫码工程修改
去掉扫描仪和摄像头依赖的DLL:Dynamsoft.Camera.dll, Dynamsoft.PDF.dll ,Dynamsoft.Twain.dll。
在App.config文件中去掉key =“DNTLicense” value =“LICENSE-KEY” :
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key ="DBRLicense" value ="LICENSE-KEY"/>
<add key ="DNTLicense" value ="LICENSE-KEY"/>
</appSettings>
</configuration>
在BarcodeReaderDemo.cs中去掉scanner选项:
// remove
mRoundedRectanglePanelAcquireLoad.Controls.Add(mThAcquireImage);
调整一下UI:
// before
mThLoadImage.Size = new Size(103, 40);
mThWebCamImage.Location = new Point(207, 1);
mThWebCamImage.Size = new Size(103, 40);
// after
mThLoadImage.Size = new Size(156, 40);
mThWebCamImage.Location = new Point(157, 1);
mThWebCamImage.Size = new Size(156, 40);
删除Dynamic .NET TWAIN相关代码:
// remove
mTwainManager = new TwainManager(dntLicenseKeys);
mCameraManager = new CameraManager(dntLicenseKeys);
mPDFRasterizer = new PDFRasterizer(dntLicenseKeys);
…
Build一下工程会报出相关的错误,把对应的代码都删除。
调整后的界面:

使用DirectShowNet控制Webcam
创建一个DSManager.cs用于控制DirectShow的逻辑。
定义两个结构体存放摄像头相关的参数:
public struct Resolution
{
public Resolution(int width, int height)
{
Width = width;
Height = height;
}
public int Width {
get; }
public int Height {
get; }
public

本文介绍了如何在Dynamsoft Barcode SDK的Demo中移除付费的Dynamic .NET TWAIN,转而使用DirectShow来控制Webcam进行条形码扫描。通过去掉不必要的DLL,修改配置,调整UI,并利用DirectShowNet库,实现了摄像头的视频流读取,以实现低成本的桌面条形码扫描应用。
最低0.47元/天 解锁文章
3299

被折叠的 条评论
为什么被折叠?



