Powershell中使用Zxing.Net进行QR解码的问题-找不到“解码”和参数计数的重载:“ 1”

问题描述 投票:0回答:1

我正在尝试使用Zxing.net(https://github.com/micjahn/ZXing.Net)在PowerShell中解码QR码

此页面上有一个HowTo,但是我不能这样使用:https://github.com/micjahn/ZXing.Net/wiki/Using-ZXing.Net-with-Powershell

[每次我运行脚本时,都会收到以下错误消息:

Cannot find an overload for "Decode" and the argument count: "1".
At C:\Users\ww\Desktop\reader.ps1:13 char:1
+ $result = $reader.Decode($bitmap)
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (:) [], MethodException
    + FullyQualifiedErrorId : MethodCountCouldNotFindBest

我的整个剧本是:

Add-Type -Path "C:\Users\ww\Desktop\zxing.net\lib\net45\zxing.dll"
$reader = New-Object -TypeName ZXing.BarcodeReader
$reader.Options.TryHarder=1
# set TryHarder option to true, other options can be set the same way
$bitmap = [System.Drawing.Bitmap]::FromFile("C:\Users\ww\Desktop\abc.bmp")
$result = $reader.Decode($bitmap)
$bitmap.Dispose()
$result.Text

我只知道Java的“重载”,在这里我可以为同一函数使用不同的参数,但是在这种情况下,这对我来说毫无意义(我不是一个非常有经验的程序员)。

是否可能使用的是错误的.dll?我从https://www.nuget.org/packages/ZXing.Net/0.16.5下载了Nuget-Package,然后通过7-Zip提取了它。我尝试了各种.dll(net40,netcoreapp3.0,可移植,net20等),但结果始终相同。

[我也找到了这个Github线程,让一切正常工作似乎很容易。

有人可以提示我我的实现有什么问题吗?谢谢!

powershell overloading zxing zxing.net
1个回答
0
投票

原样的脚本应该可以正常工作。确保将.dll用于系统上安装的.NET的适当版本。例如,我有.NET版本4.8,所以我使用.dll作为可用的最高版本4.7。我的文件路径是C:\ ... \ ZXing.Net.0.16.5.0 \ net4.7 \ zxing.dll。

Add-Type -Path "C:\Windows\System32\WindowsPowerShell\v1.0\Modules\Zxing\zxing.dll"
$reader = New-Object -TypeName ZXing.BarcodeReader
$reader.Options.TryHarder = 1 # set TryHarder option to true, other options can be set the same way
$bitmap = [System.Drawing.Bitmap]::FromFile("C:\Users\testUser\Pictures\QR.png")
$result = $reader.Decode($bitmap)
$bitmap.Dispose()
$result.Text

控制台输出:https://www.youtube.com/watch?v=oHg5SJYRHA0

© www.soinside.com 2019 - 2024. All rights reserved.