Проблема с QR-декодированием с использованием Zxing. Net в Powershell. Не удается найти перегрузку для «Декодирования» и количества аргументов: «1» - PullRequest
0 голосов
/ 14 января 2020

Я пытаюсь декодировать QR-код в PowerShell с помощью Zxing. net (https://github.com/micjahn/ZXing.Net)

На этой странице есть 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? Я скачал Nuget-Package с https://www.nuget.org/packages/ZXing.Net/0.16.5, затем извлек его через 7-Zip. Я пробовал разные .dll (net40, netcoreapp3.0, portable, net20, ...), но результат всегда был одинаковым.

Я также нашел этот поток Github, где, кажется, довольно легко заставить все работать.

Может кто-нибудь подсказать, что не так с моей реализацией? Спасибо!

1 Ответ

0 голосов
/ 14 января 2020

Скрипт как есть, должен работать нормально. Убедитесь, что вы используете .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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...