Чтение QR-кодов в Unity

c# unity3d bitmap zxing hololens

1222 просмотра

2 ответа

23 Репутация автора

В настоящее время я работаю над проектом, читающим QR-коды с Microsoft Hololens. Я разрабатываю приложение в Unity (5.4.0 build 24) на C # и использую ZXing для чтения QR-кодов. Я скачал ZXing с этой веб-страницы и в итоге использовал версию .NET 3.5. Мне удалось сгенерировать массив байтов, соответствующий взгляду Гололинса. Затем я хочу использовать функцию декодирования, чтобы получить текст в QR-коде:

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, но мне не удалось найти версию .NET 3.5 в System.Drawingмоей системе (и я не уверен, что это корень проблемы в любом случае). Есть идеи? Заранее спасибо!

Автор: nphirning Источник Размещён: 19.07.2016 12:24

Ответы (2)


1 плюс

3042 Репутация автора

Unity 5 использует пользовательскую версию моно-компилятора. Некоторые библиотеки вырезаны из стандартного .Net 3.5.

Автор: Joshua Размещён: 19.07.2016 04:25

0 плюса

61 Репутация автора

Один подход:

  • используйте Texture2D для хранения вашего изображения
  • получить пиксели из этого изображения, используя метод GetPixels32 ()
  • отправьте эти пиксели в Decode-метод.

Итак, вы делаете переменную 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 пока ничего не известно, но, надеюсь, некоторые люди сочтут это полезным. :)

Автор: Henri Korpela Размещён: 19.05.2017 11:18
Вопросы из категории :
32x32