2014-12-10 13 views
9

Ich habe eine Windows Store App in XAML geschrieben & C# Bild von Tablet-Webcam zu lesen und den Barcode mit Zxing's Library decodieren. Der Code funktioniert gut auf einem bestimmten Tablet mit einem i5-Prozessor, während es auf einem tatsächlichen Tablet mit 2MP-Kamera und "Intel Baytrail Quad-Core" -Prozessor läuft.Decoding Barcode mit Zxing-Bibliothek funktioniert auf 1 Tablette, aber funktioniert nicht auf einem anderen Tablet

Irgendwelche Ideen, warum das passieren könnte?

Bitte lassen Sie mich wissen, wenn Sie meinen Code für dieses Problem Anzeige sehen müssen, die ich teilen werde.

Ich frage mich, wie kann der gleiche Code auf 1 Tablette arbeiten, während auf einem anderen Tablet fehlschlagen.

Vielen Dank im Voraus für jede Hilfe zur Verfügung gestellt.

EDIT

-Code verwendet, um den Barcode zu scannen und wie weiter unten lesen - die letzte if/else-Block ist, was ich zu bekommen. Keine Ausnahme ausgelöst :(

string barcodeData = string.Empty; 
      using (var imageStream = new InMemoryRandomAccessStream()) 
      { 
       processingImage = true; 
       var encodingProperties = new ImageEncodingProperties(); 
       encodingProperties.Subtype = "Jpeg"; 
       encodingProperties.Width = 400; 
       encodingProperties.Height = 400; 

       await captureMgr.CapturePhotoToStreamAsync(encodingProperties, imageStream); 
       await imageStream.FlushAsync(); 
       imageStream.Seek(0); 

       var bitmap = new WriteableBitmap(400, 400); 
       bitmap.SetSource(imageStream); 
       preview1.Source = bitmap; //preview1 is an Image control to display the captured image 

       BitmapImage bitmapImage = new BitmapImage(); 
       bitmapImage.SetSource(imageStream); 

       imageStream.Seek(0); 

       var bitmapDecoder = await BitmapDecoder.CreateAsync(BitmapDecoder.JpegDecoderId, imageStream); 

       var data = await bitmapDecoder.GetPixelDataAsync(
        BitmapPixelFormat.Bgra8, 
        BitmapAlphaMode.Straight, 
        new BitmapTransform(), 
        ExifOrientationMode.IgnoreExifOrientation, 
        ColorManagementMode.DoNotColorManage 
        ); 
       if (data != null) 
       { 
        BarcodeReader barcodeReader = new BarcodeReader(); 

        var result = barcodeReader.Decode(
         data.DetachPixelData(), 
         (int)bitmapDecoder.PixelWidth, 
         (int)bitmapDecoder.PixelHeight, 
         ZXing.RGBLuminanceSource.BitmapFormat.BGR32 
         ); 
        if (result != null) 
        { 
         //Barcode found 
        } 
        else 
         //No data found. 
       } 
      } 
+1

Logs? Ausnahmen?Stellen Sie zumindest den Code ein, der das Bild erfasst und ZXing aufruft. In StackOverflow ist es eine Regel, Ihren Code zu veröffentlichen. –

+0

@ PanagiotisKanavos Code hinzugefügt :) – Nitesh

+0

Und? Wo erkennst du, dass du kein Bild hast? Überprüfe du imageStream, um zu sehen, ob es irgendwelche Daten enthält? Loggen Sie etwas ein, wenn 'data' oder' result' null sind? –

Antwort

5

Ich denke, man ZXing.NET Bibliothek verwenden. Haben Sie jemals zu einem anderen Barcode-Scanner Bibliothek betrachtet bewegt?

Zugriff auf den "issues" Abschnitt in ZXing.NET Bibliothek, Check out können Sie sehen, dass eine Menge Bugs gibt es nach wie vor für Windows Phone geöffnet (und sollten auch Fenster Geschäft sein)

http://zxingnet.codeplex.com/workitem/list/basic

einer davon meine Aufmerksamkeit nannte diesen Kommentar:..

Während das WP alle Silverlight-Ziele abtastet, dürfen Sie nicht vergessen, dass die neue WP8.1-Basis WinRT ist - also schlage ich vor, dass Sie das WinRT-Beispiel als Basis verwenden.

Ich habe versucht, das gleiche zu tun, aber die Wahrheit zu sagen, ZXing fehlt viel ATM für WinRT Universal Apps - es ist langsam, unzuverlässig, und kaum jemals etwas erkennt.

http://zxingnet.codeplex.com/workitem/13311

Ich weiß nicht, wie zuverlässig das ist, aber das letzte Mal war das Projekt war am 7. April aktualisiert !!!!

Sie sollten wirklich in Betracht ziehen, Ihre Bibliothek zu ändern!

+0

Irgendwelche Vorschläge zu anderen Open Source Bibliothek? – Nitesh

+0

Dies ist auch alt, aber scheint niemand beschweren sich über die gleichen Bugs. Probieren Sie es aus: http://barcoderender.codeplex.com/workitem/list/basic – rodrigogq

+0

Sorry, dies könnte nur für den Druck sein ... Ich habe keine Zeit gehabt, es gründlich zu überprüfen. – rodrigogq

0

Hallo,

machte ich eine lib für WinRT ZXing & Imaging SDK. Es funktioniert gut (enthält jedoch keine zusätzliche Fokusfunktion). https://github.com/stepheUp/VideoScanZXing4WP81 Es gibt eine Lib und eine Beispiel-App, die Sie ausprobieren können. Es funktioniert für Barcodes und QR (Barcode standardmäßig aber nur den optionalen Parameter in der Scan-Funktion Code ändern QRCode zu verwenden)

Hoffe, dass es hilft, Stéphanie

Verwandte Themen