
Ergebnis 1 bis 6 von 6
-
- 17.07.2014, 14:04
- #1
Hallo,
Ich habe mit Hilfe der ZXing Bibliothek versucht, Barcodes aus aufgenommenen Bildern zu lesen. Leider hat das nicht funktioniert. Ich bekomme als result jedes mal 'null' urück, sodass er mir keinen ausgewerteten Text ausgibt. In der zxing webapplikation bekomme ich jedoch ein brauchbares ergebnis. Hat jmd eine Idee, wie ich das Problem angehen oder lösen könnte?
Hier der Codeschnipsel:
Code:img_Image.Source = img; //Decodiere Barcode var ms = new InMemoryRandomAccessStream(); var wb = new WriteableBitmap(img.PixelWidth, img.PixelHeight); await wb.SetSourceAsync(ms); IBarcodeReader reader = new ZXing.BarcodeReader(); reader.Options.TryHarder = true; txt_QRContent.Text = "Hier könnten Ihre Daten stehen!"; Result result = reader.Decode(wb); if (result != null) { txt_QRContent.Text = result.Text; }
-
Gehöre zum Inventar
- 17.07.2014, 14:10
- #2
Du legst hier einen InMemoryAccessStream an in ms. Dann setzt du die Source des WriteableBitmap auf diesen Stream. Was mir aber in dem Code-Stück fehlt ist wie das Image das du oben hast in den Stream kommt. Schaut so aus als würdest du ein WriteableBitmap aus einem leeren Stream befüllen und da findet ZXing dann natürlich nix.
Was für eine App ist das - Silverlight 8.1 oder WinRT (Universal). Mit dem InMemoryRandomAccessStream vermute ich mal WinRT. Generell würde ich ja empfehlen QR Codes statt aus einem ausgenommenen Bild direkt aus dem Preview-Stream der Kamera zu lesen. Das ist halt unter WinRT etwas doof im Moment - bin schon ne Weile am Überlegen da eine ordentliche Lösung zu bauen (beim alten Kamera-API gabs ja ein "PreviewFrameAvailable-Event").
-
- 17.07.2014, 14:41
- #3
Jo, WinRT. Wär mir natürlich auch lieber, aber das hier war die einzige Lösung, die ich bis dato dazu gefunden habe.
Deinen Lösungsansatz püfe ich mal. Danke
---------- Hinzugefügt um 15:41 ---------- Vorheriger Beitrag war um 15:21 ----------
OK, gibt sinn. Bin schon irgendwie zu lange an dem Problem dran, sorry ^^
Habs jetzt gelöst bekommen. Hier die Lösung, weil ich offengebliebene Threads hasse:
Code:var data = await FileIO.ReadBufferAsync(sampleFile); var ms = new InMemoryRandomAccessStream(); var dw = new Windows.Storage.Streams.DataWriter(ms); dw.WriteBuffer(data); ms.Seek(0); await dw.StoreAsync(); var wb = new WriteableBitmap(img.PixelWidth, img.PixelHeight); ms.Seek(0); await wb.SetSourceAsync(ms); //Decodiere Barcode IBarcodeReader reader = new ZXing.BarcodeReader(); reader.Options.TryHarder = true; Result result = reader.Decode(wb); if (result != null) { txt_QRContent.Text = result.Text; }
-
Gehöre zum Inventar
- 17.07.2014, 14:47
- #4
Danke für den fertigen Code - ist sicher hilfreich für andere. Erinnert mich etwas an das Windows 8 Sample von ZXing. Einen Ansatz habe ich aber ich weiß nicht ob er dir gefällt:
Es gibt eine StartPreviewToCustomSinkAsync auf dem MediaCapture-Objekt. Man müsste eine CustomSink implementieren (wird vermutlich C++ Code benötigen) und dort dann entsprechend die Erkennung einbauen. Soweit so gut - das Problem ist dass man dann auch noch die normale Sink ansteuern müsste um dort die Preview weiterhin anzeigen zu können. Ist keine triviale Geschichte. Bin wie gesagt schon länger am überlegen mich mal daran zu setzen da was wiederverwendbares zu bauen und zur Verfügung zu stellen - die Anforderung hat ja öfters mal wer.
-
- 17.07.2014, 17:33
- #5
Den obigen Ansatz nutze ich auch, halt mit MediaCapture.
Ich hab zwar einen funktionierenden Scanner mit LiveBild, aber das Ding ruckelt so unglaublich dass man das keinem User zumuten will.
Habe auf Grund vom obligatorischen Zeitmangel dann aber weitere Versuche eingestellt.
-
- 19.07.2014, 09:19
- #6
Leute, dieser Thread gefällt mir. Gut verbalisiert und zielgerichtet.
Bin selbst Grafikdesigner mit Hang zu Interfaces und Wissen im Bereich Webentwicklung. Würde zu gerne mal 'ne App konzipieren und gestalten, also werd ich mal nach solchen Posts Ausschau halten. Hab schon mal über Channel 9 und VS erste Versuche gestartet, bin aber eher Entwerfer als Entwickler...
Euch viel Erfolg!
Ähnliche Themen
-
iPhone5 Back-up wiederherstellen mit Hilfe von iTunes
Von Raizo im Forum Apple iPhone 5 / 5S / 5C / SEAntworten: 7Letzter Beitrag: 13.04.2013, 10:18 -
Cab. Datei erstellen mit Hilfe von QuickCab 2.0
Von Moritz im Forum FAQ/WorkshopsAntworten: 7Letzter Beitrag: 09.09.2009, 19:37 -
Umschalten von Themes mit Hilfe eines Programmes
Von Cheater10 im Forum Touch HD AnwendungsprogrammeAntworten: 4Letzter Beitrag: 05.07.2009, 00:09 -
qr codes lesen auf htc touch dual
Von lotus11 im Forum HTC Touch DualAntworten: 2Letzter Beitrag: 06.01.2009, 22:06
Pixel 10 Serie mit Problemen:...