1

我需要使用 Zxing.net 在 Calico Python (IronPython) 中实现一个二维码阅读器。当我尝试加载条形码图像时,我收到以下消息:

File "C:\Calico-3.1.0\Calico\zxingTest.py", line 6, in <module> AttributeError: attribute 'Bitmap' of 'namespace#' object is read-only

使用 Java 中的 Zbar 可以很好地解码图像。我所基于的 C# 示例代码位于本页底部附近:Codeplex 的 ZXing.Net

我正在使用 ZXing.Net 0.14.0.1 和 Calico 3.1.0

我的代码是这样的:

import clr
import sys
clr.AddReferenceToFileAndPath("C:\\zxing.net\\net4.5\\zxing.dll")
import ZXing as zx
bcr = zx.BarcodeReader()
bcbm = zx.Bitmap.LoadFrom("C:\\temp\\SRQRCode3.png")
result = bcr.Decode(bcbm)

我不确定这是否是配置错误,正如 IronPython 文档所建议的那样,或者是什么。

提前致谢。

4

1 回答 1

2

您的代码片段所基于的示例(来自http://zxingnet.codeplex.com/ )似乎已经过时,并且在将其从 C# 转换为 IronPython 时出现了一些小错误。

位图不是 ZXing 提供的,而是 .NET 提供的。正确翻译的示例应如下所示:

import clr
import sys
clr.AddReferenceToFileAndPath(r"C:\zxing.net\net4.5\zxing.dll")
import ZXing as zx
from System.Drawing import Bitmap

bcr = zx.BarcodeReader()
bcbm = Bitmap(r"C:\temp\SRQRCode3.png")
result = bcr.Decode(bcbm)
if result is not None:
    print(result.BarcodeFormat.ToString())
    print(result.Text)
于 2014-10-31T12:57:14.293 回答