【问题标题】:Reading QR Codes in Unity在 Unity 中读取二维码
【发布时间】:2016-07-19 00:24:25
【问题描述】:

我目前正在开展一个使用 Microsoft Hololens 读取 QR 码的项目。我正在使用 C# 在 Unity(5.4.0 build 24)中开发应用程序,并且我正在使用 ZXing 来读取 QR 码。我从this webpage 下载了 ZXing,最终我使用了 .NET 3.5 版本。我能够生成与 Hololens 视图相对应的字节数组。然后我想使用解码功能来获取二维码中的文字:

ZXing.Result result = reader.Decode(img_bitmap);

但是,为了使用它,我需要创建一个Bitmap,它包含在System.Drawing 中。据我了解,Unity3D 不包含此包,因此我按照this answer 中的说明进行操作,并从.NET 2.0 中包含System.Drawing。但是,当我尝试构建时,出现以下错误:

error CS7069: Reference to type 'MarshalByRefObject' claims it is defined in 'mscorlib', but it could not be found.

据我了解,Unity 构建为 .NET 3.5,但我一直无法在我的系统上找到 System.Drawing 的 .NET 3.5 版本(而且我也不相信这是问题的根源)。有任何想法吗?提前致谢!

【问题讨论】:

    标签: c# unity3d bitmap zxing hololens


    【解决方案1】:

    Unity 5 正在使用自定义版本的单声道编译器。一些库是从标准 .Net 3.5 中删除的。

    【讨论】:

    • 嗯,好的,你知道我该如何解决这个错误,以便我可以使用位图吗?
    • 我对此没有任何经验。你应该在 Unity 上有更多经验的程序员问这个问题。
    • 好的,我会看看那里是否有答案,如果有,更新这篇文章
    【解决方案2】:

    一种方法:

    • 使用 Texture2D 存储图像
    • 使用 GetPixels32() 方法从该图像中获取像素
    • 将这些像素发送到解码方法。

    所以,你创建一个 Texture2D 变量:

    public Texture2D image;
    

    然后,在某处的方法中,您输入如下内容:

    var codeReader = new BarcodeReader { AutoRotate = true };
    codeReader.Options.TryHarder = true;
    
    var decodeResult = codeReader.Decode(image.GetPixels32(), image.width, image.height);
    

    对 ZXing 还不太了解,但希望对某些人有所帮助。 :)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多