2

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

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

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

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 版本(而且我不相信这是问题的根源)。有任何想法吗?提前致谢!

4

2 回答 2

1

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

于 2016-07-19T04:25:22.103 回答
0

一种方法:

  • 使用 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 还不太了解,但希望有些人会觉得这很有帮助。:)

于 2017-05-19T11:18:23.087 回答