【问题标题】:Using Zxing.net in IronPython在 IronPython 中使用 Zxing.net
【发布时间】:2014-10-30 18:01:42
【问题描述】:

我需要使用 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# 示例代码位于本页底部附近:ZXing.Net at Codeplex

我正在使用 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 文档所建议的那样,或者是什么。

提前致谢。

【问题讨论】:

    标签: .net ironpython zxing calico-project


    【解决方案1】:

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

    Bitmap 不是 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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-06-01
      • 2017-09-18
      • 1970-01-01
      • 2023-03-13
      • 2011-03-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多